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