1、微信JSSDK支付(使用微信浏览器的web支付)
主要有三种api接口
a、下单
使用微信提供接口下单,文档链接
需要关注的是签名生成方式
示例代码如下
StringBuffer signStr = new StringBuffer();
signStr.append("appid=" + appid + "&");
signStr.append("attach=" + attach + "&");
signStr.append("body="+body + "&");
signStr.append("device_info"+device_info+ "&");
signStr.append("mch_id=" + mch_id + "&");
signStr.append("nonce_str=" + nonce_str + "&");
signStr.append("notify_url=" + notify_url + "&");
signStr.append("openid=" + openId + "&");
signStr.append("out_trade_no=" + oderNo + "&");
signStr.append("spbill_create_ip=" + spbill_create_ip + "&");
signStr.append("total_fee=" + limit + "&");
signStr.append("trade_type=" + "JSAPI" + "&");
signStr.append("key=" + mch_key);
String sign = DigestUtils.md5Hex(signStr.toString()).toUpperCase();
b、支付回调
用户支付成功支付后,微信会回调这个接口,根据微信传递的参数,需要将对应订单的支付状态更改为已支付状态,注意此处需要做重复回调的校验,微信不能保证没有重复的回调,成功之后需要返回success状态给微信服务器,微信文档
c、支付结果查询
用户服务器可以主动发起查询,查询对应订单的支付状态,文档链接
2、银联支付
具体方式与微信支付类似,也是用户服务器访问银联服务器生成订单,客户支付,银联服务器回调用户服务器,具体调用参考银联api,链接地址