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