1.微信支付快速入门
1.1 微信支付申请(了解)
第一步:注册公众号(类型须为:服务号)
请根据营业执照类型选择以下主体注册:个体工商户| 企业/公司| 政府| 媒体| 其他类型。
第二步:认证公众号
公众号认证后才可申请微信支付,认证费:300元/次。
第三步:提交资料申请微信支付
登录公众平台,点击左侧菜单【微信支付】,开始填写资料等待审核,审核时间为1-5个工作日内。
第四步:开户成功,登录商户平台进行验证
资料审核通过后,请登录联系人邮箱查收商户号和密码,并登录商户平台填写财付通备付金打的小额资金数额,完成账户验证。
第五步:在线签署协议
本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效。
完成上述步骤,你可以得到调用API用到的账号和密钥
1.2 微信支付开发文档与SDK
在线微信支付开发文档:
https://pay.weixin.qq.com/wiki/doc/api/index.html
微信支付接口调用的整体思路:
我们解压从官网下载的sdk ,安装到本地仓库
com.github.wxpay.sdk.WXPay类下提供了对应的方法:
1.3 统一下单API
(1)新建工程changgou_service_pay,引入微信支付Api
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>3.0.9</version>
</dependency>
(2)创建com.github.wxpay.sdk包,包下创建MyConfig类 ,继承自抽象类WXPayConfig
package com.github.wxpay.sdk;
import java.io.InputStream;
public class MyConfig extends WXPayConfig {
@Override
String getAppID() {
return "wx8397f8696b538317";
}
@Override
String getMchID() {
return "1473426802";
}
@Override
String getKey() {
return "T6m9iK73b0kn9g5v426MKfHQH7X8rKwb";
}
@Override
InputStream getCertStream() {
return null;
}
@Override
IWXPayDomain getWXPayDomain() {
return new IWXPayDomain() {
@Override
public void report(String s, long l, Exception e) {
}
@Override
public DomainInfo getDomain(WXPayConfig wxPayConfig) {
return new DomainInfo("api.mch.weixin.qq.com",true);
}
};
}
}
(3)创建测试类,编写代码
MyConfig config=new MyConfig();
WXPay wxPay=new WXPay( config );
Map<String,String> map=new HashMap();
map.put("body","畅购");//商品描述
map.put("out_trade_no","55555211");//订单号
map.put("total_fee","1");//金额
map.put("spbill_create_ip","127.0.0.1");//终端IP
map.put("notify_url","http://www.baidu.com");//回调地址
map.put("trade_type","NATIVE");//交易类型
Map<String, String> result = wxPay.unifiedOrder( map );
System.out.println(result);
执行后返回结果
其中的code_url就是我们的支付URl ,我们可以根据这个URl 生成支付二维码
1.4 二维码JS插件- QRcode.js
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5Canvas 绘制而成,不依赖任何库。支持该库的浏览器有:IE6~10, Chrome, Firefox, Safari, Opera,Mobile Safari, Android, Windows Mobile, 等
我们看一下静态原型wxpay.html中的代码,显示二维码的地方放置<div id='qrcode'></div>
,然后编写脚本
<script type="text/javascript" th:inline="javascript">
let qrcode = new QRCode(document.getElementById("qrcode"), {
width : 240,
height : 240
});
qrcode.makeCode([[${code_url}]]);
</script>