Firefox/Features/Web Payments: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 114: Line 114:


* IRC: #payments  
* IRC: #payments  
* Weekly Meeting: https://goo.gl/czomYf
* Weekly Meeting: [[https://goo.gl/czomYf]]
* Web Payment Mailing list:[mailto:webpayments@mozilla.com]
* Web Payment Mailing list:[mailto:webpayments@mozilla.com webpayments@mozilla.com]
* Auto Fill Mailing list: [mailto:autofill@lists.mozilla.org autofill@lists.mozilla.org]
* Auto Fill Mailing list: [mailto:autofill@lists.mozilla.org autofill@lists.mozilla.org]



Revision as of 16:56, 22 November 2017

Introduction

This feature targets to enable a frequent online shopper to make online purchases without having to fill in all of the personal and payment information over and over again. Together with the feature “Form-autofill”, it saves user's time and effort when making online purchases by storing their personal and payment information in a profile and automatically populating form fields and payment information when the user requires it.

The overall objective is to increase user engagement, satisfaction, and retention for frequent online shoppers. We believe this can be achieved by enabling users to complete forms and “check out” in e-commerce flows as quickly and securely as possible.

The W3C PaymentRequest API is currently in draft stage and has momentum. The API is extensible to any payment source without requiring the browser to be Payment Card Industry compliant. compliant.

Status Summary

Tentative plan for 2017’H2
  • Frontend: Basic card UI implementation. Knwon dependencies include:
    • 1. (On-going) Relevant SecReview (both UI & implementation) is green: Paul. T is on it. (see also: Initial review on API design)
    • 2. (TBConfirmed) Front-end resource: Dolske's team?
    • 3. (TBConfirmed) Reviewer’s availability: partially confirmed. (MattN + others)
    • 4. (TBConfirmed) No other feature dependency (e.g., Any Lockbox dependency?)
    • 5. (TBConfirmed) Compliance for Basic card UI (or that’s only for Payment Handler?)? e.g., PA-DSS by PA-QSA
  • Platform: Ensure Payment Request APIs “ready to enable” (disable until FE ready) in Q3
    • API Compat. test coverage / compliance
    • Basic card spec. implementation
    • (Q3 and more) Marcos keeps working on W3C spec of both the Payment Handler/Request
    • (Q3 and more) Bridging UI and the Request API (subject to FE’s actual progress), including 2 parts:
      • Connecting UI: ongoing and will complete in Q3;
      • IntegrationL requires FE completion to start (e.g., fix bugs during UI integration and verification on merchant website like WooCommerce).
Achivement in 2017'H1
    • (Done) Payment Request API development.
    • (Done) User research of Payment Request (Basic Card) UX.
    • (Done) Payment Request Handler API Proposal. It's been merged into the renamed Payment "Handler" API (was the Payment "App" API) spec.

Development Detail

Preference: dom.payments.request.enabled

2017'H2
Front-end: TBD
Platform (ETA 2017'Q3): API developlment Follow-up
Full Query
ID Summary Status Resolution Assigned to Depends on Blocks Whiteboard
1376623 PaymentMethodData.supportedMethods is now DOMString RESOLVED FIXED Eden Chuang[:edenchuang] 1318987 [WP-MVP][M4]
1387385 Remove usage of nsIJSON from Web Payments RESOLVED FIXED Eden Chuang[:edenchuang] 1347515 [WP-MVP][M4]
1390009 browser_show_dialog.js is going to permafail when Gecko 57 merges to Beta on 2017-09-20 VERIFIED DUPLICATE 1381186 [WP-MVP][M4]
1390737 test_canMakePayment.html is going to permafail when Gecko 57 merges to Beta on 2017-09-20 VERIFIED FIXED Eden Chuang[:edenchuang] 1390018 [WP-MVP][M4]

4 Total; 0 Open (0%); 2 Resolved (50%); 2 Verified (50%);


Platform (ETA 2017'Q3): UI Implementation Support
Full Query
ID Summary Status Resolution Assigned to Depends on Blocks Whiteboard
1382092 [Payment Request API] Support default payment UI service in DOM code RESOLVED FIXED Eden Chuang[:edenchuang] 1390018 1383597, 1389519
1383293 Add new readonly attribute principal in nsIPaymentRequest RESOLVED FIXED Eden Chuang[:edenchuang] 1383597, 1383300

2 Total; 0 Open (0%); 2 Resolved (100%); 0 Verified (0%);


Platform (ETA 2017'Q3): Compat. test coverage & compliance
Full Query
ID Summary Status Resolution Assigned to Depends on Blocks Whiteboard
1318988 Implement `allowPaymentRequest` on iframe RESOLVED FIXED Alphan Chen [:alchen] 1318984, 1380546, 1382120
1336760 Intermittent TEST-UNEXPECTED-TIMEOUT | testing/web-platform/tests/payment-request/allowpaymentrequest/allowpaymentrequest-attribute-same-origin-bc-containers.https.html | expected OK NEW 1380546, 1335397 [stockwell disabled]
1336775 Intermittent TEST-UNEXPECTED-TIMEOUT | testing/web-platform/tests/payment-request/allowpaymentrequest/no-attribute-same-origin-bc-containers.https.html | expected OK RESOLVED WORKSFORME 1380546, 1335397 [stockwell disabled]
1367668 [Payment Request API] Fix the crash due to "Hit MOZ_CRASH(IPC message size is too large) " when doing constructor tests RESOLVED WORKSFORME 1380546
1367694 [Payment Request API] Add mechanisms for shipping options in constructor RESOLVED FIXED Jocelyn Liu [:jocelyn] [:joliu] 1380546
1368949 Dictionaries inside dictionary should be optional, not always have a default value RESOLVED FIXED Boris Zbarsky [:bzbarsky] 1318984, 1380546, 1226475, 1409664, 1493798, 1493860 [webpayments-reserve]
1375345 [Payment Request API] Basic card payment method implementation RESOLVED FIXED Eden Chuang[:edenchuang] 1318984, 1380546
1379892 Reject PaymentRequest.show() with AbortError DOMException if the user agent's "payment request is showing" boolean is true RESOLVED FIXED Eden Chuang[:edenchuang] 1380546
1379925 Crash while testing PaymentRequest.onshippingaddresschange/onshippingoptionchange RESOLVED FIXED Ben Tian (inactive) 1380546, 1380550, 1380553
1380211 Remove {} from generated id of payment request RESOLVED FIXED Ben Tian (inactive) 1380546
1380550 Web platform test of PaymentRequestUpdateEvent constructor (non-secure context) fails RESOLVED INVALID 1379925 1380546
1380552 Web platform test of PaymentRequestUpdateEvent constructor (secure context) fails RESOLVED FIXED Ben Tian (inactive) 1380546
1380553 Web platform test of PaymentRequestUpdateEvent updateWith method fails RESOLVED DUPLICATE Ben Tian (inactive) 1379925 1380546
1382120 Fix remaining failed allowpaymentrequest web platform tests RESOLVED FIXED Alphan Chen [:alchen] 1318988 1380546
1385187 Reject PaymentRequest.show() with NotSupportedError DOMException if no supported method of payment RESOLVED FIXED Eden Chuang[:edenchuang] 1380546
1388661 Pass payment-request-ctor-currency-code-checks web-platform-tests. RESOLVED FIXED Eden Chuang[:edenchuang] 1380546
1389418 Pass payment-request-ctor-pmi-handling web-platform-tests RESOLVED FIXED Eden Chuang[:edenchuang] 1380546
1403079 Pass web-platform-test under https://w3c-test.org/payment-request/allowpaymentrequest/ RESOLVED FIXED Eden Chuang[:edenchuang] 1380546
1403080 Pass web-platform-test about shippingOptions under https://w3c-test.org/payment-request/payment-request-constructor.https.html RESOLVED FIXED Eden Chuang[:edenchuang] 1380546
1490587 Web Payments' Web Platform tests are failing in Linux 32 RESOLVED INVALID Eden Chuang[:edenchuang] 1380546
1493052 MerchantValidationEvent.complete() must throw InvalidStateError RESOLVED FIXED Marcos Caceres [:marcosc] 1380546
1493963 Run payment-request web-platform tests with expected pass results on tryserver. RESOLVED DUPLICATE Eden Chuang[:edenchuang] 1380546
1494340 Remove pref dom.payments.request.user_interaction_required setting when running web-platform tests NEW 1380546 [webpayments-wpt]
1499992 .retry() is non-conforming RESOLVED INVALID 1318984, 1380546
1507395 Failing WTP Payments test: payment-request-canmakepayment-method.https.html NEW 1380546 [webpayments-wpt]

25 Total; 3 Open (12%); 22 Resolved (88%); 0 Verified (0%);


2017'H1
Timeline & Architecture
Milestone 1 (ETA Mar. 31th)
Full Query
ID Summary Status Resolution Assigned to Depends on Blocks Whiteboard
1345389 [Payment Request API] PaymentRequest Constructor implementation WebAPI part RESOLVED FIXED Alphan Chen [:alchen] 1345361 [WP-MVP][M1]
1345390 [Payment Request API] PaymentRequest Constructor implementation IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1345361 [WP-MVP][M1]
1345391 [Payment Request API] Support canMakePayment flow webAPI part RESOLVED FIXED Alphan Chen [:alchen] 1345365 [WP-MVP][M1]
1345392 [Payment Request API] Support canMakePayment flow IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1345365 [WP-MVP][M1]
1345393 [Payment Request API] Support show flow webAPI part RESOLVED FIXED Alphan Chen [:alchen] 1345366 [WP-MVP][M1]
1345394 [Payment Request API] Support show flow IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1345366 [WP-MVP][M1]
1345395 [Payment Request API] Support abort flow WebAPI part RESOLVED FIXED Alphan Chen [:alchen] 1345367 [WP-MVP][M1]
1345396 [Payment Request API] Support abort flow IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1345367 [WP-MVP][M1]

8 Total; 0 Open (0%); 8 Resolved (100%); 0 Verified (0%);

Milestone 2 (ETA Apr. 28th)
Full Query
ID Summary Status Resolution Assigned to Depends on Blocks Whiteboard
1355384 [Payment Request API] Support shippingAddressChange flow IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1345369 [WP-MVP][M2]
1355385 [Payment Request API] Support shippingAddressChange flow webAPI part RESOLVED FIXED Alphan Chen [:alchen] 1345369 [WP-MVP][M2]
1355391 [Payment Request API] Support shippingOptionChange flow IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1345371 [WP-MVP][M2]
1355392 [Payment Request API] Support shippingOptionChange flow webAPI part RESOLVED FIXED Alphan Chen [:alchen] 1345371 [WP-MVP][M2]
1355397 [Payment Request API] Implement PaymentRequestUpdateEvent Interface IPC/XPCOM part RESOLVED FIXED Eden Chuang[:edenchuang] 1318990 [WP-MVP][M2]
1355398 [Payment Request API] Implement PaymentRequestUpdateEvent Interface webAPI part RESOLVED FIXED Alphan Chen [:alchen] 1318990 [WP-MVP][M2]

6 Total; 0 Open (0%); 6 Resolved (100%); 0 Verified (0%);

Milestone 3 (ETA June. 30th)
Full Query
ID Summary Status Resolution Assigned to Depends on Blocks Whiteboard
1318990 Implement PaymentRequestUpdateEvent Interface RESOLVED FIXED Alphan Chen [:alchen] 1355397, 1355398 1318984, 1345369, 1345371 [WP-MVP][M3]
1318993 Implement "dom.payments.request.enabled" pref RESOLVED FIXED Alphan Chen [:alchen] 1345361 1318984 [WP-MVP][M3]
1345361 [Payment Request API] PaymentRequest Constructor implementation RESOLVED FIXED Eden Chuang[:edenchuang] 1345389, 1345390 1318987, 1318993 [WP-MVP][M3]
1345365 [Payment Request API] Support canMakePayment flow RESOLVED FIXED Eden Chuang[:edenchuang] 1345391, 1345392 1318987 [WP-MVP][M3]
1345366 [Payment Request API] Support show flow RESOLVED FIXED Eden Chuang[:edenchuang] 1318989, 1345393, 1345394 1318987 [WP-MVP][M3]
1345367 [Payment Request API] Support abort flow RESOLVED FIXED Eden Chuang[:edenchuang] 1345395, 1345396 1318987 [WP-MVP][M3]
1345369 [Payment Request API] Support shippingAddressChange flow RESOLVED FIXED Eden Chuang[:edenchuang] 1318990, 1355384, 1355385 1318987 [WP-MVP][M3]
1345371 [Payment Request API] Support shippingOptionChange flow RESOLVED FIXED Eden Chuang[:edenchuang] 1318990, 1355391, 1355392 1318987 [WP-MVP][M3]

8 Total; 0 Open (0%); 8 Resolved (100%); 0 Verified (0%);


Quality Assurance

  • TBD. The pure API development in H1 doesn't require QA involvement (UI level verification). We will have unit/auto test instead.

Project Members

2017'H2 (Sep.~)
  • Product: Jeff Griffiths
  • User Experience: Jacqueline Savory (UX)
  • Engineering: Justin Dolske, Matthew Noorenberghe (Tech Lead), Marcos Caceres (Architect), Jared Wein, Samuel Foster
  • Program Management: Jean Gong
2017'H1 (~Aug.)
  • Product: Joe Cheng
  • User Experience: Juwei Huang (UX), Fang Shih (Visual)
  • Engineering: Marcos Caceres (Architect), Ben Tian (TDC Tech Lead), Alphan Chen, Eden Chuang
  • Program Management: Wesly Huang

Discussion

Reference Link