コード例 #1
0
        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();
        }