Contact emailsrous...@chromium.org

Specificationhttps://w3c.github.io/payment-request/

Documentationhttps://web.dev/explore/payments
<https://developers.google.com/web/fundamentals/primers/payment-request/>
(WebView-specific documentation will follow.)

Summary

PaymentRequest is an API that allows browsers to act as an intermediary
between the three key parties in a financial transaction: the merchant
(e.g. an online web store), the buyer (e.g. the user buying from the online
web store), and the Payment Method (e.g. credit card). Information
necessary to process and confirm a transaction is passed between the
Payment Method and the merchant via the browser with the buyer confirming
and authorizing as necessary across the flow.


PaymentRequest has been shipped on Desktop and Android for a while now, but
not on Android WebView. This Intent is for partially shipping the feature
on Android WebView, restricted to Android intent-based payment apps
<https://web.dev/articles/android-payment-apps-developers-guide>. Web-based
Payment Handlers are not supported due to lack of the required UI in
WebView.

*Design*
Design: WebView PaymentRequest for native Android intent based payment apps
<https://docs.google.com/document/d/1yS2_LykHMhSTHr_oX9gtHgE8WS0x5QYtdg_k_8XBUj8>
.

Blink componentBlink>Payments
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPayments%22>

Risks
Interoperability and Compatibility

Android WebView works slightly differently than other platforms, so
developers should be aware of caveats. See for example:

How is WebView different from a typical browser like Chrome?
<https://developer.android.com/develop/ui/views/layout/webapps/embed-web-content-in-app#how-is>


*Gecko*: PaymentRequest development stopped.
*WebKit*: Shipped PaymentRequest
<https://webkit.org/blog/8182/introducing-the-payment-request-api-for-apple-pay>
.
*Web developers*: Positive views of PaymentRequest in WebView, e.g.: "We
believe this to be huge unlock for us and our customers.
<https://crbug.com/381849264#comment7>"

WebView application risks

Low: WebView host apps must opt-in to enable PaymentRequest (including a
recompile and pushing an update to their users). There are two steps
required:


1) Add the following to AndroidManifest.xml:


<queries>
  <intent>
    <action android:name="org.chromium.intent.action.PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.IS_READY_TO_PAY"/>
  </intent>
  <intent>
    <action
android:name="org.chromium.intent.action.UPDATE_PAYMENT_DETAILS"/>
  </intent>
</queries>


2) Execute the following initialization code for each WebView where
PaymentRequest should be enabled:


WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setPaymentRequestEnabled(true);


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?
This Intent is specifically for Android WebView. The other platforms are
already shipping PaymentRequest.

Flag name on WebView Dev ToolsWebPayments

Finch feature nameWebPayments

Requires code in //chrome?No

Tracking bughttps://crbug.com/381849264

*Sample links*
Running a demo is a bit more involved in Android WebView, so here are
instructions
for device setup and running a demo
<https://docs.google.com/document/d/17UojtddKjJ4WpVZO-DYi7heyDEiDBLgKg33lqAbRAew>
.

Estimated milestones
Shipping on WebView 136
Anticipated spec changes

None

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5639348045217792?gate=5794834437111808

*Launch tracking*
launch/4328654 (Google internal only)

This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMMzaWGOhygMdhdH6vDZJ0ggk1FCVRoB5az7u%2BA15qHqkcPa5A%40mail.gmail.com.

Reply via email to