زر JavaScript على الويب

تتيح واجهة Google Wallet API للمستخدمين إضافة محتوى إلى "محفظة Google" من الويب. يمكن للمستخدمين إضافة بطاقاتهم مباشرةً من موقعك الإلكتروني.

يوفّر هذا المرجع تفاصيل حول عنصر HTML g:savetoandroidpay الذي يعرض زر Google Wallet API بالإضافة إلى JSON Web Token الذي يصف خدمة الويب الخاصة بك لمحرّك بحث Google.

JavaScript API لمحفظة Google

للتحليل التلقائي لعلامات HTML الخاصة بـ g:savetoandroidpay عند التحميل، يجب تضمين محتوى JavaScript العادي.

<script src="https://apis.google.com/js/platform.js" type="text/javascript"></script>

بالنسبة إلى تطبيقات AJAX والعرض الفاضح لأزرار واجهة برمجة التطبيقات Google Wallet API، ضمِّن المَعلمة "parsetags": "explicit".

<script src="https://apis.google.com/js/platform.js" type="text/javascript">
  {"parsetags": "explicit"}
</script>

علامة HTML g:savetoandroidpay

تحدّد علامة مساحة الاسم g:savetoandroidpay موضع الإعلان والسمات المختلفة للزر "إضافة إلى محفظة Google". استخدِم هذه العلامة إذا كنت تعرض جهة اتصال HTML وJWT.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
الحقل النوع مطلوبة الوصف
height سلسلة N ارتفاع الزر المطلوب عرضه. القيمتان المحتمَلتان هما: small (بارتفاع 30 بكسل) وstandard (بارتفاع 38 بكسل). يتم ضبط السمة height تلقائيًا على small. يمكنك الرجوع إلى أزرار Google Wallet API للاطّلاع على نماذج لأزرار بإعدادات height مختلفة.
jwt سلسلة Y Google Wallet API JWT
onsuccess سلسلة N اسم السلسلة لدالة معالِج استدعاء الحفظ بنجاح.
onfailure سلسلة N اسم السلسلة لدالة معالِج معاودة الاتصال بتعذُّر الحفظ. يتم تمرير هذه الدالة إلى كائن خطأ يحتوي على errorCode وerrorMessage.
onprovidejwt سلسلة N اسم السلسلة لدالة تقديم معالج JWT. والغرض من هذه الوظيفة هو اعتراض بيانات JWT وربما معالجتها قبل إضافة العنصر إلى "محفظة Google". لا تأخذ هذه الدالة أي معلمات، ويجب أن تعرض JWT كسلسلة. عند تنفيذ معالج الأحداث، يمكن استرداد بيانات JWT الأصلية ضمن الحقل this.getOpenParams().renderData.userParams.jwt.
size سلسلة N عرض الزر المطلوب عرضه يمكنك ضبط السمة size على matchparent لكي يتطابق عرض العنصر مع عرض العنصر الرئيسي. أو اترك القيمة size بدون تحديد كي يمتد العرض ليتناسب مع عرض الإعداد text. يمكنك الرجوع إلى أزرار Google Wallet API للاطّلاع على نماذج لأزرار بإعدادات size مختلفة.
text سلسلة N منهي العمل به
textsize سلسلة N عند تحديد textsize=large، يتم عرض حجم نص وحجم زر متزايدَين بشكل كبير، في الحالات التي تتطلّب متطلبات خاصة لواجهة المستخدم.
theme سلسلة N مظهر الزر المطلوب عرضه. القيمتان المحتمَلتان هما: dark وlight. المظهر التلقائي هو dark. يمكنك مراجعة أزرار Google Wallet API للاطّلاع على نماذج لأزرار بإعدادات theme مختلفة.

Google Wallet API JWT

تحدّد Google Wallet API JWT العناصر والفئات المطلوب حفظها.

تمثيل JSON

{
  "iss": "example_service_account@developer.gserviceaccount.com",
  "aud": "google",
  "typ": "savetowallet",
  "iat": 1368029586,
  "payload": {
    "eventTicketClasses": [{
      ... //Event ticket Class JSON
    }],
    "eventTicketObjects": [{
      // Event ticket Object JSON
    }],
    "flightClasses": [{
      // Flight Class JSON
    }],
    "flightObjects": [{
      // Flight Object JSON
    }],
    "giftCardClasses": [{
      // Gift card Class JSON
    }],
    "giftCardObjects": [{
      // Gift card Object JSON
    }],
    "loyaltyClasses": [{
      // Loyalty Class JSON
    }],
    "loyaltyObjects": [{
      // Loyalty Object JSON
    }],
    "offerClasses": [{
      // Offer Class JSON
    }],
    "offerObjects": [{
      // Offer Object JSON
    }],
    "transitClasses": [{
      // Transit Class JSON
    }],
    "transitObjects": [{
      // Transit Object JSON
    }]
  },
  "origins": ["http://baconrista.com", "https://baconrista.com"]
}

الحقول

الحقل النوع مطلوبة الوصف
iss سلسلة Y عنوان البريد الإلكتروني الذي تم إنشاؤه من خلال حساب خدمة Google Cloud
aud سلسلة Y الجمهور سيكون جمهور كائنات Google Wallet API دائمًا google.
typ سلسلة Y نوع JWT. سيكون جمهور كائنات Google Wallet API دائمًا savetowallet.
iat عدد صحيح Y تم إصداره في الوقت بالثواني منذ تاريخ بدء حساب الفترة.
payload الكائن Y كائن الحمولة.
payload.eventTicketClasses مصفوفة N فئة تذكرة الحدث التي يمكن حفظها.
payload.eventTicketObjects مصفوفة N يجب حفظ عنصر تذكرة الحدث.
payload.flightClasses مصفوفة N درجة الرحلة الجوية لحفظها.
payload.flightObjects مصفوفة N حفظ عنصر الطيران.
payload.giftCardClasses مصفوفة N فئة بطاقة الهدايا لحفظها.
payload.giftCardObjects مصفوفة N يجب حفظ عنصر بطاقة الهدايا.
payload.loyaltyClasses مصفوفة N فئة الولاء التي سيتم حفظها.
payload.loyaltyObjects مصفوفة N يجب حفظ عنصر الولاء.
payload.offerObjects مصفوفة N سيتم حفظ عنصر العرض.
payload.offerClasses مصفوفة N احصل على حصة للتوفير.
payload.transitObjects مصفوفة N يجب حفظ عنصر النقل العام.
payload.transitClasses مصفوفة N فئة النقل العام للحفظ.
origins مصفوفة Y مصفوفة من النطاقات للموافقة عليها لوظيفة حفظ JWT. لن يتم عرض زر Google Wallet API عندما لا يتم تحديد الحقل origins. من المحتمل أن تظهر لك رسالة "تم رفض التحميل بواسطة X-Frame-Options" أو "تم رفض العرض" في وحدة تحكّم المتصفّح عندما لا يكون حقل المصادر محددًا.

يجب أن يبدو رمز JWT المشفّر مشابهًا للمثال التالي:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

دالة gapi.savetoandroidpay.render

تتيح لك هذه الوظيفة عرض زر Google Wallet API بشكل واضح.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
الحقل النوع مطلوبة الوصف
dom-container سلسلة Y رقم تعريف الحاوية لوضع زر Google Wallet API
jwt سلسلة Y يحدد JWT المحتوى المطلوب حفظه.
onsuccess سلسلة N اسم السلسلة لدالة معالِج استدعاء الحفظ بنجاح.
onfailure سلسلة N اسم السلسلة لدالة معالِج معاودة الاتصال بتعذُّر الحفظ. يتم تمرير هذه الدالة إلى كائن خطأ يحتوي على errorCode وerrorMessage.
onprovidejwt سلسلة N اسم السلسلة لدالة تقديم معالج JWT. والغرض من هذه الوظيفة هو اعتراض بيانات JWT وربما معالجتها قبل إضافة العنصر إلى "محفظة Google". لا تأخذ هذه الدالة أي معلمات، ويجب أن تعرض JWT كسلسلة. عند تنفيذ معالج الأحداث، يمكن استرداد بيانات JWT الأصلية ضمن الحقل this.getOpenParams().renderData.userParams.jwt.

رموز الخطأ ورسائل الخطأ في Google Wallet API

تسرد الجداول التالية رموز الخطأ ورسائل الخطأ التلقائية التي يتم تمريرها في كائن الخطأ إلى وظيفة معاودة الاتصال بالفشل، عندما لا يتم حفظ الكائن بنجاح باستخدام زر JavaScript.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE حدث خطأ في خادم "محفظة Google".
CLASS_NOT_FOUND لم يتم العثور على الفئة المشار إليها في العنصر.
CLASS_MISMATCH يجب أن يكون الكائن متوفرًا من النوع نفسه، وأن يشير إلى الفئة المضمّنة.
ORIGIN_MISMATCH لا يتطابق مصدر الزر مع العناصر المحدّدة في قائمة المصادر.
INVALID_NUM_TYPES يمكن تحديد نوع واحد من الكائنات.
INVALID_SIGNATURE تعذّر إثبات صحة التوقيع.
INVALID_DUPLICATE_IDS العناصر المكررة أو الفئات غير مسموح بها.
INVALID_JWT JWT غير صالح.
INVALID_EXP_IAT انتهت صلاحية رمز JWT أو تم إصداره في المستقبل.
INVALID_AUD قيمة غير صالحة لحقل AUD.
INVALID_TYP قيمة غير صالحة لحقل TYP.
INVALID_NUM_OBJECTS يمكن تحديد عنصر واحد فقط وفئة واحدة على الأكثر لبطاقات الولاء وبطاقات الهدايا والعروض.
MALFORMED_ORIGIN_URL عنوان URL المصدر مكتوب بشكل غير صحيح. يجب أن يحتوي عنوان URL على بروتوكول ونطاق.
MISSING_ORIGIN يجب تحديد المصدر.
MISSING_FIELDS كان العنصر أو الفئة المغلقة يفتقد إلى الحقول المطلوبة.

ترجمة

تتغير لغة زر JavaScript استنادًا إلى المعايير التالية:

  1. إذا كان المستخدم مسجّلاً الدخول إلى Google، يتم عرض الزر باللغة المفضّلة المحدّدة في الملف الشخصي لحساب Google الخاص بالمستخدم. يمكن للمستخدم الاطّلاع على تغيير اللغة للتعرّف على كيفية تغيير اللغة المفضّلة لحسابه على Google.
  2. إذا لم يسجّل المستخدم الدخول إلى Google، يستخدم الزر قيمة ACCEPT-LANGUAGE في عنوان HTTP.

إذا لاحظت أنّ الزر لا يظهر باللغة الصحيحة بناءً على المنطق أعلاه أو إذا كانت الصياغة غير طبيعية، يمكنك التواصل مع فريق الدعم.