由于微信支付需要正式公众号及开通微信支付,所以这里不使用实际环境,只说明流程及具体的一些操作。
1、 微信官方给出的开发流程:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4
简化流程:前台点击购买——>调用后台接口生成预支付订单信息——>把预支付订单信息返回前端,由前端调用微信支付——>付款成功后,后端通知接口保存订单信息——>前端调用查单接口,确保订单真实(由于微信官方给出的说法是:用户支付成功后返回ok,但并不保证它绝对可靠,所以需要查单操作)
具体流程:
1、 生成预支付订单信息。
项目引入微信工具包
备注:outTradeNo这个自己生成即可,32位以内,保证不会重复即可。我使用的是yyyyMMddHHmmss+8位MD5加密UUID,保证不会重复而且还能一眼明了订单生成时间。
2、根据预支付订单信息,前端调用微信支付接口
3、Java后端支付订单结果通知接口:
4、 查单
前台支付结果返回值是:get_brand_wcpay_request:ok的时候,去调用查单结果。其他结果都是失败。
查单接口:
查单接口返回成功的话,调用公众号模板信息推动购买成功信息即可。