开发者社区> 最美的回忆> 正文

到处都是坑的微信支付V3之 微信支付回调页面

简介:
+关注继续查看

据上次 到处都是坑的微信支付V3 后很多园友在被虐了千百遍后终于跳转到了亲切的微信支付界面,但输入密码支付后却不知道怎么处理了,接下来补上支付后的处理流程。

1. html中根据前台支付后反馈信息成功与否跳转到相关页面

  if (res.err_msg == "get_brand_wcpay_request:ok") {
       // message: "微信支付成功!",
       window.location.replace("@Url.Content("~/WxPay/Success?ordercode=@(Model.order_no)"));
  }else if (res.err_msg == "get_brand_wcpay_request:cancel") {  
     // message: "已取消微信支付!"
   } 

 

2. 支付开发教程(微信商户平台版) 中下载 微信支付接口文档及demo(公众账号).zip

返回的参数参考接口文档中  4.2.通用通知接口  一节。

通知 URL是 4.1 节中提交的参数 notify_url ,支付完成后,微信 会把相关和用户信息发送到该URL,商户需要接收处理信息。

复制代码
 //支付回调页面
        public ActionResult notice_url()
        {
            string resultFromWx = getPostStr();
            //设置支付参数
            RequestHandler paySignReqHandler = new RequestHandler(null);
            WriteLog(" 微支付notice resultFromWx=" + resultFromWx);
            var res = XDocument.Parse(resultFromWx);
            //通信成功
            if (res.Element("xml").Element("return_code").Value == "SUCCESS")
            {
                if (res.Element("xml").Element("result_code").Value == "SUCCESS")
                {
                    //交易成功
                    paySignReqHandler.SetParameter("return_code", "SUCCESS");
                    paySignReqHandler.SetParameter("return_msg", "OK");

                    string ordecode = res.Element("xml").Element("out_trade_no").Value;
                    BLL.orders Bll = new BLL.orders();
                    try
                    {
                        if (Bll.Update(ordecode ))
                        {
                           WriteLog(" 微支付交易成功=" + ordecode);
                        }
                        else
                        {
                           WriteLog(" 微支付交易失败=" + ordecode);
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteLog(ex," 微支付交易异常=" + ordecode);
                    }
                }
                else
                {
                    paySignReqHandler.SetParameter("return_code", "FAIL");
                    paySignReqHandler.SetParameter("return_msg", "交易失败");
                }
            }
            else
            {
                paySignReqHandler.SetParameter("return_code", "FAIL");
                paySignReqHandler.SetParameter("return_msg", "签名失败");
            }
            string data = paySignReqHandler.ParseXML();
            var result = TenPayV3.Unifiedorder(data);
            WriteLog(" 微支付notice result=" + result);

            return View();
        }
复制代码
注意:


因此接收到成功支付后需要返回代码中红色的部分来提醒微信服务器已处理,否则会不断收到微信服务器的反馈。


getPostStr()方法:
复制代码
 //获得Post过来的数据
        public string getPostStr()
        {
            Int32 intLen = Convert.ToInt32(Request.InputStream.Length);
            byte[] b = new byte[intLen];
            Request.InputStream.Read(b, 0, intLen);
            return System.Text.Encoding.UTF8.GetString(b);
        }
复制代码

 现在前后台都打通了,主要还是要耐心调试,祝君好运~

  鉴于没时间看邮件急于想要的可自行扫右上角的二维码进入微信公众号【一个码农的日常】,回复 net支付 或 java支付  或 php支付

   或加入  新建2号QQ群:340250479   (1号群: 437802986 已满)在文件里面有源码地址(等群主有时间会通过)。

   其它干货下载资源已放入微信公众号【一个码农的日常】

本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/p/4469506.html如需转载请自行联系原作者


欢醉

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
到处都是坑的微信支付V3之 微信支付回调页面
据上次 到处都是坑的微信支付V3 后很多园友在被虐了千百遍后终于跳转到了亲切的微信支付界面,但输入密码支付后却不知道怎么处理了,接下来补上支付后的处理流程。 1. html中根据前台支付后反馈信息成功与否跳转到相关页面 if (res.
1191 0
微信支付(销客多)配置
1、后台各种参数要配置对了。 2、公众号:3个地方填写的域名要配置对了。 3、pay站点: 支付目录:填写2个, xxx域名.com/pay/  和  xxx域名.com/Pay/    ,这2个的差距就是p有大写和小写。
932 0
微信支付功能
  微信支付的使用场景正在不断延伸。除了此前已经介绍的麦当劳和 QQ 充值账号,目前已经开始有更多的公众账号和企业销售逐步接入微信支付功能。   据了解,包括“微彩票”、“微团购”、“南派三叔”、腾讯充值中心等公众账号都已经可以使用微信支付功能。
1213 0
小程序微信支付
后端 后端分为两部分: 统一下单 二次签名 // 统一下单 $payment = app('payment'); $result = $payment->order->unify([ 'body'=>self::$typeMap[$this->type].
1006 0
网站调用支付宝进行支付-Java后台调用支付宝支付
网站调用支付宝进行支付-Java后台调用支付宝支付 最近公司一个产品用到了打赏支付,其中一个是支付宝,记录一下java后台调用支付宝的过程付代码。本文讲的是使用沙箱环境(支付宝提供的一种开发专用模式,不要实际支付,可以走通整个流程)。
1363 0
微信支付详解
原文:微信支付详解 1.为什么会有两种JS方法可以发起微信支付? 当你登陆微信公众号之后,左边有两个菜单栏,一个是微信支付,一个是开发者中心。 在开发者中心中,有一个微信JS-SDK说明文档。 在此说明文档中,有一个发起微信支付的请求API wx.chooseWXPay({ timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。
1344 0
微信支付遇到的几种问题
喜欢的朋友可以关注下,粉丝也缺。 想必做过微信支付的都知道微信支付是一大坑。 这不是重点,重点是今天我们来如何解决问题,跳出这个大坑。
1596 0
微信支付(转载一)
Android微信支付 2014-08-09 一、使用微信官方的提供的demo里的appid等 1.微信接口上手指南:(从“移动应用开发”->“Android接入指南”)建议,先把官方这篇文章看完 2.
1011 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载