Skip to content

收银台支付

本规范定义了移动端(iOS/Android)需要实现的 H5 支付接口。您需按照此规范在原生应用中实现相应的接口方法,供 H5 页面调用。

  • iOS: 使用 WKWebViewevaluateJavaScript 方式

  • Android: 使用 WebViewevaluateJavascript 方式

H5 → 原生:拉起收银台接口

接口定义

接口定义

javascript
// H5 页面将调用此方法触发原生支付
window.nativeBridge.launchCheckout(requestData);

参数规范

json
// 代币直扣: requestData 直接为空即可!
// 无感支付: requestData 说明如下(JSON 字符串)
{
  "package_id": "100",             // [string] 套餐ID,必填
  "package_name": "320金币套餐",    // [string] 套餐名称,必填
  "order_id": "OD_20262133424324", // [string] 订单ID,必填
  "deduct_amount": 100,            // [number] 扣款金额,必填
  "custom_data": {}                // [object] 自定义数据,可选
}

原生 → H5:支付结果回调接口

回调接口定义

原生端支付完成后,必须调用以下方法通知 H5 页面

5.1 支付成功回调(无感支付Only)

支付成功回调

javascript
// 原生端需要实现的JS调用
window.nativeBridge.onPaymentSuccess(responseData);
json
// responseData 结构(JSON 字符串)
{
  "status": "success",                    // [string] 状态,固定值为success,必填
  "message": "ok",                        // [string] 成功消息,必填
  "order_id": "OD_20262133424324",        // [string] 订单ID,参数回填
  "transaction_id": "TRC_23897412341231", // [string] 交易ID,必填
  "package_id": "100",                    // [string] 原套餐ID,必填
}

5.2 支付失败回调(无感支付Only)

javascript
// 原生端需要实现的JS调用
window.nativeBridge.onPaymentFailed(errorData);
json
// errorData 结构(JSON 字符串)
{
  "status": "failed",                    // [string] 状态,固定值failed,必填
  "message": "error",                    // [string] 错误描述,必填
  "error_code": "USER_CANCELLED",        // [string] 错误代码,必填
  "error_detail": "用户取消支付",          // [string] 错误详情,必填
  "order_id": "OD_20262133424324",       // [string] 订单ID,参数回填
  "package_id": "100"                    // [string] 原套餐ID,必填
}
// error_code错误代码参考:
USER_CANCELLED         - 用户取消
PAYMENT_FAILED         - 支付失败
NETWORK_ERROR          - 网络错误
INSUFFICIENT_BALANCE   - 余额不足
SYSTEM_ERROR           - 系统错误

Released under the MIT License.