الاختبار باستخدام رموز مميّزة نموذجية

توضّح هذه الصفحة كيفية استخدام الرموز المميزة النموذجية لاختبار عملية الدمج.

إنشاء رموز مميّزة نموذجية

بالنسبة إلى عمليات الدمج المباشر، لاختبار فك تشفير الرمز المميّز على خادمك، يمكنك إنشاء رموز مميّزة نموذجية إذا ضبطت ENVIRONMENT_TEST عند إنشاء مثيل PaymentsClient.

عند إنشاء مثيل PaymentsClient مع ضبط البيئة على ENVIRONMENT_TEST، تعمل طلبات loadPaymentData كالمعتاد وتطلب من المستخدم اختيار إحدى بطاقاته الحقيقية. ومع ذلك، لا تعرض هذه الميزة أبدًا معلومات حقيقية من البطاقة المحدّدة، بل يكون للرمز المميز الناتج حمولة ثابتة دائمًا.

تأكيد التوقيع

يتم تشفير الرموز المميزة التي تم إنشاؤها في ENVIRONMENT_TEST باستخدام مفتاح الاختبار العام الذي تم إرساله إلى Google سابقًا.

يتم توقيع الرموز المميزة باستخدام مفاتيح الاختبار من Google. إذا كنت تستخدم Tink، تأكَّد من ضبط .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) عند إنشاء عنصر PaymentMethodTokenRecipient.

الحمولة التي تم فك تشفيرها

بعد فك تشفير الرمز المميز للعيّنة، ستتلقّى الحمولة النصية العادية. يعتمد بنية الحمولة على ما إذا كانت البطاقة المحدّدة قد تم تحويلها إلى رمز مميّز، أي تمت إضافتها إلى "محفظة Google". بالإضافة إلى ذلك، يختلف محتوى بطاقات الدفع المحوَّلة إلى رموز مميّزة، وذلك حسب شبكة البطاقة. تكون حمولة البطاقات غير المميزة برموز دائمًا هي نفسها، بغض النظر عن شبكة البطاقات.

قد تختلف الحقول الثلاثة التالية في الحمولة التي تم فك تشفيرها مقارنةً بالعينات أدناه:

  • messageExpiration: يتم ضبط هذا التاريخ بعد أسبوع واحد من الوقت الحالي.
  • messageId: يتم إنشاء هذا المعرّف بشكل عشوائي لكل حمولة.
  • expirationYear: يتم ضبط هذا التاريخ بعد خمس سنوات من السنة الحالية.

يختلف هيكل الحمولة التي تم فك تشفيرها بين إصدارَي البروتوكول، ECv1 وECv2. إذا نفّذت عملية دمج جديدة، سيكون الإصدار هو ECv2. إذا لم تكن متأكدًا من إصدار البروتوكول، يُرجى التأكّد من ذلك مع جهة التواصل التي تتعامل معها في Google.

بطاقة غير مميّزة

Visa

في ما يلي مثال على حمولة بيانات تم فك تشفيرها لبطاقات Visa غير المميزة برموز:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574736277",
    "messageId": "AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "4111111111111111",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "4111111111111111"
  }
}

Mastercard

في ما يلي مثال على حمولة بيانات تم فك تشفيرها لبطاقات Mastercard غير المميزة برمز مميز:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574585777",
    "messageId": "AH2Ejte23Sp0DBWqKVQ1d8ICVQialPGgXSsTT4NnCjNy3i-jdJg6B_wllO8590dFfrLg16GqGcuSrEPjl-sQZ-K8sKCL62ahwh5kzUv4ggLwioImJmuEuKfAiEQBRW0L8zlo0Nv6LFuk",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "5555555555554444",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "5555555555554444"
  }
}

American Express

في ما يلي مثال على حمولة بيانات تم فك تشفيرها لبطاقات Amex غير المميزة:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574857349",
    "messageId": "AH2EjtcmoURSXm2RhZ8ihnJrsty-7Ewm3NEnJDM-Atw9ewbIPvuarglows0vtaCV33b4z3PpM5RsMklbpe0aNPK5_BanGxmp_JSsOEtZYuf4m3cHTtKnxpQeonN07XDK-DUPKAaRwLfY",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "378282246310005",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "378282246310005"
  }
}

اكتشاف

في ما يلي مثال على حمولة تم فك تشفيرها لبطاقات Discover غير المميزة:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574781399",
    "messageId": "AH2EjteSxPPpbJOXKXzG1Cqkh1kzJz0UP1AG4w75n9q7gCtWsawfRlqtUZofjIBnKlbozvASxKkkdbjv2-rOfNGd_st4kFqPeb6O3IE-fXeIcHzH8x56tMRylEnfnrF6x01ET8KdUeLS",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "6011111111111117",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "6011111111111117"
  }
}

JCB

في ما يلي مثال على حمولة بيانات تم فك تشفيرها لبطاقات JCB غير المميزة:

ECv2

{
        {
          "gatewayMerchantId": "some-merchant-id",
          "messageExpiration": "1650574736277",
          "messageId": "AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk",
          "paymentMethod": "CARD",
          "paymentMethodDetails": {
              "expirationYear": 2028,
              "expirationMonth": 12,
              "pan": "4111111111111111",
              "authMethod": "PAN_ONLY"
          }
      }

ECv1

{
        {
          "messageExpiration": "1507738377032",
          "paymentMethod": "CARD",
          "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
          "paymentMethodDetails": {
            "expirationYear": 2028,
            "expirationMonth": 12,
            "pan": "4111111111111111"
          }
        }
  }
}

بطاقة مميّزة

البطاقة المرمّزة هي بطاقة تمت إضافتها إلى "محفظة Google".

تعتمد حمولة البطاقة التي تم تحويلها إلى رموز على نوع البطاقة المحدّدة. تعرض الأمثلة الثلاثة التالية حمولات تم فك تشفيرها لأنواع مختلفة من البطاقات التي تم تحويلها إلى رموز مميزة.

Visa

في ما يلي مثال على حمولة بيانات تم فك تشفيرها لبطاقات Visa التي تم تحويلها إلى رموز مميّزة:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1561533871082",
    "messageId": "AH2Ejtc8qBlP_MCAV0jJG7ErQKeDrkEUtQ0N3QRvPXWJc-jgC0VTfgmarDRZvTwuzirQPdUjkMkiQ7tnDidZbtlQTO-mAgMIdXRMuYedhZXnCcokmkJOOnE7jBn-pvkyBncOgpPWFFn3",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "4895370012003478",
        "authMethod": "CRYPTOGRAM_3DS",
        "eciIndicator": "07",
        "cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA="
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "dpan": "4895370012003478",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
    "3dsEciIndicator": "07"
  }
}

American Express

في ما يلي مثال على حمولة تم فك تشفيرها لبطاقات American Express التي تم تحويلها إلى رموز مميزة:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1561534208255",
    "messageId": "AH2Ejtf3Lp6LzjK6BswXBvVKZapBJNgMUbVHF_TORaVi7lV0tvRfzvApsZm-RAXF_szQq9qS_BwLTgZGrXvk0ZydZwUISo4x6dxojDoz0fl7loXwZ8JApFrQWU__ExxljKY4Y4mu2aQz",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "370295136149943",
        "authMethod": "CRYPTOGRAM_3DS",
        "cryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "dpan": "370295136149943",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
  }
}

جميع الشبكات الأخرى

في ما يلي مثال على حمولة بيانات تم فك تشفيرها لبطاقات تم تحويلها إلى رموز مميّزة لجميع الشبكات الأخرى:

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1561534208255",
    "messageId": "AH2EjterqtEqlB9vQvy2kJEugwCDYtMzVtLrVH26Qd1RDFK_EFsFmPdpPOqcCIedXNpAc6sCM61GuYM_bgVl930tU8I0Ar0WUx87MIw36skUC-IT_APvbx4qRqw9Hfu2W-7zY6LMdgZ5",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "5204240250197840",
        "authMethod": "CRYPTOGRAM_3DS",
        "cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "dpan": "5204240250197840",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
  }
}