wechatPayInH5
H5 端(微信内置浏览器)公众号支付适配器,被 showPay 内部调用。
需在微信内置浏览器中打开,且已完成 JSSDK 注入与签名。
前置依赖
typescript
interface PayInH5Deps {
isInWechatBrowser: () => boolean
ensureBridgeReady: (callback: () => void) => void
invokeBridge: (method: string, payload: Record<string, unknown>, callback: (res) => void) => void
error: Console['error']
}| 依赖 | 说明 |
|---|---|
isInWechatBrowser | 检测是否微信内置浏览器 |
ensureBridgeReady | 等待 WeixinJSBridge 就绪 |
invokeBridge | 调用 WeixinJSBridge.invoke |
error | 错误日志 |
wechatPayInH5
函数签名
typescript
function wechatPayInH5(
options: PayRequest,
deps: PayInH5Deps
): Promise<PayResult>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.appId | string | 是 | 公众号 appId |
options.timeStamp | string | 是 | 时间戳 |
options.nonceStr | string | 是 | 随机串 |
options.package | string | 是 | 预支付包,如 prepay_id=xxx |
options.paySign | string | 是 | 签名 |
options.signType | string | 否 | 默认 'MD5' |
options.success / fail / complete | function | 否 | 支付回调 |
deps | PayInH5Deps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<PayResult> | get_brand_wcpay_request:ok 时 resolve;非微信环境、缺参或支付失败 reject |
工作原理
- 非微信内置浏览器直接 reject,提示需在微信中打开。
- 校验公众号支付五要素(appId、timeStamp、nonceStr、package、paySign)。
ensureBridgeReady后调用invokeBridge('getBrandWCPayRequest', payload, callback)。- 根据
res.err_msg === 'get_brand_wcpay_request:ok'判断成功,并触发对应success/fail/complete。