BasicCardResponse - 定义支付响应详细信息的对象结构

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

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

BasicCardResponse 字典(与支付请求 API相关,定义在基本卡片支付规范中),定义了支付响应详细信息的对象结构,例如用于进行支付的卡的号码/到期日期以及帐单地址。

属性

BasicCardResponse.cardNumber 只读 安全上下文

包含用于付款的卡号。

BasicCardResponse.cardholderName 只读 安全上下文 可选

包含用于付款的卡的持卡人名称。

BasicCardResponse.cardSecurityCode 只读 安全上下文 可选

包含用于付款的卡的安全代码。

BasicCardResponse.expiryMonth 只读 安全上下文 可选

包含用于付款的卡的到期月份。

BasicCardResponse.expiryYear 只读 安全上下文 可选

包含用于付款的卡的到期年份。

BasicCardResponse.billingAddress 只读 安全上下文 可选

包含用于付款的卡的帐单地址。

实例

在下面的例子中,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
BasicCardResponse 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性 Chrome Edge Firefox Internet Explorer Opera Safari
基础支持 不支持 支持 56 不支持 不支持 未知
cardNumber 不支持 支持 56 不支持 不支持 未知
cardholderName 不支持 支持 56 不支持 不支持 未知
cardSecurityCode 不支持 支持 56 不支持 不支持 未知
expiryMonth 不支持 支持 56 不支持 不支持 未知
expiryYear 不支持 支持 56 不支持 不支持 未知
billingAddress 不支持 支持 56 不支持 不支持 未知

移动浏览器兼容性

特性 Android Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
基础支持 不支持 57 支持 56 未知 不支持 未知
cardNumber 不支持 57 支持 56 未知 不支持 未知
cardholderName 不支持 57 支持 56 未知 不支持 未知
cardSecurityCode 不支持 57 支持 56 未知 不支持 未知
expiryMonth 不支持 57 支持 56 未知 不支持 未知
expiryYear 不支持 57 支持 56 未知 不支持 未知
billingAddress 不支持 57 支持 56 未知 不支持 未知