public void StartPay(int payChannel)
        {
            // 执行实际的支付逻辑。
            if (_paySeq != null && _paySeq.Running)
            {
                // 正在执行支付逻辑,就不需要做任何动作,继续执行之前的任务。
                var dialogManager = GetDialogManager();
                dialogManager.ShowToast("请等待当前支付完成", 2);
                return;
            }

            _selectedPayChannel = payChannel;

            _paySeq = new ActionSequence();
            _paySeq.Append(RequestTradeNo, CheckTradoNoResult, TradeNoFail);
            _paySeq.Append(StartClientPay, CheckClientPayResult, ClientPayTimeout, 600);
            // 3秒钟后,开始第一次检测。
            _paySeq.AppendInterval(3);
            _paySeq.Append(StartCheckTrade, CheckPostState, CheckTradeTimeout, 600);

            _paySeq.Start();
            _payStartTime = Time.realtimeSinceStartup;

            AnalyticStartPay();
        }
Beispiel #2
0
 void SetActionOnPropertyChanged( string propertyName, Action action )
 {
     if( !_actionsOnPropertiesChanged.ContainsKey( propertyName ) )
     {
         if( action != null )
         {
             ActionSequence actions = new ActionSequence();
             actions.Append( action );
             _actionsOnPropertiesChanged.Add( propertyName, actions );
         }
     }
     else
     {
         if( action != null )
             _actionsOnPropertiesChanged[propertyName].Append( action );
     }
 }