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,链接地址