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(); }
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 ); } }