WebApp快捷打包
PayPal 支付
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20250826.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

PayPal Mobile SDKs

pay 支付

config.clientId:

config.environment:

orderId:

fundingSource:

jsBridge.payPal.pay({
  //必需,配置信息
  config: {
    //必需,Apps & Credentials 页面查看或创建应用取得(注意右上角切换 Sandbox / Live 环境)
    clientId: "{{pay.config.clientId}}",
    //必需,环境,可能值:
    //sandbox 沙盒测试环境
    //live    正式上线环境
    environment: "{{pay.config.environment}}"
  },
  //必需,订单号,使用 服务器端接口 Create order 创建订单取得
  orderId: "{{pay.orderId}}",
  //可选,付款渠道,可能值:
  //paypal   默认 PAYPAL
  //credit   信用卡
  //paylater Pay Later
  fundingSource: "{{pay.fundingSource}}"
}, function(success, res) {
  if (success) {
    switch (res.status) {
      case "success": {
        if (res.orderId) {
           //支付成功,将 res.orderId 提交到服务器 验证支付 Authorize payment for order
           //...
        }
        break;
      }
      case "canceled": {
        //用户取消了支付
        break;
      }
      case "failure": {
        //支付失败
        break;
      }
    }
    alert(JSON.stringify(res));
  } else {
    alert(`接口执行出错 ${JSON.stringify(res)}`);
  }
});

cardPay 信用卡支付

config.clientId:

config.environment:

orderId:

sca:

card.number:

card.expirationMonth:

card.expirationYear:

card.securityCode:

card.cardholderName:

card.billingAddress.countryCode:

card.billingAddress.streetAddress:

card.billingAddress.extendedAddress:

card.billingAddress.locality:

card.billingAddress.region:

card.billingAddress.postalCode:

jsBridge.payPal.cardPay({
  //必需,配置信息
  config: {
    //必需,Apps & Credentials 页面查看或创建应用取得(注意右上角切换 Sandbox / Live 环境)
    clientId: "{{pay.config.clientId}}",
    //必需,环境,可能值:
    //sandbox 沙盒测试环境
    //live    正式上线环境
    environment: "{{pay.config.environment}}"
  },
  //必需,订单号,使用 服务器端接口 Create order 创建订单取得
  orderId: "{{pay.orderId}}",
  //必需,信用卡
  card: {
    //必需,卡号
    number: "{{pay.card.number}}",
    //必需,到期月份
    expirationMonth: "{{pay.card.expirationMonth}}",
    //必需,到期年份
    expirationYear: "{{pay.card.expirationYear}}",
    //必需,安全码
    securityCode: "{{pay.card.securityCode}}",
    //可选,持有人
    cardholderName: "{{pay.card.cardholderName}}",
    //可选,账单地址,提供账单地址能减少用户身份验证步骤
    billingAddress: {
      //必需,国别(地区)代码,如果未提供此参数则忽略账单地址
      countryCode: "{{pay.card.billingAddress.countryCode}}",
      //以下参数均为选填
      streetAddress: "{{pay.card.billingAddress.streetAddress}}",
      extendedAddress: "{{pay.card.billingAddress.extendedAddress}}",
      locality: "{{pay.card.billingAddress.locality}}",
      region: "{{pay.card.billingAddress.region}}",
      postalCode: "{{pay.card.billingAddress.postalCode}}",
    }
  },
  //可选,Strong Customer Authentication (SCA),可能值:
  //when_required 默认
  //always
  sca: "{{pay.sca}}"
}, function(success, res) {
  if (success) {
    switch (res.status) {
      case "success": {
        if (res.orderId) {
           //支付成功,将 res.orderId 提交到服务器 验证支付 Authorize payment for order
           //...
        }
        break;
      }
      case "failure": {
        //支付失败
        break;
      }
    }
    alert(JSON.stringify(res));
  } else {
    alert(`接口执行出错 ${JSON.stringify(res)}`);
  }
});

vaultPay 存储(复用)支付

config.clientId:

config.environment:

setupTokenId:

jsBridge.payPal.vaultPay({
  //必需,配置信息
  config: {
    //必需,Apps & Credentials 页面查看或创建应用取得(注意右上角切换 Sandbox / Live 环境)
    clientId: "{{pay.config.clientId}}",
    //必需,环境,可能值:
    //sandbox 沙盒测试环境
    //live    正式上线环境
    environment: "{{pay.config.environment}}"
  },
  //必需,订单号,使用 服务器端接口 Create order 创建订单取得
  setupTokenId: "{{pay.setupTokenId}}"
}, function(success, res) {
  if (success) {
    switch (res.status) {
      case "success": {
        if (res.orderId) {
           //支付成功,将 res.orderId 提交到服务器 验证支付 Authorize payment for order
           //...
        }
        break;
      }
      case "failure": {
        //支付失败
        break;
      }
    }
    alert(JSON.stringify(res));
  } else {
    alert(`接口执行出错 ${JSON.stringify(res)}`);
  }
});