Не удалось создать 'PaymentRequest': метод получения итератора не вызывается - PullRequest
0 голосов
/ 10 марта 2019

Я следую учебнику о новом API PaymentRequest, но получаю ошибку:

Uncaught TypeError: Не удалось создать 'PaymentRequest': итератор геттер не вызывается. при стартовой оплате ((индекс): 45)

function startPayment(){
  if (!window.PaymentRequest) {
    // PaymentRequest API is not available. Forwarding to
    // legacy form based experience.
    location.href = '/checkout';
    return;
  }

  const methods = {
    supportedMethods: "basic-card",
    data: {
      supportedNetworks: [
        'visa', 'mastercard', 'amex', 'discover',
        'diners', 'jcb', 'unionpay'
      ]
    },
  }
  const details = {
    total: {
      label: 'Tyle musisz zabulić',
      amount: { currency: 'PLN', value : '22.15' }
    },
    displayItems: [{
      label: 'Narkotyki',
      amount: { currency: 'PLN', value: '22.15' }
    }],
  }
  const options = {
    requestShipping: true,
    requestPayerEmail: true,
    requestPayerPhone: true,
    requestPayerName: true,
    shippingType: 'delivery'
  };
  const request = new PaymentRequest(methods, details, options) // this line fails
  request.show().then(response => {
    // [process payment]
    // send to a PSP etc.
    response.complete('success');
  });
}

Что это значит и как я могу это исправить? Версия MacOS Chrome: 72.0.3626.121 64 бит

1 Ответ

0 голосов
/ 10 марта 2019

Методы оплаты должны быть массивом:

  const methods = [
     {
      supportedMethods: "basic-card",
      data: {
        supportedNetworks: [
          'visa', 'mastercard', 'amex', 'discover',
          'diners', 'jcb', 'unionpay'
        ]
      },
    }
  ]
...