Re: [w3c/browser-payment-api] Reject accpetedPromise if converting method data fails (#536)

@marcoscaceres you seem to be saying (paraphrasing):

"You can just mint a new payment method identifier and put out a spec with new Web IDL for every new bitcoin version."

Which seems to ignore @adrianhopebailie's second point, which was:

> BIP 70 (the mechanism for doing Bitcoin payments) is designed to be extensible so **its unlikely that each new version is going to be supported by a new revision of a payment method specification published by the WG to update the WebIDL.**

(emphasis added)

I think the response to that point should be this:

If bitcoin wants to do things that way then they should publish one spec and the Web IDL for their payment method "data" should just be a "plain JS object". We could even say that if a spec doesn't say anything about their "data" that it will fall back to the default Web IDL for a plain JS object (it is understood that it has to move between JS and C++ somehow).

The only question that remains: Will browsers reject simple string payment method identifiers if they have not implemented the Web IDL for those methods?

Will the browser do this:

```js
if(isPaymentMethodIdentifierAString()) {
  if(isPaymentMethodIdentifierKnown()) {
    // we know this, use appropriate Web IDL
  } else {
    // throw error
  }
} else {
  // use plain JS object Web IDL to coerce "data"
}
```

Or will it do this:

```js
if(isPaymentMethodIdentifierAString()) {
  if(isPaymentMethodIdentifierKnown()) {
    // we know this, use appropriate Web IDL
  } else {
    // use plain JS object Web IDL to coerce "data"
  }
} else {
  // use plain JS object Web IDL to coerce "data"
}
```

The problem with the former is that it means that people now can't use bitcoin (without a polyfill) until every browser implements it. They could use some URI (if URIs were permitted not just URLs) like "urn:payment-method:bitcoin" but that would be unfortunate for a variety of reasons.

With the second approach, it's true that you won't get certain types of checks for certain types of payment methods on certain browsers -- but those checks can be progressively added over time. What you will avoid is blocking people from using certain payment methods.

-- 
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/pull/536#issuecomment-305688115

Received on Friday, 2 June 2017 04:43:17 UTC