14:58:08 RRSAgent has joined #apps 14:58:08 logging to http://www.w3.org/2017/01/10-apps-irc 14:58:22 Meeting: Payment Apps Task Force 14:58:24 Agenda: https://lists.w3.org/Archives/Public/public-payments-wg/2017Jan/0025.html 14:58:26 Chair: Ian 14:58:28 Scribe: Ian 14:59:49 present+ Ian 14:59:52 present+ DavidJ 14:59:56 present+ Jenan 15:01:09 adamR has joined #apps 15:01:26 present+ AdamR 15:01:34 regrets+ Tommy 15:01:41 present+ Pascal 15:02:01 alyver has joined #apps 15:03:32 topic: Next meetings 15:03:38 12 Jan: Developer sync up (chaired by Conor) 15:03:38 https://lists.w3.org/Archives/Public/public-payments-wg/2017Jan/0017 15:04:15 Next call of this task force: 17 Jan 15:04:28 IJ: regrets for 17th? 15:04:30 [none] 15:04:38 Topic: Recent changes to Payment App API 15:04:50 https://github.com/w3c/webpayments-payment-apps-api/pull/80 15:05:30 present+ Andrew 15:05:35 present- Andrew 15:05:36 present+ Andre 15:08:01 https://w3c.github.io/webpayments-payment-apps-api/#payment-app-identification 15:08:12 We have: 15:08:14 * Payment apps 15:08:20 * Payment app manifests 15:08:26 * Service worker JS 15:08:39 (Payment method URLs and manifest files) 15:09:13 https://w3c.github.io/webpayments-payment-apps-api/#dfn-payment-app-identifier 15:09:45 +
  • We expect to identify Web-based payment apps with URLs. Dereferencing a payment app identifier will provide service worker code for the payment app.
  • 15:10:08 IJ: What should the spec say about payment app identifiers? 15:10:14 AdamR: The new text seems ok 15:10:21 present+ Evgeny 15:10:40 adamr: The service worker code is not sufficient for registration. 15:11:06 IJ: What does the registration function need? 15:11:54 adamr: The service worker provides payment app manifest data for registration 15:14:32 q+ 15:14:39 AdamR: We could specify that in the JS file, there is a function with a specific name that is responsible for registering the service worker if it's not already registered. 15:14:43 ack pas 15:15:02 pascal_bazin: Maybe the problem is that we didn't really what registration is. ... 15:16:06 +
  • It defines mechanisms that may be used to support Web-based payment apps. We anticipate that various platforms will offer proprietary alternatives to this specification (e.g., for payment app registration or invocation). Proprietary payment apps lie outside the scope of this specification.
  • 15:16:21 In this specification, registration means registration 15:16:21 + of a service worker with the user agent. 15:16:21 + Registration provides the user agent 15:16:21 +with access to a payment app manifest, which 15:16:21 + includes information such as names, icons, etc. Registration does not refer to how the user establishes a relationship with the 15:16:23 + payment service provider, for example by setting up an account with that 15:16:25 + provider. 15:16:34 ==== 15:17:30 AdamR: Let's look at a single example service worker.... 15:17:37 https://github.com/mdn/sw-test/blob/gh-pages/app.js 15:18:04 ..I think that having a single URL for JS code is fine 15:18:09 ...as long as it knows to install itself. 15:23:11 merchant needs to provide a URL that identifies code from the payment app providers. 15:23:18 ..part of that code registers the service worker. 15:23:39 ..the question is whether we can put that code in the same file that contains the service worker code 15:24:05 q+ to ask what we call the wrapper code 15:24:24 ack me 15:24:24 Ian, you wanted to ask what we call the wrapper code 15:24:32 IJ: What can we call the code shown in example 1? 15:25:11 "payment app registration code" 15:25:27 - A payment app identifier can be deferenced to get payment app registration code 15:25:37 - payment app registration code is responsible for service worker registration 15:25:55 - Implementation detail: can both the registration code and the SW code co-exist in one file? 15:27:42 IJ: I think the payment app identifier needs to be in either the registration code or the service worker code so that the browser can tell whether the user already has a merchant-recommended payment app? 15:29:18 AdamR: When we have a recommended app, we need the merchant to say "here's the service worker app I want you to use...and if it's not installed already, here's the registration code." 15:30:03 IJ: Does the merchant provide code or pointer to JS? 15:30:05 AdamR: Pointer to JS 15:31:11 Evgeny has joined #apps 15:31:42 AdamR: Service workers have identifiers (domain + path) 15:32:32 Two URLS is easier for merchants to manage than having to manage actual code 15:32:45 AdamR: We may need to think of ways to make this cleaner 15:33:56 What should we call the URL? "Payment app registration URL"? 15:34:11 https://pastebin.mozilla.org/8961074 15:34:14 AdamR: I'd like to get someone who is familiar with service workers to look at this 15:35:17 ...also at registration time, when service worker succeeds, the service worker will be invoked and can trigger an "Install" event 15:35:38 ...for payment apps that are expected to operate in a recommended app context, the pattern could be that you listen on install and set the manifest at that time 15:36:06 ======== 15:37:24 AdamR: Recommended apps can set manifest on "install" event. 15:37:54 IJ: So walk through the flow: 15:38:24 1) The payment request includes one or more URLs that are payment app identifiers - they indicate service worker JS code 15:38:29 (along with name, icon) 15:38:48 2) When that's passed to the browser, the browser looks to see whether the user has already registered a service worker with that id 15:39:08 3) If not presently installed, then we display it to the user. 15:39:22 navigator.serviceWorker.register('/exampleapp.js') 15:39:29 4) If the user selects it, then the browser registers the service worker using that payment app identifier. 15:40:08 5) On registration, the service worker would add an event listener for "install" which would then be called. 15:40:31 6) Code in the service worker would call a function to set up the manifest 15:43:52 ===> 4) Upon selection, the code calls register on navigator.ServiceWorker. 15:44:36 IJ: Should we do the "install" routinely? 15:44:43 AdamR: If it works, doesn't seem like a bad pattern 15:46:05 ACTION: Ian to take a stab at revising the script based on this description. 15:47:05 https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register 15:47:12 ServiceWorkerContainer.register(scriptURL, options) 15:47:20 IJ: So is this a scriptURL for a service worker? 15:47:30 https://www.w3.org/TR/service-workers/#service-worker-container 15:47:55 https://www.w3.org/TR/service-workers/#service-worker-concept 15:48:09 "A service worker has an associated script url (a URL)." 15:48:44 IJ: I won't merge the edits yet; we'll do another round. 15:49:14 topic: Issue 79: How does the payee provide information about recommended payment apps? 15:49:35 IJ: This is a change to PR API. 15:50:31 (No volunteers yet) 15:51:54 ACTION: AdamR to draft how PR API would change to allow-payee recommended payment apps, due 2017-01-24 15:52:09 topic: Issue 73 15:52:19 Rouslan to look into how progress web apps could help us understand 15:52:19 how to manage UI in different contexts. 15:52:19 (Postpone) 15:52:30 topic: Issue 23: Analyse security properties of payment app execution environment 15:52:45 https://github.com/w3c/webpayments-payment-apps-api/issues/23 15:53:55 AdamR: I would hesitate to restrict too much 15:54:18 ...we will want access to web authentication here 15:54:31 ...the example I've been giving is "what if someone wants access to the camera for biometric auth"? 15:56:28 IJ: Let's leave open for now 15:57:46 topic: FPWD? 15:57:54 IJ: Do we still want to this month? 15:58:04 ..what else do we need in the spec in order to be happy to go to FPWD? 15:58:31 IJ: Proposed 15:58:41 * Finish "recommended app edits' (that includes IJ, AR actions) 15:58:52 * Finish openWindow action from Rouslan 15:59:03 * Resolve 81 and 82 15:59:44 IJ: Think about that this week for discussion at next call. 16:01:27 topic: Next meeting 16:01:34 17 Jan 16:01:47 rrsagent, make minutes 16:01:51 rrsagent, make minutes 16:01:51 I have made the request to generate http://www.w3.org/2017/01/10-apps-minutes.html Ian 16:01:53 rrsagent, set logs public 16:02:18 alyver has left #apps 17:33:47 Zakim has left #apps 18:12:03 rrsagent, bye 18:12:03 I see 2 open action items saved in http://www.w3.org/2017/01/10-apps-actions.rdf : 18:12:03 ACTION: Ian to take a stab at revising the script based on this description. [1] 18:12:03 recorded in http://www.w3.org/2017/01/10-apps-irc#T15-46-05 18:12:03 ACTION: AdamR to draft how PR API would change to allow-payee recommended payment apps, due 2017-01-24 [2] 18:12:03 recorded in http://www.w3.org/2017/01/10-apps-irc#T15-51-54