PaymentMethodChangeEvent: methodName 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

PaymentMethodChangeEvent 接口的只读 methodName 属性是一个字符串,用于唯一标识用户当前选择的支付处理程序。支付处理程序可以是 Apple Pay 或 Android Pay 等支付技术,每个支付处理程序可能支持多种支付方式;支付处理程序内的支付方式更改由 PaymentMethodChangeEvent 描述。

一个字符串,用于唯一标识当前选择的支付处理程序。这可以是从标准化支付方式标识符列表中选择的字符串,也可以是支付服务使用的 URL。有关更多信息,请参阅 支付方式标识符

默认值为空字符串 ""

示例

此示例使用 paymentmethodchange 事件来监听 Apple Pay 选择的支付方式的变化,以便在用户选择使用 Visa 卡作为支付方式时计算折扣。

js
request.onpaymentmethodchange = (ev) => {
  const { type: cardType } = ev.methodDetails;
  const newStuff = {};
  if (ev.methodName === "https://apple.com/apple-pay") {
    switch (cardType) {
      case "visa": {
        // do Apple Pay specific handling for Visa card…
        // methodDetails contains the card information
        const discount = calculateDiscount(ev.methodDetails);
        Object.assign(newStuff, discount);
        break;
      }
    }
  }
  // finally…
  ev.updateWith(newStuff);
};
const response = await request.show();

请注意,calculateDiscount() 函数正在使用 methodDetails 属性来计算任何支付折扣,然后调用 updateWith() 来更新带有计算出的更新的事件。

规范

规范
Payment Request API
# dom-paymentmethodchangeevent-methodname

浏览器兼容性