Esempio n. 1
0
        /// <summary>
        /// 通过微信支付充值
        /// </summary>
        /// <param name="args"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public NormalResult <CreatePayOrderResult> Deposit(CashAccountDepositArgs args, AuthorizerPayConfig config)
        {
            CreatePayOrderArgs createPayOrderArgs = new CreatePayOrderArgs();

            createPayOrderArgs.MemberId       = args.MemberId;
            createPayOrderArgs.OpenId         = args.OpenId;
            createPayOrderArgs.Fee            = args.Fee;
            createPayOrderArgs.SpbillCreateIp = args.SpbillCreateIp;

            createPayOrderArgs.OrderType  = EnumPayOrderType.Deposit;
            createPayOrderArgs.Body       = "会员充值";
            createPayOrderArgs.OutTradeNo = Guid.NewGuid().ToString().Replace("-", "");
            NormalResult <CreatePayOrderResult> result = CreatePayOrder(createPayOrderArgs, config);

            return(result);
        }
        public ActionResult Deposit()
        {
            CashAccountDepositArgs args = RequestArgs <CashAccountDepositArgs>();

            if (args == null || args.Fee <= 0)
            {
                return(RespondResult(false, "参数无效。"));
            }

            args.Fee = args.Fee * 100;

            args.MemberId       = MemberContext.Member.Id;
            args.OpenId         = MemberContext.Member.OpenId;
            args.SpbillCreateIp = Request.UserHostAddress;

            NormalResult <CreatePayOrderResult> depositResult =
                _payManager.Deposit(args, DomainContext.AuthorizerPay);

            if (depositResult.Success)
            {
                WxPayData jsApiParam = new WxPayData(DomainContext.AuthorizerPay.Key);
                jsApiParam.SetValue("appId", DomainContext.AppId);
                jsApiParam.SetValue("timeStamp", WeixinApiHelper.GetTimesTamp().ToString());
                jsApiParam.SetValue("nonceStr", WeixinApiHelper.GetNonceStr());
                jsApiParam.SetValue("package", "prepay_id=" + depositResult.Data.PrepayId);
                jsApiParam.SetValue("signType", "MD5");
                jsApiParam.SetValue("paySign", jsApiParam.MakeSign());

                string parameters = jsApiParam.ToJson();

                //WeixinPayGetBrandWCPayRequestArgs result = new WeixinPayGetBrandWCPayRequestArgs();
                //result.AppId = this.DomainContext.AppId;
                //result.TimeStamp = WeixinApiHelper.GetTimesTamp().ToString();
                //result.NonceStr = WeixinApiHelper.GetNonceStr();
                //result.Package = "prepay_id=" + depositResult.Data.PrepayId;
                //result.SignType = "MD5";

                return(RespondDataResult(parameters));
            }
            else
            {
                return(RespondResult(false, depositResult.Message));
            }
        }