第一章微信扫码支付介绍
微信扫码支付就是我们目前生活中最常使用的联通端支付方法之一。
第二章微信支付必要条件
我们要完成微信支付,这么我们顾客自己是付款方,这么收款方呢?所以在这儿我们须要一个收款方。这么要才能成为微信扫码支付的收款方,我们须要去申请微信的服务号,之后去开通扫码支付。(这个服务号个人未能申请,在这儿不做教程说明)
第三章微信支付流程介绍
微信支付模式介绍
模式一:商户必须在公众平台后台设置支付反弹URL。
模式二:调用微信的插口,获取支付的地址。
在这儿,我没法登录后台,所以选择使用模式二。
模式二开发流程介绍
按照上述的时序图,得到如下的流程:注意上图中蓝色部份就是我们开发者须要做的部份
(1)商户后台系统按照用户购买的商品生成订单。
(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易.
(3)微信支付收到恳求后生成预支付交易单,并返回交易会话的二维码链接
(4)商户后台系统按照返回的生成二维码。
(5)用户打开微信“扫一扫”扫描二维码,微信顾客端将扫码内容发送到微信支付系统。
(6)微信支付系统收到顾客端恳求,验证链接有效性后发起用户支付,要求用户授权。
(7)用户在微信顾客端输入密码,确认支付后,微信顾客端递交授权。
(8)微信支付系统按照用户授权完成支付交易。
(9)微信支付系统完成支付交易后给微信顾客端返回交易结果,并将交易结果通过邮件、微信消息提示用户。微信顾客端展示支付交易结果页面。
(10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。
(11)未收到支付通知的情况,商户后台系统调用【查询订单API】。
(12)商户确认订单已支付后给用户发货。
第四章核心流程所涉及的功能代码
1.调用微信的【统一下单API】,会的到微信支付的地址
2.依据生成二维码
3.调用【查询订单API】,查询微信支付的结果。
第五章统一下单api代码说明
首先须要下载微信支付的jar包【SDK与DEMO下载】
其中微信扫码点单,企业公众号id、api密钥、商户帐号须要申请服务号能够拥有,可以查看第二章,这儿公司隐私,不能透漏
收款方的配置文件
public class MyConfig implements WXPayConfig { //获取 App ID(企业方公众号Id) @Override public String getAppID() { return "*****************"; } //获取 API 密钥 @Override public String getKey() { return "*****************"; } //获取 Mch ID(商户账号) @Override public String getMchID() { return "****************"; } //获取商户证书内容(我们这里不需要证书) @Override public InputStream getCertStream() { // TODO Auto-generated method stub return null; } //HTTP(S) 连接超时时间,单位毫秒 @Override public int getHttpConnectTimeoutMs() { // TODO Auto-generated method stub return 8000; } //HTTP(S) 读数据超时时间,单位毫秒 @Override public int getHttpReadTimeoutMs() { return 10000; } }
统一下单DEMO
详尽参数点击【统一下单API】
class{
voidmain([]args){
=new();
//加载微信支付的企业参数
WXPaywxpay=newWXPay();
//设置微信支付的参数
Mapdata=new();
//商品的描述
data.put("body","商城");
//订单号,订单号必须惟一。自己测试请切换其他订单号
data.put("","12");
//设备号,无关
data.put("","");
//币种人民币
data.put("","CNY");
//支付金额
data.put("","50");
data.put("","123.12.12.123");
//异步接收微信支付结果通知的反弹地址,通知url必须为内网可访问的url,不能携带参数。我们不适用异步通知,而且这儿的参数必需要有
data.put("","");
data.put("","");//此处指定为扫码支付
data.put("","12");
try{
Mapresp=wxpay.(data);
for(Map.Entryentry:resp.()){
key=entry.();
value=entry.();
.out.(key+":"+value);
}catch(e){
e.();
输出结果
输出结果是一个map集合,map集合的详尽参数介绍同样点击【统一下单API】,重点是,获取map集合中的key为的值,这个就是微信支付的地址。
第六章二维码生成介绍
我们一般扫描二维码微信扫码点单,虽然可以发觉访问了一个地址。说白了,二维码的本质就是一个网路资源的地址。二维码的生成是通过js插件生成的。
【.js下载】
结果如图:
切换参数中的百度的地址为我们第五章中生成的支付地址://wxpay/?pr=
第七章查询订单API代码说明
详尽参数请参考【查询订单API】
voidmain([]args){
//加载企业参数
=new();
WXPaywxpay=newWXPay();
//设置须要查询的订单的单号
Mapdata=new();
data.put("","12");
//输出查询的结果
try{
Mapresp=wxpay.(data);
/*
代表的就是订单支付结果
—支付成功
—转入退货
—未支付
—已关掉
—已撤消(刷卡支付)
--用户支付中
--支付失败(其他缘由,如交行返回失败)
*/
for(Map.Entryentry:resp.()){
key=entry.();
value=entry.();
.out.(key+":"+value);
}catch(e){
e.();
返回值同样是一个map集合,其中的key所对应的值就是订单的交易状态。
参数结果:
第八章:总结
1.必须申请公众号,获取微信支付的参数。
2.在中设置微信支付的参数
3.调用微信支付的下单的api,填写指定参数,获取支付的url地址
4.调用现有的js,给定指定的url地址参数,生成扫码支付的二维码地址
5.后台协程查询订单的支付状态
免责声明:部分文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快为您处理。