W3C

Payment Apps Task Force

17 Jan 2017

Agenda

See also: IRC log

Attendees

Present
scribe, Frank, AdamR, jnormore, rouslan, alyver, Max
Regrets
Tommy
Chair
Ian
Scribe
Ian

Contents


recent edits

https://w3c.github.io/webpayments-payment-apps-api/

Integrated revised model text (notably around recommended apps)

https://github.com/w3c/webpayments-payment-apps-api/commit/5de10a295f00c1161a55d286413253e8467491a5#diff-eacf331f0ffc35d4b482f1d15a887d3b

payment app identifiers

We are still wrestling with what identifiers we have and what they

identify. The spec now talks about PAI's identifying service worker code:

https://w3c.github.io/webpayments-payment-apps-api/#identification

AdrianHB has a counter proposal:

https://github.com/w3c/webpayments-payment-apps-api/issues/48#issuecomment-261775283

IJ: Anybody want to weigh in on the choice between PAI points to service worker code VERSUS PAI points to manifest file

recent edits

Tommy's pull request regarding PaymentAppResponse Dictionary

https://github.com/w3c/webpayments-payment-apps-api/pull/84

https://github.com/w3c/webpayments-payment-apps-api/pull/84/files

https://github.com/w3c/webpayments-payment-apps-api/issues/81

jnormore: Makes sense to me.

<rouslan> +1

RESOLUTION: Merge Tommy's PR.

Clarity on whether top-level displayItems sent to payment app

https://w3c.github.io/webpayments-payment-apps-api/#sec-app-request-data

Issue 8

Is the specification missing the top level "displayItems"?

https://w3c.github.io/browser-payment-api/#paymentdetails-dictionary

IJ: Are we missing display items?

Rouslan: Seems like a bug; we should be sending displayItems to the app

adamR: My recollection is that this was done intentionally.
... as a matter of privacy...if I am buying something I don't want a payment provider to know about, that might not be something I want passed along.

jnormore: It's pretty common for merchants to prefer to not want to pass that along, but it's also common for them to not care, in order for the payment provider to offer a better experience, e.g., to show the items to the user
... I would lean in the direction of "OPTIONAL"
... as a reflection of status quo

rouslan: If I recall, android pay requires total and displayItems are OPTIONAL

jnormore: From a merchant perspective, the diff between providing between Android Pay and a third party...in the case of Android Pay you are not passing it to a third party...you are just passing to the device for display
... that's when it becomes a concern from a merchant perspective.

frank: We do prefer to have the shopping card items to do risk assessment and to improve user experience.
... it should definitely be optional

adamR: Regarding the display, these items are still going to be displayed to the user as part of checkout...
... as far as making them optional, that sounds like a reasonable compromise
... so we'd need a flag in PR API to indicate whether to pass details on to the payment app

ian: I also heard people might hesitate to pay if they don't see what they are paying for.
... especially in a context where you are doing other things, e.g., relate to coupons

frank: To add to that, in our context, the payment does not happen at the time of purchase. We extend credit, and payment happens at a later stage, and the user needs to see that data when the payment has to happen post purchase.

rouslan: I would prefer not to have another flag in payment request API

<frank> +1

<jnormore> +1

rouslan: PROPOSED - details are optional at PR API level (as the spec already says), but if provided are sent to the payment app. E.g., we could add guidance to merchants to not show sensitive names.

<alyver> +1

<jnormore> +1

<frank> +1

<adamR> +0

<Max> +1

IJ: Should we update the spec to indicate display items and that it will be null if not provided in PR API?

<scribe> ACTION: Ian to update the spec to indicate display items and that it will be null if not provided in PR API [recorded in http://www.w3.org/2017/01/17-apps-minutes.html#action01]

Issue 73: Need to specify behavior for Clients.openWindow

previous action - Rouslan to look into how progress web apps could help

us understand how to manage UI in different contexts.

https://github.com/w3c/webpayments-payment-apps-api/issues/73#issuecomment-273119925

rouslan: Spoke about this a bit. The consensus in Google seems that "progressive web apps" will not be of much help; but we have to keep looking into this.
... I still think it's right but they were tepid; so maybe I need to explain better.

<frank> +q

frank: The current implementation, when the web-based payment app is opened in a separate tab, .... I share the concern that that's probably not the best UX and also problematic with it being separate from the merchant site from a flow perspective.

adamR: I still think that if we are concerned about the tab experience, we need to point out how that can arise.

https://w3c.github.io/webpayments-payment-apps-api/#payment-app-display

AdamR: It's still a note:

"Implementations may vary on how windows open. For example, while opening an entirely new window is possible, it is more likely that the contents will be rendered in a way that makes it more obvious that the interactions pertain to the payment transaction. The opening of a payment app window versus other types of windows can be distinguished based on the event type the user agent is using to grant permission to open a window. "

adamR: We can make it normative if we feel it's important to do so.

rouslan: +1 to adamR...I think this should not be a different API call.
... in terms of making sure that the window looks correct, that should not be in this spec.
... I think we should wait for browsers to implement this, and then provide suggestions if they get it wrong

IJ: that suggests a change to "must call clients.openWindow()"

adamR: It's not clear to me what bad scenarios will arise by calling clients.OpenWindow

frank: Tommy's point is that client.OpenWindow() does open in another tab

adamR: User agent should render this in a way that is different from normal windows, to make it clearer to the user that this is part of a payment flow.
... and the user agent can use information (as the note points out) to determine when to do so

frank: I thought opening tab was standard behavior

adamR: Spec says "new browsing context" but doesn't say tab..it's left up to the user agent

<frank> ok. great

rouslan: I think that Tommy's implementation uses the default implementation. But we would do a custom implementation before releasing that would do the right thing wrt opening a payment window

[Rouslan leaves]

(We have not looked at issue 10 and 11 lately)

AdamR: I think we need more service worker expertise here.

https://w3c.github.io/webpayments-payment-apps-api/#payment-app-display

<frank> I have it as 10.4

10.4!

<scribe> ACTION: Ian to revisit 10.4 to make clear that (1) we want payment apps to use the standard API call but (2) what happens will be UA-determined given this a payment context (3) some guidance about not confusing the user [recorded in http://www.w3.org/2017/01/17-apps-minutes.html#action02]

(IJ I will get rid of the first note and integrate better)

I will ping Tommy on the edits

Issue 83: payment-manifest.json and canHandle function

https://github.com/w3c/webpayments-payment-apps-api/issues/83

AdamR: canHandle() appears in code. This is not in a JSON file

https://w3c.github.io/webpayments-payment-apps-api/#register-example

scribe: I would not call the JS objects in the example "JSON".
... there's a separate topic - we want to make those objects serializable as JSON
... if we have a reason to do that.

Example 1: Payment App Registration

frank: why are "quotes" there?

IJ: What should happen there?

AdamR: Suggest removing quotes

(IJ will do that)

(We also look at Rouslan's comment)

adamR: Right now if you are a mediator trying to determine matches, you can do so by looking at payment methods and calling canHandle()
... but if we move to an event model, you need to find the service workers and see if canHandle() there
... but the big issue is that canHandle() needs to run in a particular context...making it harder to do Rouslan's approach

<scribe> ACTION: AdamR to weigh in on issue 83 on (1) JS v. JSON...and we are fixing quotes; and there is no file required and (2) canHandle() should not be an event [recorded in http://www.w3.org/2017/01/17-apps-minutes.html#action03]

(IJ sees typo in enabled methods: canHandl)

FPWD goals

IJ: Other than the list in the agenda, anything else obvious we should address before requesting FPWD?

(No replies)

Next meeting

24 Jan

scribe: we will review Adam's text on issue 79
... and also revised text around 73 (from Ian)
... another topic raised by Jake Archibald - can we have an end-to-end example of how things work?

Summary of Action Items

[NEW] ACTION: AdamR to weigh in on issue 83 on (1) JS v. JSON...and we are fixing quotes; and there is no file required and (2) canHandle() should not be an event [recorded in http://www.w3.org/2017/01/17-apps-minutes.html#action03]
[NEW] ACTION: Ian to revisit 10.4 to make clear that (1) we want payment apps to use the standard API call but (2) what happens will be UA-determined given this a payment context (3) some guidance about not confusing the user [recorded in http://www.w3.org/2017/01/17-apps-minutes.html#action02]
[NEW] ACTION: Ian to update the spec to indicate display items and that it will be null if not provided in PR API [recorded in http://www.w3.org/2017/01/17-apps-minutes.html#action01]
 

Summary of Resolutions

  1. Merge Tommy's PR.
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.148 (CVS log)
$Date: 2017/01/17 16:40:15 $