Ejemplo n.º 1
0
        /// <summary>
        /// 执行IOS支付宝逻辑。
        /// </summary>
        /// <param name="orderStr"></param>
        public void AlipayIOS(string orderStr)
        {
            AlipayResultTime = 0;
            AlipayResultData = null;

            if (string.IsNullOrEmpty(orderStr))
            {
                AlipayResultTime = Time.time;
                AlipayResultData = new AlipayResult(Dmm.Pay.AlipayResult.StatusFail, null, "订单数据发生错误,无法支付");
                return;
            }

#if UNITY_IOS // _ios.Alipay(orderStr, _config.AlipaySchemes);
#endif
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 执行Android支付逻辑。
        /// </summary>
        /// <param name="orderStr"></param>
        public void AlipayAndroid(string orderStr)
        {
            AlipayResultTime = 0;
            AlipayResultData = null;

            if (string.IsNullOrEmpty(orderStr))
            {
                AlipayResultTime = Time.time;
                AlipayResultData = new AlipayResult(Dmm.Pay.AlipayResult.StatusFail, null, "订单数据发生错误,无法支付");
                return;
            }

#if UNITY_ANDROID
            _android.AlipayAndroid(orderStr);
#endif
        }
Ejemplo n.º 3
0
        private void ProcessAlipayResult(AlipayResult res)
        {
            if (res == null)
            {
                // 支付失败了,支付宝结果数据解析失败。
                EnableComponent(false, false, true);
                SetStateTxt(string.Format("<color=red>支付失败!</color>\n如有疑问请联系下方客服QQ{0}",
                                          !string.IsNullOrEmpty(OutTradeNo) ? "\n订单号:" + OutTradeNo : ""));
                StopPay();

                AnalyticPayFail("alipay_res_parse_error");
                return;
            }

            if (StringUtil.AreEqual(res.status, AlipayResult.StatusOk))
            {
                var param = DataUtil.ParseParameter(res.result);
                if (param.ContainsKey("success") && StringUtil.AreEqual("true", param["success"]))
                {
                    // 支付成功。
                    EnableComponent(false, true, true);
                    SetStateTxt("恭喜您,充值成功^_^\n马上请求发货");

                    AnalyticPayOk();
                }
                else
                {
                    EnableComponent(false, false, true);
                    if (StateTxt)
                    {
                        SetStateTxt(string.Format("<color=red>支付失败!</color>\n请联系下方客服QQ{0}",
                                                  !string.IsNullOrEmpty(OutTradeNo) ? "\n订单号:" + OutTradeNo : ""));
                    }
                    StopPay();

                    AnalyticPayFail("alipay_status_ok_not_success");
                }
            }
            else
            {
                // 支付失败。
                if (StringUtil.AreEqual(res.status, AlipayResult.StatusProcessing))
                {
                    // 订单正在处理当中。
                    EnableComponent(false, false, true);
                    SetStateTxt(string.Format("<color=red>支付宝未能处理订单!</color>\n请联系下方客服QQ{0}",
                                              !string.IsNullOrEmpty(OutTradeNo) ? "\n订单号:" + OutTradeNo : ""));

                    AnalyticPayFail("alipay_processing");
                }
                else if (StringUtil.AreEqual(res.status, AlipayResult.StatusFail))
                {
                    // 支付失败。
                    EnableComponent(false, false, true);
                    SetStateTxt(string.Format("<color=red>支付失败!{0}</color>\n请联系下方客服QQ{1}",
                                              !string.IsNullOrEmpty(res.memo) ? "\n" + res.memo : "",
                                              !string.IsNullOrEmpty(OutTradeNo) ? "\n订单号:" + OutTradeNo : ""));

                    AnalyticPayFail("alipay_fail");
                }
                else if (StringUtil.AreEqual(res.status, AlipayResult.StatusCanceled))
                {
                    // 玩家取消支付。
                    EnableComponent(false, false, true);
                    SetStateTxt("<color=red>玩家取消订单</color>");

                    AnalyticPayFail("alipay_cancel");
                }
                else if (StringUtil.AreEqual(res.status, AlipayResult.StatusNetworkError))
                {
                    // 网络出错。
                    EnableComponent(false, false, true);
                    SetStateTxt("<color=red>网络出错,无法连接支付宝</color>");

                    AnalyticPayFail("alipay_network_broken");
                }
                else
                {
                    // 未知原因失败。
                    EnableComponent(false, false, true);
                    SetStateTxt(string.Format("<color=red>支付失败!</color>\n请联系下方客服QQ{0}",
                                              !string.IsNullOrEmpty(OutTradeNo) ? "\n订单号:" + OutTradeNo : ""));

                    AnalyticPayFail("alipay_unknown_error");
                }

                StopPay();
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 接收支付宝支付的结果。
 /// </summary>
 /// <param name="result"></param>
 public void AlipayResult(string result)
 {
     MyLog.InfoWithFrame(name, string.Format("alipay result: {0}", result));
     AlipayResultTime = Time.time;
     AlipayResultData = DataUtil.ParseAlipayResult(result);
 }