التحديث إلى الإصدار الأخير

في يوليو 2018، قدّمت واجهة Google Pay API بنى عناصر جديدة خاصة بـ عناصر PaymentDataRequest و عناصر IsReadyToPayRequest. يوضّح هذا الدليل كيفية تعديل العناصر المنسَّقة للإصدار 1 من Google Pay API لتصبح منسَّقة للإصدار 2.

طرق الدفع

يتم تحديد إصدار واجهة برمجة التطبيقات مع كل عنصر طلب في الإصدار 2 من Google Pay API.

كان الإصدار 1 من Google Pay API يتيح استخدام البطاقات فقط كطريقة دفع. CARD طريقة الدفع هي أحد خيارات طرق الدفع المتعددة المتاحة في الإصدار 2 من Google Pay API. على المواقع الإلكترونية التي سبق لها تحديد قيمة allowedPaymentMethods على أنّها CARD أن تحدّد الآن قيمة allowedAuthMethods على أنّها PAN_ONLY. على المواقع الإلكترونية التي حدّدت سابقًا قيمة allowedPaymentMethods بقيمة TOKENIZED_CARD أن تحدّد الآن قيمة allowedAuthMethods بقيمة CRYPTOGRAM_3DS.

يتم تحديد شبكات البطاقات المسموح بها إلى جانب طرق المصادقة المتاحة للبطاقات على تلك الشبكات.

apiVersion 1

{
  allowedPaymentMethods: [
    'CARD',
    'TOKENIZED_CARD'
  ],
  cardRequirements: {
    allowedCardNetworks: [
      'AMEX',
      'DISCOVER',
      'JCB',
      'MASTERCARD',
      'VISA'
    ]
  }
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0,
  allowedPaymentMethods: [{
    type: 'CARD',
    parameters: {
      allowedAuthMethods: [
        'PAN_ONLY',
        'CRYPTOGRAM_3DS'
      ],
      allowedCardNetworks: [
        'AMEX',
        'DISCOVER',
        'JCB',
        'MASTERCARD',
        'VISA'
      ]
    }
  }]
}

يتم تضمين شبكات البطاقات المسموح بها وطرق المصادقة الخاصة بها في IsReadyToPayRequest CARD لطريقة الدفع.

تحويل بيانات الدفع للبطاقات إلى رموز مميّزة

تعرض Google Pay API بيانات البطاقة المشفّرة التي تشير إليها بوابة الدفع المحدّدة أو يتم فك تشفيرها على خوادمك. تنقل الإصدار 2 من Google Pay API عملية ترميز طريقة الدفع إلى داخل CARD طريقة الدفع.

apiVersion 1

{
  paymentMethodTokenizationParameters: {
    tokenizationType: 'PAYMENT_GATEWAY',
    parameters: {
      ';gateway': 'example',
      'gatewayMerchantId': 'exampleMerchantId'
    }
  }
}

apiVersion 2

{
  allowedPaymentMethods: [{
    type: 'CARD',
    tokenizationSpecification: {
      type: 'PAYMENT_GATEWAY',
      parameters: {
        9;gateway': 'example',
        'gatewayMerchantId': 'exampleMerchantId'
      }
    }
  }]
}

معرّف التاجر على Google

كان معرّف التاجر على Google سمة رفيعة المستوى في الإصدار 1 من Google Pay API. الآن، يتم وضع معرّف التاجر على Google داخل عنصر MerchantInfo مع اسم تاجر اختياري.

apiVersion 1

{
  merchantId: '12345678901234567890'
}

apiVersion 2

{
  merchantInfo: {
    merchantId: '12345678901234567890'
  }
}

عنوان إرسال الفواتير

يرتبط عنوان إرسال الفواتير ورقم هاتف إرسال الفواتير الاختياريان بطريقة الدفع CARD. إذا طلب موقع إلكتروني عنوان إرسال فواتير، يتم وضع أي إعدادات ذات صلة بالاستجابة المتوقّعة داخل الكائن BillingAddressParameters.

apiVersion 1

{
  cardRequirements: {
    billingAddressRequired: true,
    billingAddressFormat: 'FULL'
  },
  phoneNumberRequired: true
}

apiVersion 2

{
  allowedPaymentMethods: [{
    type: 'CARD',
    parameters: {
      billingAddressRequired: true,
      billingAddressParameters: {
        format: 'FULL',
        phoneNumberRequired: true
      }
    }
  }]
}

عنوان الشحن

يبقى شرط عنوان الشحن الاختياري على المستوى الأعلى من عنصر PaymentDataRequest. تمت إعادة تسمية السمة shippingAddressRequirements إلى shippingAddressParameters.

في السابق، كانت ردود Google Pay API تعرض رقم الهاتف كجزء من عنوان الشحن عند طلب رقم الهاتف. لم يعُد رقم الهاتف المخصّص للشحن متاحًا في أي إصدار من Google Pay API. يجب تعديل أي معالجات ردود تتوقّع رقم هاتف خاصًا بالشحن.

apiVersion 1

{
  shippingAddressRequired: true,
  shippingAddressRequirements: {
    allowedCountryCodes: [
      'US',
      'CA'
    ]
  }
}

apiVersion 2

{
  shippingAddressRequired: true,
  shippingAddressParameters: {
    allowedCountryCodes: [
      'US',
      'CA'
    ]
  }
}

ردّ PaymentData

تم تغيير استجابة الكائن PaymentData للمواقع الإلكترونية التي تضبط قيمة السمة apiVersion على 2 في PaymentDataRequest لتشير إلى البطاقات كإحدى استجابات بيانات الدفع المتعدّدة المحتملة. تظهر السمتان apiVersion وapiVersionMinor المضمّنتان في عنصر PaymentDataRequest في استجابة PaymentData للإشارة إلى التنسيق المتوقّع.

apiVersion 1

{
  // no version specified
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0
}

يتم وضع معلومات حول طريقة دفع محدّدة وعملية تحويلها إلى رموز مميّزة داخل السمة paymentMethodData. تمت إزالة خاصيتَين من عنصر cardInfo الخاص بطريقة الدفع باستخدام البطاقة: cardClass وcardImageUri.

apiVersion 1

{
  cardInfo: {
    cardDescription: 'Visa •••• 1234',
    cardNetwork: 'VISA',
    cardDetails: 1234
  },
  paymentMethodToken: {
    tokenizationType: 'PAYMENT_GATEWAY',
    token: 'examplePaymentMethodToken'
  }
}

apiVersion 2

{
  paymentMethodData: {
    type: 'CARD',
    description: 'Visa •••• 1234',
    info: {
      cardNetwork: 'VISA',
      cardDetails: '1234'
    },
    tokenizationData: {
      type: 'PAYMENT_GATEWAY',
      token: 'examplePaymentMethodToken'
    }
  }
}

الرد على الرسائل المشفّرة

على المواقع الإلكترونية التي تحدّد نوع ترميز طريقة الدفع DIRECT وتقبل طريقة دفع من إصدار واجهة برمجة التطبيقات 1 بقيمة TOKENIZED_CARD، تعديل طريقة معالجتها للسمة encryptedMessage التي تم فك تشفيرها. ويجب أن يتيح الموقع الإلكتروني ذلك لمواصلة إعادة توجيه رموز الأجهزة التي تعمل بنظام التشغيل Android والتي تم إثبات صحتها باستخدام تشفير 3-D Secure ومؤشر التجارة الإلكترونية الاختياري (ECI) إلى البوابة أو المعالج. البطاقات هي paymentMethod من CARD، مع معلومات إضافية حول طريقة مصادقة البطاقة المحدّدة في paymentMethodDetails.authMethod.

apiVersion 1

{
  "paymentMethod": "TOKENIZED_CARD",
  "paymentMethodDetails": {
    "authMethod": "3DS",
    "dpan": "1111222233334444",
    "expirationMonth": 10,
    "expirationYear": 2020,
    "3dsCryptogram": "AAAAAA...",
    "3dsEciIndicator": "eci indicator"
  }
}

apiVersion 2

{
  "paymentMethod": "CARD",
  "paymentMethodDetails": {
    "authMethod": "CRYPTOGRAM_3DS",
    "pan": "1111222233334444",
    "expirationMonth": 10,
    "expirationYear": 2020,
    "cryptogram": "AAAAAA...",
    "eciIndicator": "eci indicator"
  }
}