Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(681)

Unified Diff: components/payments/content/payment_request.mojom

Issue 2823823002: Revert of [Payments] move //components/payments/content/*.mojom files to //components/payments/mojom (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/payments/content/payment_request.h ('k') | components/payments/content/payment_request_spec.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/payments/content/payment_request.mojom
diff --git a/components/payments/content/payment_request.mojom b/components/payments/content/payment_request.mojom
new file mode 100644
index 0000000000000000000000000000000000000000..600838286adf210199a922a77ae0151e83c2dcf3
--- /dev/null
+++ b/components/payments/content/payment_request.mojom
@@ -0,0 +1,223 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+[JavaPackage="org.chromium.payments.mojom"]
+module payments.mojom;
+
+// The shipping address that the browser process provides to the renderer
+// process. Built either by the browser or a payment app.
+struct PaymentAddress {
+ // ISO 3166 country code. Two upper case ASCII letters.
+ string country;
+
+ array<string> address_line;
+ string region;
+ string city;
+ string dependent_locality;
+ string postal_code;
+ string sorting_code;
+
+ // Optional shortest ISO 639 language code. Two or three lower case ASCII
+ // letters.
+ string language_code;
+
+ // Optional ISO 15924 script code. Four ASCII letters. The first letter is
+ // upper case; the rest are lower case.
+ string script_code;
+
+ string organization;
+ string recipient;
+ string phone;
+};
+
+// The currency amount that the renderer provides to the browser process. The
+// browser shows the amount in UI and forwards it on to the payment app, if it
+// requires the amount.
+struct PaymentCurrencyAmount {
+ // The most common identifiers are three-letter alphabetic codes as defined
+ // by [ISO4217] (for example, "USD" for US Dollars), however any string of at
+ // most 2048 characters is considered valid.
+ string currency;
+
+ // ISO 20022 CurrencyAnd30Amount. Up to 30 total digits. Up to 10 fraction
+ // digits. Separated by a dot.
+ string value;
+
+ // currency_system is a URL that indicates the currency system that the
+ // currency identifier belongs to. By default, the value is
+ // urn:iso:std:iso:4217 indicating that currency is defined by [ISO4217]
+ // (for example, USD for US Dollars).
+ string currency_system = "urn:iso:std:iso:4217";
+};
+
+struct PaymentResponse {
+ string method_name;
+
+ // Payment method specific JSON string that is built either by the browser or
+ // a payment app, for example Android Pay. Browser ensures that the string can
+ // be successfully parsed into base::JSONParser. Renderer parses this string
+ // via v8::JSON::Parse() and hands off the result to the merchant website.
+ // There's no one format for this object, so more specific types cannot be
+ // used. A simple example:
+ //
+ // {"nameOnCard": "Jon Doe", "pan": "4111 1111 1111 1111"}
+ string stringified_details;
+
+ PaymentAddress? shipping_address;
+ string? shipping_option;
+ string? payer_name;
+ string? payer_email;
+ string? payer_phone;
+};
+
+enum PaymentErrorReason {
+ UNKNOWN,
+ USER_CANCEL,
+ NOT_SUPPORTED
+};
+
+enum CanMakePaymentQueryResult {
+ CAN_MAKE_PAYMENT,
+ CANNOT_MAKE_PAYMENT,
+ QUERY_QUOTA_EXCEEDED
+};
+
+interface PaymentRequestClient {
+ OnShippingAddressChange(PaymentAddress address);
+ OnShippingOptionChange(string shipping_option_id);
+ OnPaymentResponse(PaymentResponse response);
+ OnError(PaymentErrorReason error);
+ OnComplete();
+ OnAbort(bool aborted_successfully);
+ OnCanMakePayment(CanMakePaymentQueryResult result);
+};
+
+struct PaymentItem {
+ string label;
+ PaymentCurrencyAmount amount;
+ bool pending;
+};
+
+struct PaymentShippingOption {
+ string id;
+ string label;
+ PaymentCurrencyAmount amount;
+ bool selected;
+};
+
+enum AndroidPayEnvironment {
+ PRODUCTION,
+ TEST
+};
+
+enum AndroidPayCardNetwork {
+ AMEX,
+ DISCOVER,
+ MASTERCARD,
+ VISA
+};
+
+enum AndroidPayTokenization {
+ UNSPECIFIED,
+ GATEWAY_TOKEN,
+ NETWORK_TOKEN
+};
+
+struct AndroidPayTokenizationParameter {
+ string? key;
+ string? value;
+};
+
+enum BasicCardNetwork {
+ AMEX,
+ DINERS,
+ DISCOVER,
+ JCB,
+ MASTERCARD,
+ MIR,
+ UNIONPAY,
+ VISA
+};
+
+enum BasicCardType {
+ CREDIT,
+ DEBIT,
+ PREPAID
+};
+
+struct PaymentMethodData {
+ array<string> supported_methods;
+
+ // A JSON string built by the renderer from a JavaScript object that the
+ // merchant website provides. The renderer uses
+ // blink::JSONObject::toJSONString() to generate this string. The browser does
+ // not parse the string and passes it as-is directly to payment apps. There's
+ // no one format for this object, so more specific types cannot be used. A
+ // simple example:
+ //
+ // {"gateway": "stripe"}
+ string stringified_data;
+
+ // Android Pay specific method data is parsed in the renderer.
+ // https://developers.google.com/web/fundamentals/getting-started/primers/payment-request/android-pay
+ // TODO(rouslan): Stop parsing Android Pay data. http://crbug.com/620173
+ AndroidPayEnvironment environment;
+ string? merchant_name;
+ string? merchant_id;
+ array<AndroidPayCardNetwork> allowed_card_networks;
+ AndroidPayTokenization tokenization_type;
+ array<AndroidPayTokenizationParameter> parameters;
+ // Value of 0 means the merchant did not specify or it was an invalid value.
+ int32 min_google_play_services_version;
+
+ // Basic card specific method data is parsed in the renderer.
+ array<BasicCardNetwork> supported_networks;
+ array<BasicCardType> supported_types;
+};
+
+struct PaymentDetailsModifier {
+ PaymentItem? total;
+ array<PaymentItem> additional_display_items;
+ PaymentMethodData method_data;
+};
+
+struct PaymentDetails {
+ PaymentItem? total;
+ array<PaymentItem> display_items;
+ array<PaymentShippingOption> shipping_options;
+ array<PaymentDetailsModifier> modifiers;
+ string error = "";
+};
+
+enum PaymentShippingType {
+ SHIPPING,
+ DELIVERY,
+ PICKUP
+};
+
+struct PaymentOptions {
+ bool request_payer_name;
+ bool request_payer_email;
+ bool request_payer_phone;
+ bool request_shipping;
+ PaymentShippingType shipping_type;
+};
+
+enum PaymentComplete {
+ SUCCESS,
+ FAIL,
+ UNKNOWN
+};
+
+interface PaymentRequest {
+ Init(PaymentRequestClient client,
+ array<PaymentMethodData> method_data,
+ PaymentDetails details,
+ PaymentOptions options);
+ Show();
+ UpdateWith(PaymentDetails details);
+ Abort();
+ Complete(PaymentComplete result);
+ CanMakePayment();
+};
« no previous file with comments | « components/payments/content/payment_request.h ('k') | components/payments/content/payment_request_spec.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698