BasicCardRequest - 用于支付请求 API 的 JavaScript 对象结构

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

BasicCardRequest 字典是一个可用于支付请求 API 的 JavaScript 对象结构。 BasicCardRequest 的属性在基本卡片支付规范)中定义。

属性

BasicCardRequest.supportedNetworks 安全上下文

一个包含 DOMString 的可选的数组,表示零售商支持的卡网络(例如 amexmastercard)。如果没有该属性,则意味着支持所有网络。

BasicCardRequest.supportedTypes 安全上下文

一个包含 DOMString 的可选的数组,表示零售商支持的卡片类型(例如 creditdebitprepaid)。如果没有该属性,则意味着支持所有的卡片类型。

实例

在下面的例子中,PaymentRequest() 构造函数用于创建一个新的支付请求,其中包含三个对象作为参数 - 第一个包含支付方式的详细信息用于支付,第二个包含实际订单的详细信息(例如购买的物品和发货选项),以及第三个为可选的对象,描述了填写付款所需的数据(例如送货地址)。

这三个中的第一个(在下面的示例中为 supportedInstruments )包含一个 data 属性,该属性必须符合 BasicCardRequest 字典定义的结构。

var supportedInstruments = [{
  supportedMethods: 'basic-card',
  data: {
    supportedNetworks: ['visa', 'mastercard', 'amex', 'jcb',
                        'diners', 'discover', 'mir', 'unionpay'],
    supportedTypes: ['credit', 'debit']
  }
}];

var details = {
  total: {label: 'Donation', amount: {currency: 'USD', value: '65.00'}},
  displayItems: [
    {
      label: 'Original donation amount',
      amount: {currency: 'USD', value: '65.00'}
    }
  ],
  shippingOptions: [
    {
      id: 'standard',
      label: 'Standard shipping',
      amount: {currency: 'USD', value: '0.00'},
      selected: true
    }
  ]
};

var options = {requestShipping: true};

try {
  var request = new PaymentRequest(supportedInstruments, details, options);
  // 在这里添加事件监听器。
  // 调用 show() 来触发浏览器的支付流程。
  request.show().then(function(instrumentResponse) {
    // 在 UI 上做一些处理。
Do something with the response from the UI.
  })
  .catch(function(err) {
    // 处理用 request.show() 中的错误
  });
} catch (e) {
  // 捕获任何其他错误。
}

一旦使用 PaymentRequest.show() 触发支付流程,它返回的 Promise 处理成功,那么在 Promise 返回的对象(上面例子中的 instrumentResponse )中将包含 PaymentResponse 对象,它包含了 PaymentResponse.details 属性,表示响应的细节。它必须符合 BasicCardResponse 字典定义的结构,可能如下所示:

{
  "cardNumber' : '9999999999999999",
  "cardholderName' : 'Mr Dick Straw",
  "cardSecurityCode" : "999",
  "expiryMonth" : "07",
  "expiryYear" : "2021",
  "billingAddress" : {
    "country" : "GB",
    // 等等。帐单地址是一个 PaymentAddress 对象
  }
}

规范

规范 状态 备注
Basic Card Payment
BasicCardRequest 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性 Chrome Edge Firefox Internet Explorer Opera Safari
基础支持 不支持 支持 56 不支持 不支持 未知
supportedNetworks 不支持 支持 56 不支持 不支持 未知
supportedTypes 不支持 支持 56 不支持 不支持 未知

移动浏览器兼容性

特性 Android Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
基础支持 不支持 57 支持 56 未知 不支持 未知
supportedNetworks 不支持 57 支持 56 未知 不支持 未知
supportedTypes 不支持 57 支持 56 未知 不支持 未知