- From: Arthur Gautier <notifications@github.com>
- Date: Fri, 09 Sep 2016 17:26:29 -0700
- To: w3c/browser-payment-api <browser-payment-api@noreply.github.com>
- Message-ID: <w3c/browser-payment-api/issues/247@github.com>
In the current draft, the spec doesn't allow a merchant to detect a user-agent has a payment method capability. For example, using the following code: ``` javascript var payment = new PaymentRequest([{ supportedMethods: ['https://android.com/pay'], data: { merchantName: 'merchantname', allowedCardNetworks: ['AMEX', 'MASTERCARD', 'VISA', 'DISCOVER'], merchantId: 'merchantid', paymentMethodTokenizationParameters: { tokenizationType: 'GATEWAY_TOKEN', parameters: { 'gateway': 'stripe', 'stripe:publishableKey': 'stripekey', 'stripe:version': '2016-07-06' } } } }], { total: {label: 'Total', amount: {currency: 'USD', value: '0.50'}} }, { requestShipping: false, requestPayerPhone: false, requestPayerEmail: false }); p = payment.show(); ``` On `PaymentRequest` instantiation no validation is required by the user-agent. It will only validate the PaymentMethodData is supported during the `.show()` and then the promise will failed with an error like: `The payment method is not supported` This makes impossible for a merchant to detect a payment method is supported (like android pay) and show a "android pay" button only if supported. Right now on chrome 53, if we run this snippet of code, it will start showing up a payment window and then it disappears almost immediately. This make deceptive UX. Would it be possible to add an extra method like `validate()` to ensure one of the `PaymentMethodData` is supported by user-agent? -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/browser-payment-api/issues/247
Received on Saturday, 10 September 2016 00:26:57 UTC