コード例 #1
0
ファイル: PayMonitorController.cs プロジェクト: iJzFan/backup
        public async Task <IActionResult> WxH5PayCreate(string payOrderId)
        {
            try
            {
                CHIS.Models.PayWxH5Info payWxH5 = null; //获取微信的H5发起地址
                var ipAddress = ClientIP;
                var socket    = _wsqrConnMgr.GetItem(_wsqrConnMgr.GetId(payOrderId));
                payWxH5 = await _wsqrHandler.GetWxPayH5Info(socket, ipAddress);

                //return Content($"{ipAddress}{payWxH5.wxH5Url}");
                Response.Redirect(payWxH5.wxH5Url);
                return(new EmptyResult());
            }
            catch (Exception ex)
            {
                return(Content("支付错误:", ex.Message));
            }
        }
コード例 #2
0
        public async Task <CHIS.Models.PayWxH5Info> GetWxPayH5Info(PayQrWebSocket socket, string ipAddress)
        {
            CHIS.Models.PayWxH5Info QrInfo = null;
            try
            {
                string h = await Ass.Net.WebHelper.WebPost(GetUrl("QRPay:HostUrl", "QRPay:GetWxH5PayInfo") + $"?payOrderId={socket.PayOrderId}&ipAddress={ipAddress}");

                QrInfo = GetFromJsonString <CHIS.Models.PayWxH5Info>(h);
                if (QrInfo.status == "ERROR")
                {
                    throw new Exception();
                }
                if (QrInfo.status == "PAYEDSUCCESS")
                {
                    await NotifyToClient(socket, QrInfo);

                    socket.PayQrStatus = PayQrStatuses.PAYEDSUCCESS;
                    await _wsconnMgr.RemoveSocket(socket);//关闭连接

                    return(new CHIS.Models.PayWxH5Info()
                    {
                        rlt = false, msg = "已经支付过了", status = "PAYEDSUCCESS"
                    });
                }
                else
                {
                    return(QrInfo);
                }
            }
            catch (Exception ex)
            {
                if (QrInfo == null)
                {
                    QrInfo = new CHIS.Models.PayWxH5Info()
                    {
                        rlt = false, msg = ex.Message, status = "ERROR"
                    }
                }
                ;
                //await NotifyToClient(socket, QrInfo);
                //await _wsconnMgr.RemoveSocket(socket);//关闭连接
                return(QrInfo);
            }
        }