@@ -228,14 +228,6 @@ <h2>
228
228
that results in a < a > dictionary</ a > or < a data-cite =
229
229
"WEBIDL#idl-object "> object</ a > or null.
230
230
</ p >
231
- < p >
232
- A < a > payment handler</ a > that defines < a > steps for when a user
233
- changes payment method</ a > MUST redact the < a > address line</ a > ,
234
- < a > organization</ a > , < a > phone number</ a > , and < a > recipient</ a > from
235
- any < a > PaymentAddress</ a > included in the
236
- < a > PaymentMethodChangeEvent</ a > 's < a data-link-for =
237
- "PaymentMethodChangeEvent "> methodDetails</ a > attribute.
238
- </ p >
239
231
</ dd >
240
232
</ dl >
241
233
< p >
@@ -2147,14 +2139,15 @@ <h2>
2147
2139
< dfn > requestBillingAddress</ dfn > member
2148
2140
</ dt >
2149
2141
< dd data-link-for ="PaymentMethodChangeEvent ">
2150
- A boolean that instructs the < a > user agent</ a > to get the billing
2151
- address associated with a < a > payment method</ a > (e.g., the billing
2152
- address associated with a credit card). Typically, the user agent
2153
- will return the billing address as part of the
2154
- < a > PaymentMethodChangeEvent</ a > 's < a > methodDetails</ a > , albeit
2155
- possibly with parts of the address redacted for privacy reasons. A
2142
+ A boolean that indicates whether the < a > user agent</ a > SHOULD collect
2143
+ and return the billing address associated with a < a > payment
2144
+ method</ a > (e.g., the billing address associated with a credit card).
2145
+ Typically, the user agent will return the billing address as part of
2146
+ the < a > PaymentMethodChangeEvent</ a > 's < a > methodDetails</ a > . A
2156
2147
merchant can use this information to, for example, calculate tax in
2157
- certain jurisdictions.
2148
+ certain jurisdictions and update the displayed total. See below for
2149
+ privacy considerations regarding < a href ="#user-info "> exposing user
2150
+ information</ a > .
2158
2151
</ dd >
2159
2152
< dt >
2160
2153
< dfn > requestPayerName</ dfn > member
@@ -5273,21 +5266,13 @@ <h2>
5273
5266
</ p >
5274
5267
</ section >
5275
5268
< section >
5276
- < h2 >
5269
+ < h2 id =" user-info " >
5277
5270
Exposing user information
5278
5271
</ h2 >
5279
5272
< p >
5280
5273
The < a > user agent</ a > MUST NOT share information about the user with
5281
5274
a developer (e.g., the shipping address) without user consent.
5282
5275
</ p >
5283
- < p >
5284
- One way that the API supports limited information sharing is through
5285
- the "< var > redactList</ var > " associated with the creation of
5286
- < a > physical addresses</ a > throughout the API. This feature enables
5287
- user agents to provide the payee with enough information to compute
5288
- shipping costs or tax information, while limiting the payee's ability
5289
- to identify the payer via the address.
5290
- </ p >
5291
5276
< p >
5292
5277
The < a > user agent</ a > MUST NOT share the values of the < a data-lt =
5293
5278
"PaymentDetailsBase.displayItems "> displayItems</ a > member or
@@ -5296,6 +5281,38 @@ <h2>
5296
5281
member with a third-party < a > payment handler</ a > without user
5297
5282
consent.
5298
5283
</ p >
5284
+ < p >
5285
+ The < a > PaymentMethodChangeEvent</ a > enables the payee to update the
5286
+ displayed total based on information specific to a selected
5287
+ < a > payment method</ a > . For example, the billing address associated
5288
+ with a selected < a > payment method</ a > might affect the tax
5289
+ computation (e.g., VAT), and it is desirable that the user interface
5290
+ accurately display the total before the payer completes the
5291
+ transaction. At the same time, it is desirable to share as little
5292
+ information as possible prior to completion of the payment.
5293
+ Therefore, when a < a > payment method</ a > defines the < a > steps for when
5294
+ a user changes payment method</ a > , it is important to minimize the
5295
+ data shared via the < a > PaymentMethodChangeEvent</ a > 's
5296
+ < a data-link-for ="PaymentMethodChangeEvent "> methodDetails</ a >
5297
+ attribute. Requirements and approaches for minimizing shared data are
5298
+ likely to vary by < a > payment method</ a > and might include:
5299
+ </ p >
5300
+ < ul >
5301
+ < li > Use of a "< var > redactList</ var > " for < a > physical addresses</ a > .
5302
+ The current specification makes use of a "< var > redactList</ var > " to
5303
+ redact the < a > address line</ a > , < a > organization</ a > , < a > phone
5304
+ number</ a > , and < a > recipient</ a > from a < a data-link-for =
5305
+ "PaymentRequest "> shippingAddress</ a > .
5306
+ </ li >
5307
+ < li > Support for instructions from the payee identifying specific
5308
+ elements to exclude or include from the < a > payment method</ a >
5309
+ response data (returned through
5310
+ < a > PaymentResponse</ a > .< var > details</ var > ). The payee might provide
5311
+ these instructions via < a > PaymentMethodData</ a > .< var > data</ var > ,
5312
+ enabling a < a > payment method</ a > definition to evolve without
5313
+ requiring changes to the current API.
5314
+ </ li >
5315
+ </ ul >
5299
5316
< p >
5300
5317
Where sharing of privacy-sensitive information might not be obvious
5301
5318
to users (e.g., when < a data-lt =
0 commit comments