diff --git a/index.html b/index.html index 77093d67..adba0af0 100644 --- a/index.html +++ b/index.html @@ -387,22 +387,46 @@
TypeError.
details contains a value for error, then throw a
+ If details.total.amount.value is not a valid decimal monetary value, then throw a
TypeError.
details.total.amount.value is U+002D HYPHEN-MINUS, then throw a
TypeError. total MUST be a non-negative amount.
details.displayItems sequence contains any PaymentItem
+ objects with an amount that is not a valid decimal monetary value, then throw a
+ TypeError.
+ details.shippingOptions sequence contains any PaymentShippingOption
+ objects with an amount that is not a valid decimal monetary value, then throw a
+ TypeError.
+ details contains a value for error, then throw a
+ TypeError.
+ PaymentMethodData in methodData, if the data field
is supplied but is not a JSON-serializable object, then throw a TypeError.
PaymentDetailsModifier in details.modifiers, if the total field
+ is supplied and is not a valid decimal monetary value, then throw a TypeError.
+ PaymentDetailsModifier in details.modifiers, if the total field
is supplied and the first character of total.amount.value is U+002D HYPHEN-MINUS, then throw a
TypeError. total MUST be a non-negative amount.
PaymentDetailsModifier in details.modifiers, if the
+ additionalDisplayItems sequence contains any PaymentItem
+ objects with an amount that is not a valid decimal monetary value, then throw a
+ TypeError.
+ PaymentRequest.methodData into request@[[\methodData]].
@@ -648,12 +672,18 @@ value^-?[0-9]+(\.[0-9]+)?$.
+ The following regular expression is an implementation of the above definition.
+ ^-?[0-9]+(\.[0-9]+)?$
PaymentDetails dictionary, then:
details contains a total value and the first character of
+ If details contains a total value and total.amount.value
+ is a valid decimal monetary value and the first character of
total.amount.value is NOT U+002D HYPHEN-MINUS, then copy
total value to the total field of target@[[\details]]
(total MUST be a non-negative amount).
details contains a displayItems value, then copy
- this value to the displayItems field of target@[[\details]].
+ If details contains a displayItems value and every
+ PaymentItem in the displayItems has an
+ amount.value containing a valid decimal monetary value,
+ then copy details.displayItems to the displayItems
+ field of target@[[\details]].
details contains a modifiers value, then copy
- this value to the modifiers field of target@[[\details]].
+ If details contains a modifiers value, then:
+ details.modifiers.PaymentDetailsModifier in modifiers, if the
+ total field is supplied and is not a valid decimal monetary value,
+ then set modifiers to an empty sequence.PaymentDetailsModifier in modifiers, if the
+ additionalDisplayItems sequence contains any PaymentItem
+ objects with an amount that is not a valid decimal monetary value,
+ then set modifiers to an empty sequence.modifiers field of target@[[\details]].details contains a shippingOptions sequence, then:
details.shippingOptions.details.shippingOptions sequence contains multiple
+ If the shippingOptions sequence contains multiple
PaymentShippingOption objects that have the same id,
- then set the shippingOptions field of request@[[\details]]
- to an empty sequence.
- Otherwise copy the shippingOptions sequence from details to the
- shippingOptions field of target@[[\details]].
+ then set shippingOptions to the empty sequence.PaymentShippingOption
+ that has an amount.value that is not a valid decimal monetary value,
+ then set shippingOptions to the empty sequence.shippingOptions field of
+ target@[[\details]].