- From: Rouslan Solomakhin <rouslan@google.com>
- Date: Fri, 10 Apr 2020 20:13:22 -0400
- To: Anders Rundgren <anders.rundgren.net@gmail.com>
- Cc: Web Payments Working Group <public-payments-wg@w3.org>
- Message-ID: <CAMMzaWEUy6Cq6Ge9VOpt11P5HXc+tJKYXe2x=r+H6jSF-_5Org@mail.gmail.com>
Yes, that's a great suggestion, Anders! I've filed https://crbug.com/1069954
to keep track of progress on that.
On Fri, Apr 10, 2020 at 10:11 AM Anders Rundgren <
anders.rundgren.net@gmail.com> wrote:
> This is great news Rouslan! Thanx!
> As you know I have had considerable problems with this part which even
> required factory reset of the device to be "cured".
> My current scheme (which seems to work...) for Android native looks like
> this:
> In https://mobilepki.org/w3cpay/payment-manifest.json you'll find:
> {
> "default_applications": ["
> https://mobilepki.org/w3cpay/payment-manifest.json"],
> "related_applications": [{
> "platform": "play",
> "id": "org.webpki.mobile.android",
> "min_version": "1",
> "fingerprints": [{
> "type": "sha256_cert",
> "value":
> "85:0B:99:03:54:CE:71:6E:18:7C:43:1F:7F:C1:F1:5E:9B:81:84:1D:36:CE:F3:F6:E2:97:15:70:79:7F:B0:F7"
> }],
> "url": "
> https://play.google.com/store/apps/details?id=org.webpki.mobile.android"
> }],
> "supported_origins": "*"
> }
>
> I got that from a previously listed application on your github.
>
> Question: If the URL for the resource holding "default_applications"
> equals that of the argument (as in my case), shouldn't a single GET should
> suffice? That would be a HUGE improvement over the current 6 accesses.
>
> Best regards,
> Anders
>
> On 2020-04-10 12:54, Rouslan Solomakhin wrote:
> > If you don’t make payment apps, you can stop reading now.
> >
> >
> > TL;DR: Verify that your payment method manifest can respond to HTTP GET.
> >
> >
> > Summary
> >
> >
> > If your payment method identifier is “https://example.com/web-pay”,
> then Chrome 83 will switch from making an HTTP HEAD to making an HTTP GET
> request to https://example.com/web-pay. If the response headers include a
> Link rel=”payment-method-manifest”, then Chrome will follow it as before.
> Otherwise, Chrome will attempt to parse the response body for the contents
> of the payment method manifest <
> https://w3c.github.io/payment-method-manifest/#format>.
> >
> >
> > Chrome 83 is currently available in Chrome Canary and Dev channels. It
> is expected to start rolling out to the Stable channel around the 19th of
> May.
> >
> >
> > Background
> >
> >
> > When Chrome originally implemented payment method manifests, Chrome was
> making an HTTP HEAD request for the payment method identifier to download
> its payment method manifest and web app manifest. The HTTP headers returned
> from the HTTP HEAD request were parsed for the Link
> rel=”payment-method-manifest” header, which was then followed. Absence of
> this header disabled payments.
> >
> >
> > Some websites popular among web developers do not offer header
> customization, however. In particular, this presented a problem for hosting
> pages on GitHub, where only content can be defined by web developers. As a
> result, web developers had to resort to using more than one hosting
> service: one for simplicity and one for powerful features required for
> hosting the Link rel=”payment-method-manifest” header.
> >
> >
> > Multiple members of the Web Payment community have requested that
> payment method manifests can optionally be hosted directly at the payment
> method identifier URL, instead of always requiring the indirection via the
> Link rel=”payment-method-manifest” link. We have updated the spec <
> https://github.com/w3c/payment-method-manifest/pull/37>accordingly and
> this email is the result of implementing <
> https://chromiumdash.appspot.com/commit/4ab8845ffc07354385e6459d03b46d19881ca046>this
> request.
> >
> >
> > How to check if you’re impacted
> >
> >
> > Check that HTTP GET request for your payment method identifier either
> returns the payment method manifest:
> >
> >
> > curl --silent https://example.com/web-pay
> >
> >
> > Or that it includes a Link rel=”payment-method-manifest” HTTP header:
> >
> >
> > curl --silent --include https://example.com/web-pay | grep
> --ignore-case link
> >
> >
> > If you receive an HTTP response code that is not either 200 or 204, then
> please update your server to allow GET requests.
> >
> >
> > The old methodology of checking curl --silent --head
> https://example.com/web-pay| grep --ignore-case linkis no longer correct.
> >
> >
> > Examples
> >
> >
> > Google Pay, Tez, and BobPay all support the HTTP GET requests:
> >
> >
> > $ curl --silent --include https://pay.google.com/about | grep
> --ignore-case link
> >
> > link: <https://pay.google.com/gp/p/payment_method_manifest.json>;
> rel="payment-method-manifest"
> >
> >
> > $ curl --silent --include https://tez.google.com/pay | grep
> --ignore-case link
> >
> > link: <https://tez.google.com/pay/payment-method-manifest.json>;
> rel="payment-method-manifest"
> >
> >
> > $ curl --silent --include https://bobpay.xyz/pay | grep --ignore-case
> link
> >
> > link: <https://bobpay.xyz/pay/payment-manifest.json>;
> rel="payment-method-manifest"
> >
> >
> > Wait, I have more questions!
> >
> >
> > Please reply to this email and we will get your issues resolved.
> >
> >
> > Pay on!
> >
> > Rouslan
> >
>
>
Received on Saturday, 11 April 2020 00:13:49 UTC