聚合⽀付踩坑
1、code
window.location.href='qr.95516/qrcGtwWeb-web/api/userAuth?version=1.0.0&redirectUrl='
+ encodeURIComponent('域名/项⽬路径/index.html');//这⾥是code回调的页⾯
2、⽀付宝code
a.在⽀付宝开放平台申请⽹页&移动端应⽤
b.⾸先在应⽤信息⾥设置公钥私钥 以及授权回调地址
切记⽀付宝授权回调地址和前端写的要保持⼀直例如:/xxx/index.html
c.之后在概览=》添加功能=》添加获取会员信息选项
d.在前端进⾏调⽤获取⽀付宝授权码
var redirectUrl = encodeURIComponent('域名/项⽬路径/index.html')//⽀付宝code回调地址
window.location.href ='openauth.alipay/oauth2/publicAppAuthorize.htm?app_id=appid&redirect_uri='+redirectUrl+'&scope=auth_base&state=ini t';
e.获取userId
3、code国家法定节假日2021安排时间表
var redirectUrl = encodeURIComponent('域名/项⽬⽬录/')
window.location.href ='open.weixin.qq/connect/oauth2/authorize?appid=appid&redirect_uri='+ redirectUrl+'&response_type=code&scope=snsa pi_base&connect_redirect=1#wechat_redirect'
⼆、获取useId
1.
/**
* 获取⽤户userId
* @param map
* @return
*/
public String auth(Map<String, String> map){
map.put("mid", PayConstants.mid); // 商户号
map.put("tid", PayConstants.tid); // 终端号
map.put("msgSrc", PayConstants.msgSrc); // 请求来源
map.put("msgSrcId", PayConstants.msgSrcId); // 来源Id
map.put("msgType", "UserId");
map.put("requestTimestamp", Timestamp()); // 报⽂请求时间
map.put("instMid", PayConstants.instMid); // 业务类型
map.put("sign", PayUtil.makeSign(PayConstants.md5 ,map));// MD5签名
json = JSONObject.JSONString(map));
String responseData = Httpkits.doPostJson1(PayConstants.unionPay_userAuth_url,json);
return responseData;
}
2.:
/**
* 获取userid
* @param code
* @return
*/
public static String getWXAccessToken(String code){
StringBuilder sb = new StringBuilder();
sb.append(WX_ACCESS_URL);
sb.append("?appid="+ WX_APPID);
sb.append("&secret="+ WX_SECRET);
sb.append("&code="+ code);
sb.append("&grant_type=authorization_code");
String accessToken = Httpkits.String());
JSONObject resp_json = JSONObject.parseObject(accessToken);
return String("openid");
}
2.⽀付宝:
/**
* 获取⽀付宝userid
* @param code
* @return
*/
罗志祥舌吻public String auth(String code){
try {
AlipayClient alipayClient = new DefaultAlipayClient( PayConstants.ALIPAY_SERVERURL, PayConstants.ALIPAY_APP_ID, PayConstants.APP_PRIVATE_KEY,
"json",
"GBK",
杨千嬅照片PayConstants.ALIPAY_PUBLIC_KEY,
金银玲"RSA2");
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
request.setGrantType("authorization_code");
request.setCode(code);
AlipaySystemOauthTokenResponse response = ute(request);
String data = JSONString(response);
JSONObject ret = JSONObject.parseObject(data);
if(response.isSuccess()){
UserId();
}
} catch (AlipayApiException e){
e.printStackTrace();
}
return null;
}
}
三、⽀付
下单按照所给的聚合⽀付下单流程进⾏操作
1、⽀付宝下单详见银联聚合⽀付下单API
<script src="gw.alipayobjects/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.inc.min.js"></script>
tradeNO: derNo, //从服务端获取订单号
}, function(res){
console.log(res) // ⽀付宝下单⽀付后回调状态
});
如此⽀付宝即可下单成功
2、下单详见银联聚合⽀付下单API
孙楠与潘蔚WeixinJSBridge.invoke(
'getBrandWCPayRequest',
//{
// "appId":"123123123", //名称,由商户传⼊
/湖南小吃
/ "timeStamp":"1395712654", //时间戳,⾃1970年以来的秒数
// "nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串
// "package":"prepay_id=u802345jgfjsdfgsdg888",
// "signType":"MD5", //签名⽅式:
// "paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //签名//},//这些订单信息都在jsPayRequest之中
res.jsPayRequest,
function(res){
console.log('wxpay ⽀付回调', res)
}
);
3、下单详见银联聚合⽀付下单API
按照下单流程成功后会获取redirectUrl 然后
Window.location.href = redirectUrl 即可⽀付
三、⽂档详见聚合⽀付⽂档
四、总结
1、授权code跟⽀付宝、公众等平台H5授权⼀样
2、userid 也是在各⼤平台进⾏授权获取
3、⽆需在⽀付宝等商户平台签约⽀付相关需求可免除⼿续费
4、⼀码多⽤
发布评论