0

我正在查看在某些浏览器上显然可用的付款请求 API,但我想知道,您在哪里/如何设置发送付款的帐户?我在以下代码中看不到指定成功后将付款发送到的帐户的任何地方:

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

  // Supported payment methods
  var supportedInstruments = [{
      supportedMethods: ['basic-card']
      data: {
        supportedNetworks: [
          'visa', 'mastercard', 'amex', 'discover',
          'diners', 'jcb', 'unionpay'
        ]
      }
  }];

  // Checkout details
  var details = {
    displayItems: [{
      label: 'Original donation amount',
      amount: { currency: 'USD', value: '65.00' }
    }, {
      label: 'Friends and family discount',
      amount: { currency: 'USD', value: '-10.00' }
    }],
    total: {
      label: 'Total due',
      amount: { currency: 'USD', value : '55.00' }
    }
  };

  // 1. Create a `PaymentRequest` instance
  var request = new PaymentRequest(supportedInstruments, details);

  // 2. Show the native UI with `.show()`
  request.show()
  // 3. Process the payment
  .then(result => {
    // POST the payment information to the server
    return fetch('/pay', {
      method: 'POST',
      credentials: 'include',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(result.toJSON())
    }).then(response => {
      // 4. Display payment results
      if (response.status === 200) {
        // Payment successful
        return result.complete('success');
      } else {
        // Payment failure
        return result.complete('fail');
      }
    }).catch(() => {
      return result.complete('fail');
    });
  });
}

document.querySelector('#start').addEventListener('click', onBuyClicked);

参考。https://developers.google.com/web/fundamentals/discovery-and-monetization/payment-request/deep-dive-into-payment-request

参考。https://www.w3.org/TR/payment-request/

4

1 回答 1

2

长话短说:你没有。

支付请求 API不能替代支付处理器。浏览器本身无法处理资金转帐到您的帐户 - 它甚至无法验证提供的付款方式是否有效(尽管 Android Pay 可以做到这一点)。

Per Introducing the Payment Request API doc(强调我的):

...

然后,浏览器将支付 UI 呈现给用户,用户选择支付方式并授权交易。支付方式可以像已经由浏览器存储的信用卡一样简单,也可以像专门为向网站提供支付而编写的第三方应用程序一样深奥(此功能即将推出)。用户授权交易后,所有必要的付款细节都会直接发送回网站。例如,对于信用卡支付,网站将返回卡号、持卡人姓名、到期日期和 CVC

...

换言之,支付请求 API 只是一种更简单、更安全的方式,可让您收集用户的卡号和处理支付所需的其他信息。一旦您收到此信息,就好像用户通过普通表单提交信息一样。您仍然需要支付处理器(或类似的东西)来实际创建交易。

于 2017-05-19T13:16:22.433 回答