public async Task <H5ResponseViewModel <AliPayH5View> > PayRequest([FromBody] H5RequestViewModel Parameters) { var sysCode = _sys.CheckParameters(Parameters.data, "payrequest"); H5ResponseViewModel <AliPayH5View> response = null; AliPayH5View result = null; string token = Parameters.data.token; bool isLog = _token.VerifyToken(token); if (sysCode == SysCode.Ok) { if (isLog) { string json = RedisHelper.StringGet($"{CacheKey.Token}{token}", RedisFolderEnum.token, RedisEnum.Five); UserLoginDto userLogin = JsonHelper.DeserializeJsonToObject <UserLoginDto>(json); int id = int.Parse((string)Parameters.data.id); var rechargeCommodity = await _recharge.GetRechargeCommodityByIdAsync(id); string order = Guid.NewGuid().ToString(); result = _recharge.CreateAlipayH5Receipt(rechargeCommodity, order); AliPayOrderDto AliPayOrder = new AliPayOrderDto() { Commodity_id = id, Out_trade_no = order, Createtime = DateTime.Now, Updatetime = DateTime.Now, Gmt_payment = DateTime.Now, Userid = userLogin.Userid, Total_amount = rechargeCommodity.Money //人名币 }; await _recharge.RecordAlipayOrderAsync(AliPayOrder); //记录支付宝订单。 RechargeDto recharge = new RechargeDto() { Amount = rechargeCommodity.Amount, //虚拟币 createtime = DateTime.Now, Pay_type = 1, //支付类型 1支付宝,2微信,3苹果内购 Status = 1, //1 待处理 2 已支付 3 支付失败 4 超时 updatetime = DateTime.Now, UserId = userLogin.Userid, Order_id = AliPayOrder.Out_trade_no, }; await _recharge.RecordRechargeLogAsync(recharge); //记录充值订 } else { sysCode = SysCode.TokenLose; } } response = new H5ResponseViewModel <AliPayH5View>(sysCode, result ?? null); return(response); }
/// <summary> /// 生成支付宝H5支付 /// author:陶林辉 /// </summary> /// <param name="recharge"></param> /// <param name="order">订单号</param> /// <returns></returns> public AliPayH5View CreateAlipayH5Receipt(RechargeCommodityDto recharge, string order) { DefaultAopClient client = new DefaultAopClient(_appSettings.Gatewayurl, _appSettings.App_id, _appSettings.PrivateKeyPem, "json", "1.0", _appSettings.Sign_type, _appSettings.PublicKey, _appSettings.CharSet, false); AliPayH5View aliPayH5View = new AliPayH5View(); // 组装业务参数model AlipayTradePagePayModel model = new AlipayTradePagePayModel { Body = recharge.Name, //商品描述 Subject = "乐趣海南充值", //订单名称 TotalAmount = recharge.Money.ToString(), //付款金额 OutTradeNo = order, //订单号 ProductCode = "QUICK_WAP_PAY" }; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.SetReturnUrl(_appSettings.Return_url); // 设置异步通知接收地址 request.SetNotifyUrl(_appSettings.Notify_url); request.SetBizModel(model); aliPayH5View.html = _alipayService.pageExecute(request).Body; return(aliPayH5View); }