跳转至

H5接入

当接入方应用形态为H5时,可选择“微信H5支付(wx_wap)”、“支付宝手机网站支付(alipay_wap)”、“私域钱包支付(shengpay_app)”产品实现支付功能。接入方通过调用聚合支付预收单接口,获取支付要素payInfo,前端完成调起支付和接收回调的处理。

1. 微信H5支付

浏览器直接打开支付中间页调起支付。参见

1
2
3
//聚合支付预收单返回的payInfo示例,即微信的MWEB_URL
"payInfo": "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx30115138771721aaeb5d96bb1092419400&package=1239212527&redirect_url=http%3A%2F%2Fwww.baidu.com"
//redirect_url为微信同步回调地址,对应接入方预收单接口传入的pageUrl值

2. 支付宝手机网站支付

浏览器直接打开表单调起支付。参见

1
2
3
//聚合支付预收单返回的payInfo示例
"payInfo": "<form name=\"punchout_form\" method=\"post\" action=\"https://openapi.alipay.com/gateway.do?charset=utf-8&method=alipay.trade.wap.pay&sign=yGe1aT9mZwtGWMjUSJZ6LVZrscsVuaUo2UtCqLxgbmwj0k67TSImlxQN5o1Jgaguht3zRCmdfUdz%2BFYEI9P8JXVLtEJhpDkqPgux2BmdLVYHkFJJofNKxLx4T1V1ujw6JrNZFz8KFXdx0MrQSi41DmNckv9B4tf7mWvxztiIzGU%3D&return_url=http%3A%2F%2Fwww.baidu.com&notify_url=http%3A%2F%2Fpaychanneltest.shengpay.com%2Fapi%2Falipay%2FpayNotify&version=1.0&app_id=2016110402529665&sign_type=RSA&timestamp=2020-04-30+11%3A54%3A48&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=JSON\">\n<input type=\"hidden\" name=\"biz_content\" value=\"{&quot;out_trade_no&quot;:&quot;ZLZFB20200430115448000973&quot;,&quot;product_code&quot;:&quot;QUICK_WAP_WAY&quot;,&quot;subject&quot;:&quot;商品&quot;,&quot;timeout_express&quot;:&quot;329285m&quot;,&quot;total_amount&quot;:&quot;0.20&quot;}\">\n<input type=\"submit\" value=\"立即支付\" style=\"display:none\" >\n</form>\n<script>document.forms[0].submit();</script>"
//return_url为支付宝同步回调地址,对应接入方预收单接口传入的pageUrl值

3. 企业钱包jsapi支付

通过引入js调起钱包支付。(暂时仅支持WiFi万能钥匙浏览器。其他宿主APP需自身浏览器JSBridge支持H5调起native钱包支付)

1
2
3
4
//暂时服务端sdk 仅支持Java版本通过聚合平台调用私域钱包
//聚合支付预收单返回的payInfo示例 (预收单请求中tradeType:shengpay_app)
"payInfo":"{\"mchId\":\"88010005\",\"appId\":\"4741591954315\",\"sign\":\"\",\"signType\":\"RSA\",\"prepayId\":\"WP06384389\",\"nonceStr\":\"wiwiiniigifgfi\",\"timestamp\":\"1591429395\"}"
//七要素,聚合支付sever-sdk已完成了加签

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//js调起钱包支付。调用聚合支付预收单后,将payInfo透传至此处,拉起私域钱包支付
//依赖于WiFi万能钥匙wkb( 引入 https://a.lianwifi.com/wkb/0.1.4/wkb.js )
cashierData = result.prePay; // 调用api/v1/payment 接口相应
const paydata = {
  appId: cashierData.appId,
  mchId: cashierData.mchId,
  prepayId: cashierData.prepayId,
  nonceStr: cashierData.nonceStr,
  sign: cashierData.sign,
  signType: cashierData.signType,
  timestamp: cashierData.timestamp,
}; //payInfo已完成加签,此处透传七要素。不能增加其他参数,以免验签失败。

if (isAndroid) {
callNewCashierAndriod(JSON.stringify(paydata));
} else {
callNewCashierIos(JSON.stringify(paydata));
}

const callNewCashierAndriod = function (data) {
console.log(data);
wkb.call('startComponent', {
action: 'opensdk.intent.action.SEND_PAY_REQ_H5',
ext: data,
type: !0,
startactivityforresult: false,
callback: 'paycb',
});
};

const callNewCashierIos = function (data) {
wkb.call('startComponent', {
action: 'opensdk.intent.action.SEND_PAY_REQ_H5',
ext: data,
type: 0,
startactivityforresult: true,
callback: 'paycb',
className: '',
});
};

window.paycb = function(res) {}
Back to top