@@ -228,14 +228,6 @@ <h2>
228228 that results in a < a > dictionary</ a > or < a data-cite =
229229 "WEBIDL#idl-object "> object</ a > or null.
230230 </ 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 >
239231 </ dd >
240232 </ dl >
241233 < p >
@@ -2147,14 +2139,15 @@ <h2>
21472139 < dfn > requestBillingAddress</ dfn > member
21482140 </ dt >
21492141 < 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
21562147 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 > .
21582151 </ dd >
21592152 < dt >
21602153 < dfn > requestPayerName</ dfn > member
@@ -5273,21 +5266,13 @@ <h2>
52735266 </ p >
52745267 </ section >
52755268 < section >
5276- < h2 >
5269+ < h2 id =" user-info " >
52775270 Exposing user information
52785271 </ h2 >
52795272 < p >
52805273 The < a > user agent</ a > MUST NOT share information about the user with
52815274 a developer (e.g., the shipping address) without user consent.
52825275 </ 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 >
52915276 < p >
52925277 The < a > user agent</ a > MUST NOT share the values of the < a data-lt =
52935278 "PaymentDetailsBase.displayItems "> displayItems</ a > member or
@@ -5296,6 +5281,38 @@ <h2>
52965281 member with a third-party < a > payment handler</ a > without user
52975282 consent.
52985283 </ 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 >
52995316 < p >
53005317 Where sharing of privacy-sensitive information might not be obvious
53015318 to users (e.g., when < a data-lt =
0 commit comments