据上次 到处都是坑的微信支付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, , intLen);
return System.Text.Encoding.UTF8.GetString(b);
}

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

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

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

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

到处都是坑的微信支付V3之 微信支付回调页面的更多相关文章

  1. 到处都是坑的微信支付V3

    业务需要一个在微信上能付款的功能,于是乎想到了最普遍的支付宝,坑爹的是T与A是水火不容啊,默默的还是接微信支付吧,没想到从此掉进了连环坑…… 网上写微信支付接口的还是很多,PHP官方有(鄙视源码作者, ...

  2. 坑爹的微信支付v3,其实没有那么坑

    http://www.cnblogs.com/zskbll/p/wxpay.html 研究微信开发一年多了,每个新接口,都会第一时间进行研究.微信支付开放很久,一直没机会接触到支付接口,等了好久终于从 ...

  3. 为了Java微信支付V3开发包,我找出了微信支付文档至少六个错误

    1. 前言 最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来.前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善 ...

  4. 微信支付v3开发(5) 扫码并输入金额支付

    关键字:微信支付 微信支付v3 动态native支付 统一支付 Native支付 prepay_id 作者:方倍工作室 本文介绍微信支付下的扫描二维码并输入自定义金额的支付的开发过程. 注意 微信支付 ...

  5. 如何在Spring Boot项目中集成微信支付V3

    Payment Spring Boot 是微信支付V3的Java实现,仅仅依赖Spring内置的一些类库.配置简单方便,可以让开发者快速为Spring Boot应用接入微信支付. 演示例子: paym ...

  6. Payment Spring Boot 1.0.4.RELEASE 发布,最易用的微信支付 V3 实现

    Payment Spring Boot 是微信支付V3的Java实现,仅仅依赖Spring内置的一些类库.配置简单方便,可以让开发者快速为Spring Boot应用接入微信支付. 欢迎ISSUE,欢迎 ...

  7. 微信支付 V3 的 Java 实现 Payment Spring Boot-1.0.7.RELEASE 发布

    Payment Spring Boot 是微信支付V3的Java实现,仅仅依赖Spring内置的一些类库.配置简单方便,可以让开发者快速为Spring Boot应用接入微信支付. 功能特性 实现微信支 ...

  8. C# 微信扫码支付 回调页面

    .NET版 微信扫码支付,官方推荐使用[模式二] 一.微信扫码支付模式一: 1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx 2.微信回调地址:http:/ ...

  9. Vue3+Typescript+Node.js实现微信端公众号H5支付(JSAPI v3)教程--各种填坑

    ----微信支付文档,不得不说,挺乱!(吐槽截止) 功能背景 微信公众号中,点击菜单或者扫码,打开公众号中的H5页面,进行支付. 一.技术栈 前端:Vue:3.0.0,typescript:3.9.3 ...

随机推荐

  1. Node.js Ubuntu下安装

    安装 Node.js 依次执行以下指令: sudo apt-get update sudo apt-get install -y python-software-properties python g ...

  2. 无参数实例化Configuration对象以及addResource无法加载core-site.xml中的内容

    core-site.xml中配置的fs.default.name是hdfs://localhost:9000.但是这里读取出来的是本地文件系统.原因暂不知?有谁知道?

  3. 同一个页面多个page之间的切换

    今天接触了JQ Mobile以下是本小白的理解(不怕大家笑话): 创建移动 web 应用程序的框架:适用于所有流行的智能手机和平板电脑: 将“写得更少.做得更多”这一理念提升到了新的层次:它会自动为网 ...

  4. 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击

    通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...

  5. Android应用安全开发之浅谈网页打开APP

    一.网页打开APP简介 Android有一个特性,可以通过点击网页内的某个链接打开APP,或者在其他APP中通过点击某个链接打开另外一个APP(AppLink),一些用户量比较大的APP,已经通过发布 ...

  6. ABP理论学习之Swagger UI集成

    返回总目录 本篇目录 介绍 安装 安装Nuget包 配置 测试 介绍 从官方网站上可以看到:"启用了Swagger API,就可以获得交互式文档,生成和发现客户端SDK". 安装 ...

  7. JS实战 · 表格行颜色间隔显示,并在鼠标指定行上高亮显示

    思路: 1.获取所有行对象,将需要间隔颜色显示的行对象进行动态的className属性指定:      前提是:先定义好类选择器,就是说给行对象赋予name. 2.高亮用到两个事件:onmouseov ...

  8. JavaScript学习笔记之Array

    数组的定义: 1,var arr=new Array();      -->数组是特殊的对象,typeOf的返回值是object arr[0] arr[1] ... 2,var arr=new ...

  9. iOS开发-应用崩溃日志揭秘(一)

    作为一名应用开发者,你是否有过如下经历? 为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! 如果 ...

  10. [VB] if 判断语句 和 If、IIf函数的比较

    Module Module1 Sub Main() Dim s1 As String = "我是真的" Dim s2 As String = "我不是真的" D ...