简介
# 微信扫码支付
微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景
# 使用场景&案例
场景
- 用户扫描商户展示在各种场景的二维码进行支付
使用案例
- 线下:家乐福超市、7-11便利店、上品折扣线下店等
- 线上:大众点评网站、携程网站、唯品会、美丽说网站等
# 开发模式
模式一
- 商户在后台给生成二维码,用户打开扫一扫
模式二
- 商户后台系统调用微信支付【统一下单API (opens new window)】生成预付交易,将接口返回的链接生成二维码,用户扫码后输入密码完成支付交易
- 注意:该模式的预付单有效期为2小时,过期后无法支付
# 申请步骤
注册公众号
类型须为服务号
请根据营业执照类型选择以下主体注册:个体工商户 (opens new window)| 企业/公司 (opens new window)| 政府 (opens new window)| 媒体 (opens new window)| 其他类型 (opens new window)
认证公众号
- 公众号认证后才可申请微信支付,认证费:300元/年
提交资料申请微信支付
- 登录公众平台,点击左侧菜单【微信支付】,开始填写资料等待审核,审核时间为1-5个工作日内
开户成功,登录商户平台进行验证
- 资料审核通过后,请登录联系人邮箱查收商户号和密码,并登录商户平台填写财付通备付金打的小额资金数额,完成账户验证
在线签署协议
- 本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效
# 开发文档
微信支付接口调用的整体思路
- 按API要求组装参数,以XML方式发送 POST 给微信支付接口URL
- 微信支付接口以XML方式给予响应
- 程序根据返回的结果(其中包括支付URL)生成二维码或判断订单状态
在线微信支付开发文档
https://pay.weixin.qq.com/wiki/doc/api/index.html
配置
- appid
- 微信公众账号或开放平台APP的唯一标识
- mch_id
- 商户号 (配置文件中的partner)
- partnerkey
- 商户密钥
- sign
- 数字签名,
- 根据微信官方提供的密钥和一套算法生成的一个加密信息, 就是为了保证交易的安全性
# 支付流程
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5&index=3
# 微信支付SDK
示例下载
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1
添加依赖
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
1
2
3
4
5
2
3
4
5
主要会用到微信支付SDK的以下功能
// 获取随机字符串
WXPayUtil.generateNonceStr()
// MAP转换为XML字符串(自动添加签名)
WXPayUtil.generateSignedXml(param, partnerkey)
// XML字符串转换为MAP
WXPayUtil.xmlToMap(result)
1
2
3
4
5
6
2
3
4
5
6
Last Updated: 2022/01/16, 11:29:51