最近做了一个微信支付的功能,整理下思路(主要是校验逻辑):
先上图微信H5支付的官方流程图:
自己梳理了下流程:
① 用户请求支付---->② 前端页面请求后台接口---->③ 后台处理订单逻辑(请求微信支付校验接口,成功后返回相应的校验数据)---->④ 后台将校验数据返回给前端页面---->⑤ 前端页面封装数据调用微信支付接口---->⑥ 微信将结果回调到前端请求中配置的回调接口---->⑦ 回调接口接收到数据进行再次校验并处理支付后的逻辑
第③步 所校验的参数:
// 随机字符串
parameters.put("nonce_str", RandomUtil.generateRandomCharAndNumber(10));
// 商品名称
parameters.put("body", orderName);
// 商户系统内部的订单号(自己生成的订单号)
String out_trade_no = orderId;