微信开发之到处都是坑的微信支付V3之 微信支付回调页面
白羽 2019-01-23 来源 :网络 阅读 1285 评论 0

摘要:本文将带你了解微信开发到处都是坑的微信支付V3之 微信支付回调页面,希望本文对大家学微信有所帮助。

    本文将带你了解微信开发到处都是坑的微信支付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);          }

 


   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程