- From: Domenic Denicola <notifications@github.com>
- Date: Mon, 30 Apr 2018 17:26:50 +0000 (UTC)
- To: w3c/payment-request <payment-request@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/payment-request/pull/700/review/116364933@github.com>
domenic requested changes on this pull request. Great work to create this layering in general. > @@ -160,10 +160,24 @@ <h2> </ul> <p> The details of how to fulfill a payment request for a given <a>payment - method</a> are handled by <dfn data-lt="payment handler">payment - handlers</dfn>. In this specification, these details are left up to the - <a>user agent</a>, but future specifications may expand on the - processing model in more detail. + method</a> is an implementation detail of a <dfn data-lt= + "payment handlers">payment handler</dfn>. Additionally, each payment + handler defines a <dfn>can make payment</dfn> algorithm. The details of + how a payment handler determines wether it, or the user, can typo "wether" > @@ -160,10 +160,24 @@ <h2> </ul> <p> The details of how to fulfill a payment request for a given <a>payment - method</a> are handled by <dfn data-lt="payment handler">payment - handlers</dfn>. In this specification, these details are left up to the - <a>user agent</a>, but future specifications may expand on the - processing model in more detail. + method</a> is an implementation detail of a <dfn data-lt= + "payment handlers">payment handler</dfn>. Additionally, each payment Is this "Additionally," or should it be "Concretely,"? The "can make payment" algorithm seems like a concrete realization of the previous sentence; it doesn't seem like some additional unrelated thing. > - method</a> are handled by <dfn data-lt="payment handler">payment - handlers</dfn>. In this specification, these details are left up to the - <a>user agent</a>, but future specifications may expand on the - processing model in more detail. + method</a> is an implementation detail of a <dfn data-lt= + "payment handlers">payment handler</dfn>. Additionally, each payment + handler defines a <dfn>can make payment</dfn> algorithm. The details of + how a payment handler determines wether it, or the user, can + potentially "make a payment" is also an implementation detail of a + payment handler. For an example, see the <a data-cite= + "payment-method-basic-card#can-makepayment">can make payment</a> + algorithm of [[payment-method-basic-card]]. + </p> + <p> + A payment handler also defines the <dfn>steps to respond to a payment + request</dfn>, which results with an object, or <a data-cite= s/results with/returns "object, or dictionary, that" -> "object or dictionary that" > - handlers</dfn>. In this specification, these details are left up to the - <a>user agent</a>, but future specifications may expand on the - processing model in more detail. + method</a> is an implementation detail of a <dfn data-lt= + "payment handlers">payment handler</dfn>. Additionally, each payment + handler defines a <dfn>can make payment</dfn> algorithm. The details of + how a payment handler determines wether it, or the user, can + potentially "make a payment" is also an implementation detail of a + payment handler. For an example, see the <a data-cite= + "payment-method-basic-card#can-makepayment">can make payment</a> + algorithm of [[payment-method-basic-card]]. + </p> + <p> + A payment handler also defines the <dfn>steps to respond to a payment + request</dfn>, which results with an object, or <a data-cite= + "!WEBIDL#idl-dictionary">dictionary</a>, that a a merchant uses to "a a" -> "a" > - processing model in more detail. + method</a> is an implementation detail of a <dfn data-lt= + "payment handlers">payment handler</dfn>. Additionally, each payment + handler defines a <dfn>can make payment</dfn> algorithm. The details of + how a payment handler determines wether it, or the user, can + potentially "make a payment" is also an implementation detail of a + payment handler. For an example, see the <a data-cite= + "payment-method-basic-card#can-makepayment">can make payment</a> + algorithm of [[payment-method-basic-card]]. + </p> + <p> + A payment handler also defines the <dfn>steps to respond to a payment + request</dfn>, which results with an object, or <a data-cite= + "!WEBIDL#idl-dictionary">dictionary</a>, that a a merchant uses to + process or validate the transaction. The structure of this object is + specific for each <a>payment method</a>. For an example of such an "specific for" -> "specific to" > @@ -928,11 +942,23 @@ <h2> <var>acceptPromise</var> with that error and terminate this algorithm. </li> - <li>If the user agent has a registered <a>payment handler</a> - that supports <var>identifier</var>, then check if the payment - handler is authorized and capable of handling the payment request - with <var>data</var>. If the check returns in the affirmative, - then add payment handler to <var>handlers</var>. + <li>Let <var>registeredHandlers</var> be a <a>list</a> of + registered <a>payment handlers</a> that are authorized and can + handle payment request for <var>identifier</var>. What is "can handle [a] payment request"? It seems like another algorithm :-/. Maybe just "registered payment handlers for the payment method _identifier_" or something? > @@ -928,11 +942,23 @@ <h2> <var>acceptPromise</var> with that error and terminate this algorithm. </li> - <li>If the user agent has a registered <a>payment handler</a> - that supports <var>identifier</var>, then check if the payment - handler is authorized and capable of handling the payment request - with <var>data</var>. If the check returns in the affirmative, - then add payment handler to <var>handlers</var>. + <li>Let <var>registeredHandlers</var> be a <a>list</a> of + registered <a>payment handlers</a> that are authorized and can + handle payment request for <var>identifier</var>. + </li> + <li>If <var>registeredHandlers</var> is empty, then continue. + </li> This continue step (and the "Otherwise" on the next line) is unnecessary. You can for each over an empty list with no problem (just like in JS). > @@ -1143,12 +1169,22 @@ <h2> <li>If conversion results in an error, reject <var>promise</var> with that error and terminate this algorithm. </li> - <li>If the user agent has a registered <a>payment handler</a> Same comments apply to this section. > - then resolve <var>promise</var> with true, and abort this - algorithm. + <li>Let <var>handlers</var> be a <a>list</a> of registered + <a>payment handlers</a> that are authorized and can handle + payment request for <var>identifier</var>. + </li> + <li>If <var>handlers</var> is empty, then continue. + </li> + <li>Otherwise, for each <var>handler</var> in + <var>handlers</var>: + <ol> + <li>Let <var>canMakePayment</var> be the result of running + <var>handler</var>'s <a>can make payment</a> algorithm with + <var>data</var>. + </li> + <li>If <var>canMakePayment</var> is true, return true. Resolve promise with true, and return. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/payment-request/pull/700#pullrequestreview-116364933
Received on Monday, 30 April 2018 17:27:18 UTC