JAVA-APP微信支付流程
支付流程:
- 用户在APP中选择商品,点击购买
- 移动端调用后台,生成商品订单,并返回订单信息。用户端展示订单信息
- 用户点击支付,选择微信支付
- 移动端调用后台,后台生成支付订单,后台调用微信支付统一下单接口【统一下单API】
- 统一下单接口会返回prepay_id,再按签名规范重新生成签名后,将数据传输给移动端。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay
- 移动端调用微信支付【app端开发步骤说明】
- 用户输入密码,确认支付
- 此时微信后台会异步调用APP后台的支付回调接口,后台根据支付结果进行不同的业务处理(如:修改商品订单、支付订单的状态,还有商品库存等业务)
- 移动端调用后台,后台调用微信查询订单【查询订单API】返回给移动端
- 移动端展示支付结果。进行下面的业务处理。
支付流程图:
微信APP支付开发文档:微信APP支付开发文档
开发时候的坑:
后台请求微信的参数都是用 “_” 分割的
APP端请求参数的参数名是不含有 “_” 的,并且全部小写。
调起支付的请求是在APP端向微信发起请求的,但是签名是后台根据统一下单的返回结果,在后台完成的。这个时候参数名称,也要全部小写,并且不带 “_”