微信 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

请求签名,参照签名算法

返回示例

//成功
{
"appId": "wxa8423199a021d",
"timeStamp": "1615441885",
"nonceStr": "ulAuiq1uxxofwSCH",
"package": "prepay_id=wx111351262666123e13b9da0000",
"signType": "RSA",
"paySign": "4QaU1C1HvjBdTTgsjwP48YWC+OlHtqWOXWPGD3hEt27S3Snha7iDjwBPOSMLOueTIxi0TAaAaeZy0QU7RU065XwlNxTH9NDP9oN+mXyy+S6bgmNHKyxHyISVeo1gCZhFKCidpaj2KgUHgfyyvYcte5oeK3jtYccAyFyJ23IugvYSggxUKM6JQKIsJ9YWAWIBqL9q9FINbKl0bjOAMYC0IAmmw8whaLC7ZdFZ9wIsHE6YYuXwnDi/O6tRpIdZf/y3w=="
}
//失败
{
"error": "error sign"
}

返回参数说明

参数名

类型

说明

error

string

错误说明

备注

  • 如果返回结果不包含 error,则请求成功,返回的参数直接放入html中,即可在微信内使用微信 jsapi 唤起支付

  • jsapi支付的使用请参考微信官方文档

  • 根据微信规则,jsapi 支付后用户会进入「小票页面」,用户点击该页面的「继续」按钮,会跳转至 callback_url

支付Demo

该 demo 参考 payjs

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<link href="https://cdn.bootcss.com/weui/1.1.2/style/weui.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/zepto/1.2.0/zepto.min.js"></script>
</head>
<body style="padding:20px;">
<a href="javascript:;" class="weui-btn weui-btn_primary" id="payBtn">微信支付</a>
</body>
<script>
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}
function onBridgeReady() {
WeixinJSBridge.call('hideOptionMenu');
}
$('#payBtn').on('click', function () {
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
// 以下6个支付参数由本接口获取
// **************************
"appId": "wxc5205a653b0259ac",
"timeStamp": "15100000000",
"nonceStr": "9cJEu27X6KehHGM8",
"package": "prepay_id=wx162234040923141245861167",
"signType": "MD5",
"paySign": "D64EF3ADBCA224E435D321619710C008"
// **************************
},
function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
WeixinJSBridge.call('closeWindow');
}
}
);
});
</script>