示例#1
0
        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);
        }
示例#2
0
        /// <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);
        }