qq_39464862
qq_39464862
采纳率45.9%
2017-07-19 01:30 阅读 6.8k

微信公众号支付成功后如何把订单信息保存到数据库中

string postStr = "";
///
/// 微信支付回调
///
///
if (Request.HttpMethod.ToLower() == "post")
{
Stream s = System.Web.HttpContext.Current.Request.InputStream;
byte[] b = new byte[s.Length];
s.Read(b, 0, (int)s.Length);
postStr = Encoding.UTF8.GetString(b);

            if (!string.IsNullOrEmpty(postStr))
            {
                //封装请求类
                var res = XDocument.Parse(postStr);

                if (res.Element("xml").Element("return_code").Value == "SUCCESS")
                {
                    WriteTxt(string.Format(@"商户订单号:{0},订单状态:{1},金额:{2},时间:{3},openid:{4}",
                        res.Element("xml").Element("out_trade_no").Value,
                        res.Element("xml").Element("result_code").Value,
                        res.Element("xml").Element("total_fee").Value,
                        res.Element("xml").Element("time_end").Value,
                        res.Element("xml").Element("openid").Value
                        ));
                    //保存订单信息,并返回微信应答
                    Response.Write(string.Format(@"<xml>
                           <return_code><![CDATA[SUCCESS]]></return_code>
                           <return_msg><![CDATA[OK]]></return_msg>
                        </xml>"));
                }
                else
                {
                    WriteTxt(res.ToString());
                    Response.Write(string.Format(@"<xml>
                           <return_code><![CDATA[{0}]]></return_code>
                           <return_msg><![CDATA[{1}]]></return_msg>
                        </xml>", "FAIL", res.Element("xml").Element("return_msg").Value));
                }

            }
        }

    我有一个支付回调页面,时支付成功后跳转到这个页面并保存数据吗?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • q975583865 一点寒芒先至 2017-07-19 01:59

    发起订单就应该存到数据库了吧,显示未支付,支付成功根据回调改支付状态

    点赞 1 评论 复制链接分享
  • dcxy0 Q544471255 2017-07-19 01:52

    自己调试一下不就知道了,可以设置个0.01的商品,自己支付调试,调试的时候记录一下日志。

    点赞 评论 复制链接分享
  • qq_39464862 qq_39464862 2017-07-19 02:02

    支付成功是否需要跳转到支付回调页面?

    点赞 评论 复制链接分享
  • gloveg2016 gloveg2016 2017-07-19 02:13

    订单信息应该是在微信支付的统一下单之前就创建好了的,
    统一下单的时候需要传此条需要支付的订单的订单号和微信需要回调的接口(我们这边的接口),之后才进行支付。
    在支付成功后,有js回调和接口回调,接口回调就是微信会访问我们在统一下单的时候,提供的接口,在这个接口中,微信会
    将我们之前传的订单号返回,我们拿着这个订单号就可以更改订单的支付状态了!

    点赞 评论 复制链接分享
  • qq_39464862 qq_39464862 2017-07-19 02:34

    if (res.Element("xml").Element("return_code").Value == "SUCCESS")
    {
    //下单成功返回
    string repayId = res.Element("xml").Element("prepay_id").Value;
    wxpayconfig = new wxHandleModel.wxPayconfig();
    wxpayconfig = wxhand.GetwxPay(repayId);
    }
    也就是说我可以在回调页面拿到prepay_id这个参数?

    点赞 评论 复制链接分享
  • jiang1245764446 Crow-亚 2017-07-19 03:47

    发起订单就应该存到数据库了吧,显示未支付,支付成功根据回调改支付状态 赞同

    点赞 评论 复制链接分享

相关推荐