בדף הזה מוסבר איך להשתמש בטוקנים לדוגמה כדי לבדוק את השילוב.
יצירת טוקנים לדוגמה
באינטגרציות ישירות, כדי לבדוק את פענוח האסימון בשרת, אפשר ליצור אסימונים לדוגמה אם מגדירים את ENVIRONMENT_TEST כשיוצרים מופע של PaymentsClient.
כשמופע PaymentsClient נוצר עם הסביבה שמוגדרת ל-ENVIRONMENT_TEST, הקריאות ל-loadPaymentData פועלות כרגיל ומבקשות מהמשתמש לבחור אחד מהכרטיסים האמיתיים שלו. עם זאת, הוא אף פעם לא מחזיר מידע אמיתי מהכרטיס שנבחר, ובמקום זאת, הטוקן שמתקבל תמיד מכיל מטען ייעודי קבוע.
אימות החתימה
הטוקנים שנוצרו ב-ENVIRONMENT_TEST מוצפנים באמצעות המפתח הציבורי לבדיקה ששלחתם קודם ל-Google.
האסימונים נחתמים באמצעות
מפתחות הבדיקה של Google. אם אתם משתמשים ב-Tink, ודאו ש-.fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) מוגדר כשאתם יוצרים אובייקט PaymentMethodTokenRecipient.
מטען ייעודי מפוענח
אחרי שהאסימון לדוגמה מפוענח, מקבלים את מטען הייעודי (payload) בטקסט רגיל. מבנה ה-payload תלוי בכך שהכרטיס שנבחר עבר טוקניזציה, כלומר נוסף ל-Google Wallet. בנוסף, המטען הייעודי (payload) של כרטיסים שעברו טוקניזציה שונה, והוא תלוי ברשת הכרטיסים. המטען הייעודי (payload) של כרטיסים שלא עברו טוקניזציה הוא תמיד זהה, ללא קשר לרשת הכרטיסים.
יכול להיות שהערכים של שלושת השדות הבאים במטען הייעודי (payload) המפוענח יהיו שונים מהדוגמאות שבהמשך:
-
messageExpiration: מוגדר שבוע מהשעה הנוכחית. -
messageId: הערך הזה נוצר באופן אקראי עבור כל מטען ייעודי. -
expirationYear: מוגדר חמש שנים מהשנה הנוכחית.
המבנה של מטען הייעודי (payload) המפוענח משתנה בין שתי גרסאות פרוטוקול, ECv1 ו-ECv2. אם מטמיעים שילוב חדש, הגרסה היא ECv2. אם אתם לא בטוחים איזו גרסת פרוטוקול מתאימה לכם, אתם יכולים לפנות לאיש הקשר שלכם ב-Google כדי לקבל אישור.
כרטיס לא מטוּקן
ויזה
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי ויזה לא מטוּקנים:
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"
}
}מאסטרקארד
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי מאסטרקארד לא מטוּקנים:
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"
}
}אמריקן אקספרס
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי אמריקן אקספרס לא מטוּקנים:
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
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי 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
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי 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 Wallet.
המטען הייעודי (payload) המפוענח של כרטיס שעבר טוקניזציה תלוי בסוג הכרטיס שנבחר. שלוש הדוגמאות הבאות מציגות מטען ייעודי מפוענח לסוגים שונים של כרטיסים שעברו טוקניזציה.
ויזה
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי ויזה שעברו טוקניזציה:
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"
}
}אמריקן אקספרס
דוגמה למטען ייעודי (payload) מפוענח של כרטיסי אמריקן אקספרס שעברו טוקניזציה:
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=="
}
}