面包多Pay
搜索文档…
微信 JSAPI 支付
适用于微信内网页
在使用 JSAPI支付之前,请先获得用户openid

请求URL

    https://api.mianbaoduo.com/release/wx/prepay

请求方式

    POST
    Json

请求参数

参数名
必选
类型
说明
openid
string
用户的openid,参见获取openid
app_id
string
你的 app_id,可在控制台查看
description
string
支付描述,一般为商品名称
amount_total
number
金额,单位为分
out_trade_no
string
订单号,如不填,面包多将随机生成订单号
callback_url
string
支付后跳转地址
sign
string
请求签名,参照签名算法

返回示例

1
//成功
2
{
3
"appId": "wxa8423199a021d",
4
"timeStamp": "1615441885",
5
"nonceStr": "ulAuiq1uxxofwSCH",
6
"package": "prepay_id=wx111351262666123e13b9da0000",
7
"signType": "RSA",
8
"paySign": "4QaU1C1HvjBdTTgsjwP48YWC+OlHtqWOXWPGD3hEt27S3Snha7iDjwBPOSMLOueTIxi0TAaAaeZy0QU7RU065XwlNxTH9NDP9oN+mXyy+S6bgmNHKyxHyISVeo1gCZhFKCidpaj2KgUHgfyyvYcte5oeK3jtYccAyFyJ23IugvYSggxUKM6JQKIsJ9YWAWIBqL9q9FINbKl0bjOAMYC0IAmmw8whaLC7ZdFZ9wIsHE6YYuXwnDi/O6tRpIdZf/y3w=="
9
}
10
11
//失败
12
{
13
"error": "error sign"
14
}
Copied!

返回参数说明

参数名
类型
说明
error
string
错误说明

备注

    如果返回结果不包含 error,则请求成功,返回的参数直接放入html中,即可在微信内使用微信 jsapi 唤起支付
    jsapi支付的使用请参考微信官方文档
    根据微信规则,jsapi 支付后用户会进入「小票页面」,用户点击该页面的「继续」按钮,会跳转至 callback_url

支付Demo

该 demo 参考 payjs
1
<html>
2
<head>
3
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
5
<meta name="apple-mobile-web-app-status-bar-style" content="black">
6
<meta name="format-detection" content="telephone=no">
7
<meta name="format-detection" content="email=no">
8
<meta name="apple-mobile-web-app-capable" content="yes">
9
<link href="https://cdn.bootcss.com/weui/1.1.2/style/weui.min.css" rel="stylesheet">
10
<script src="https://cdn.bootcss.com/zepto/1.2.0/zepto.min.js"></script>
11
</head>
12
<body style="padding:20px;">
13
<a href="javascript:;" class="weui-btn weui-btn_primary" id="payBtn">微信支付</a>
14
</body>
15
<script>
16
if (typeof WeixinJSBridge == "undefined") {
17
if (document.addEventListener) {
18
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
19
} else if (document.attachEvent) {
20
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
21
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
22
}
23
}
24
function onBridgeReady() {
25
WeixinJSBridge.call('hideOptionMenu');
26
}
27
$('#payBtn').on('click', function () {
28
WeixinJSBridge.invoke(
29
'getBrandWCPayRequest', {
30
// 以下6个支付参数由本接口获取
31
// **************************
32
"appId": "wxc5205a653b0259ac",
33
"timeStamp": "15100000000",
34
"nonceStr": "9cJEu27X6KehHGM8",
35
"package": "prepay_id=wx162234040923141245861167",
36
"signType": "MD5",
37
"paySign": "D64EF3ADBCA224E435D321619710C008"
38
// **************************
39
},
40
function (res) {
41
if (res.err_msg == "get_brand_wcpay_request:ok") {
42
WeixinJSBridge.call('closeWindow');
43
}
44
}
45
);
46
});
47
</script>
Copied!
最近更新 6mo ago
复制链接