Skip to content

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.appIdstring是公众号 appId
options.timeStampstring是时间戳
options.nonceStrstring是随机串
options.packagestring是预支付包,如 prepay_id=xxx
options.paySignstring是签名
options.signTypestring否默认 'MD5'
options.success / fail / completefunction否支付回调
depsPayInH5Deps是环境依赖

返回值 ​

类型说明
Promise<PayResult>get_brand_wcpay_request:ok 时 resolve;非微信环境、缺参或支付失败 reject

工作原理 ​

  1. 非微信内置浏览器直接 reject,提示需在微信中打开。
  2. 校验公众号支付五要素(appId、timeStamp、nonceStr、package、paySign)。
  3. ensureBridgeReady 后调用 invokeBridge('getBrandWCPayRequest', payload, callback)。
  4. 根据 res.err_msg === 'get_brand_wcpay_request:ok' 判断成功,并触发对应 success / fail / complete。