1.登录微信支付商户平台
https://pay.weixin.qq.com/index.php/partner/public/home
2.点击开发文档
3.进入如下界面点击小程序支付
4.微信公众平台支付账户认证
认证流程如下:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=3_1
认证完成后,微信开发支付参数说明如下:
appid为和服务商商户号绑定的服务商appid,一般情况为认证的服务号appid;
mch_id为服务商商户号,目前仅在认证服务号后台(mp.weixin.qq.com)开放申请服务商商户号,申请开通后即在微信支付系统创建绑定关系;
sub_mch_id为和服务商商户号有父子绑定关系的子商户号;
sub_appid为服务商模式的场景appid,在小程序中拉起支付时该字段必传;
trade_type请填写JSAPI;
openid为appid对应的微信用户标识;
sub_openid为sub_appid对应的微信用户标识,小程序服务商模式下单中的openid和sub_openid必须至少传其中一个,在小程序中拉起支付一般情况下只能获取到sub_openid,即使用wx.login接口获得的openid。
5.小程序业务流程
商户系统和微信支付系统主要交互:
1)小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API】
2)商户server调用支付统一下单,api参见公共api【统一下单API】
3)商户server调用再次签名,api参见公共api【再次签名】
4)商户server接收支付通知,api参见公共api【支付结果通知API】
5)商户server查询支付结果,api参见公共api【查询订单API】
小程序支付的交互图如下:
6.java程序接口API实现:
1) 生成订单
packagecom.jingweiiot.smart_home.utils.weixin.WXPay;
importjava.util.Map;
importjava.util.SortedMap;
importjava.util.TreeMap;
importjavax.servlet.http.HttpServletRequest;
importcom.fasterxml.jackson.core.JsonProcessingException;
importcom.fasterxml.jackson.databind.ObjectMapper;
importcom.jingweiiot.smart_home.model.UserOrderInfo;
publicclass CreateUserOrderInfo {
/**
* 生成订单
* @paramuserOrderInfo
* @paramre