.net接入微信二维码支付(模式二)
最近写项目,用到了微信支付,再次写篇博客记录一下。
先说一下大致流程:
1,商户平台先生成订单,然后调用统一下单API,将一些订单的参数传过去。
2,微信系统会生成订单,然后将交易链接返回给商户平台,商户平台将交易链接生成二维码,展示给用户。
3,用户付款阶段。(此时是用户付款阶段,因为微信支付成功之后只会向用户刚开始定义的回调路径返回结果,但是商户前台系统无法及时获取订单状态,所以可以使用长连接调用微信的查询订单API,如果用户支付成功,关闭二维码,告知用户付款成功。)
4,如果用户支付成功,微信会向用商户平台自己定义的回调路径发送一次请求,把支付结果返回给商户平台,
用户可以再这个回调页面对自己的订单做一些处理。但是这个页面一定要按照微信文档中的参数,返回给微信结果,如果不返回,或者返回错误,微信就会一直调用。
5,商户系统的长连接检测到微信订单已经支付成功,返回给商户系统前台,告知用户支付成功。
demo测试:
首先先去下载官网提供的sdk(https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_CS.zip)
下载完成之后打开demo。
首先找到lib文件夹下的DemoConfig文件。这个文件中是一些基本参数的设置
这些参数配置完成之后还要在修改WxPayApi文件中sign_type参数的值,修改成WxPayData.SIGN_TYPE_MD5(默认是WxPayData.SIGN_TYPE_HMAC_SHA256,这个我不确定是否要修改,我自己写的时候用默认的会报sign出错。修改成MD5之后就可以了)
Data.cs文件中生成sign的方法也需要修改
以上修改完成之后demo应该就可以跑通了。
打开example文件夹下的NativePayPage页面,就会生成二维码了。
二维码url的生成是在NativePay.cs文件中。
这个方法就是先创建一个model,填入一些业务参数,之后会调用统一下单接口(接口文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1)
添加业务参数的时候要注意,total_fee这个参数是总金额以分为单位,int类型,1就是1分。
业务级别的参数类型,一定要严格按照接口文档上的类型,如果不对,生成的sign会出错,就生成不了二维码。
UnifiedOrder方法里面会自己添加系统级别的参数,如APPID之类的参数,添加完成之后会有一个步骤生成sign。
sign的官方解释(https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=4_3)
sign生成之后会去调用统一下单接口,会返回xml字符串,result.FromXml()会把返回值序列化成微信提供的一个对象。
如果接口调用成功会返回一个url,然后调用方法把url转成二维码就行了。
sdk里面微信用的生成二维码方式是ThoughtWorks.QRCode,直接nuget包下载就行了。
如果不想用后台生成,也可以用js生成,QRCode.js。
待更新。
.net接入微信二维码支付(模式二)相关推荐
- 微信二维码支付支付宝二维码支付(主扫模式)开发指南
微信二维码支付 熟悉微信支付全家桶的童鞋应该都清楚,微信支付是没有提供PC网关支付的,那么传统的网站需要怎么接入微信支付产品呢? 我们可以选择微信支付中的Native支付产品,官方介绍: Native ...
- 移动二维码支付 推进二维码扫码智能POS
现如今:银币.再到纸币,演变到"钱"变得越来越轻薄.在现在这个移动支付市场中,互联网技术的支撑下,刷手机乘公交.刷支付宝买菜购物.缴水电费--日常生活中使用"现金&quo ...
- 关于前端调用微信二维码支付,二维码无法显示的问题
昨天测试提交了一个bug,说是公司网站调用微信支付时无法显示微信二维码,于是去测试环境测试了一下,发现果然有问题: 此时后台日志打印了如下信息,微信接口返回的错误提示是:"invalid s ...
- 对接微信二维码支付流程
客户在平台下单 平台生成订单记录并且请求微信支付系统获取支付链接地址 微信支付系统响应支付地址通过平台H5技术生成支付二维码 用户扫描支付二维码跳转支付链接地址并且微信支付系统校验支付链接有效性 用户 ...
- 二维码支付的优势与劣势
一.二维码支付概述 1.第三方移动支付定义 第三方移动支付是指交易双方通过手机.平扳电脑等移动终端,利用移动通信网络和无线通信技术,由独立于移动通讯运营商与银行以外的第三方支付平台支持的支付服务,完成 ...
- 银联押宝二维码支付 背后还有一片纷争江湖
昨天银联二维码支付标准正式发布了.这被市场看做,此前存在安全隐患.饱受争议的二维码支付终于合规化了.各位以后去商家扫码,会有不同选择了:支付宝的.微信的.还有银联的.不过我估计各位还是哪个方便.哪个优 ...
- JAVA微信扫码支付模式二功能实现完整例子
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
- Java之微信支付(扫码支付模式二)案例实战
摘要:最近的一个项目中涉及到了支付业务,其中用到了微信支付和支付宝支付,在做的过程中也遇到些问题,所以现在总结梳理一下,分享给有需要的人,也为自己以后回顾留个思路. 一:微信支付接入准备工作: 首先, ...
- 随手记录JAVA微信扫码支付模式二功能
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
- 微信二维码支付快速入门
目录 一.二维码生成插件qrious 二.HttpClient 三.微信扫码支付 1.申请步骤 2.开发文档 四.入门Demo 1.工程搭建 2.myStudy-pay-interface 3.myS ...
最新文章
- 【深度学习】(1) 前向传播,附python完整代码
- 《计算机网络》常考概念、英文缩写、公式大全
- WEB前端性能优化小结
- 从零开始入门 K8s | 可观测性:监控与日志
- C#中全局作用域的常量、字段、属性、方法的定义与使用
- 每天一道LeetCode-----给定大小为n+1的数组,元素大小在[1 : n]之间,只有一个元素会重复出现多次,找到重复的那个
- ccform 单据打印的规则调整与新增功能发布说明
- java获取当前电脑的ip_使用Java获取当前计算机的IP地址
- 因社会不公大学生找不到工作
- oracle服务怎么手动删除,彻底删除oracle服务
- android_root后的玩机:magisk模块root隐藏/lsposedxposed框架的使用/MIUI小窗多开
- 照片怎么转PDF格式?这两个方法快来学习下
- 永远的道长——林正英
- 电脑搜索文件的服务器,Archivarius注册版
- java flightrecorder_java 11 Java Flight Recorder
- 练习---打印出电影天堂中电影的下载链接
- Color国际青年公寓
- 扩散模型加持下,机器人模型DALL-E-Bot可以轻松完成自主重新排列任务
- git bash gpg_与git gpg共享密码并通过
- 如何下载、使用英文期刊的LaTeX模板(以TIE为例)