دکمه وب جاوا اسکریپت

Google Wallet API به کاربران شما امکان می‌دهد از وب یک شی به Google Wallet اضافه کنند. کاربران می توانند کارت های خود را مستقیماً از وب سایت شما اضافه کنند.

این مرجع جزئیاتی در مورد عنصر HTML g:savetoandroidpay که یک دکمه API Google Wallet را ارائه می‌کند و همچنین JSON Web Token که سرویس وب شما را برای Google توصیف می‌کند، ارائه می‌کند.

Google Wallet API JavaScript

برای تجزیه خودکار تگ‌های HTML g:savetoandroidpay در بارگذاری، جاوا اسکریپت استاندارد را شامل می‌شود

<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 و JWTs را در سمت سرور رندر می کنید از این تگ استفاده کنید.

<g:savetoandroidpay jwt="JWT" onsuccess="successHandler" onfailure="failureHandler" />
رشته تایپ کنید ضروری شرح
height رشته ن ارتفاع دکمه برای نمایش مقادیر ممکن عبارتند از: small (30px بالا) و standard (38px بالا). height پیش فرض small است. برای مشاهده نمونه‌هایی از دکمه‌ها با تنظیمات height مختلف به دکمه‌های Google Wallet API مراجعه کنید.
jwt رشته Y Google Wallet API JWT.
onsuccess رشته ن نام رشته تابع کنترل کننده بازگشت به تماس موفقیت آمیز ذخیره.
onfailure رشته ن نام رشته تابع کنترل کننده بازگشت تماس شکست ذخیره. این تابع یک شی خطا حاوی errorCode و errorMessage ارسال می شود.
onprovidejwt رشته ن نام رشته تابع ارائه JWT handler. هدف از این تابع رهگیری و به طور بالقوه دستکاری داده های JWT قبل از افزودن شی به Google Wallet است. این تابع هیچ پارامتری دریافت نمی کند و باید JWT را به عنوان رشته برگرداند. هنگام پیاده‌سازی کنترل‌کننده رویداد، داده‌های اصلی JWT را می‌توان در فیلد this.getOpenParams().renderData.userParams.jwt بازیابی کرد.
size رشته ن عرض دکمه برای نمایش می توانید size روی matchparent تنظیم کنید تا عرض آن با عرض عنصر والد مطابقت داشته باشد. یا size تعریف نشده رها کنید تا عرض آن متناسب با عرض تنظیم text باشد. برای مشاهده نمونه هایی از دکمه ها با تنظیمات size مختلف به دکمه های Google Wallet API مراجعه کنید.
text رشته ن منسوخ
textsize رشته ن وقتی textsize=large مشخص شده باشد، اندازه متن و اندازه دکمه به طور چشمگیری افزایش یافته است، برای مواردی که نیازهای UI خاص دارند.
theme رشته ن تم دکمه برای نمایش. مقادیر ممکن عبارتند از: dark و light . تم پیش فرض dark است. برای مشاهده نمونه‌هایی از دکمه‌ها با تنظیمات theme مختلف به دکمه‌های Google Wallet API مراجعه کنید.

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 Objects همیشه google خواهد بود.
typ رشته Y نوع JWT. مخاطبان Google Wallet API Objects همیشه savetowallet خواهند بود.
iat عدد صحیح Y صادر شده در زمان در ثانیه از زمان.
payload هدف - شی Y جسم بار.
payload.eventTicketClasses آرایه ن کلاس بلیط رویداد برای صرفه جویی.
payload.eventTicketObjects آرایه ن رویداد Ticket Object برای ذخیره.
payload.flightClasses آرایه ن کلاس پرواز برای صرفه جویی.
payload.flightObjects آرایه ن Flight Object برای ذخیره.
payload.giftCardClasses آرایه ن کلاس کارت هدیه برای صرفه جویی.
payload.giftCardObjects آرایه ن شی کارت هدیه برای ذخیره.
payload.loyaltyClasses آرایه ن کلاس وفاداری برای پس انداز.
payload.loyaltyObjects آرایه ن هدف وفاداری برای ذخیره.
payload.offerObjects آرایه ن Object را برای ذخیره پیشنهاد کنید.
payload.offerClasses آرایه ن کلاس را برای صرفه جویی پیشنهاد دهید.
payload.transitObjects آرایه ن انتقال شی برای ذخیره.
payload.transitClasses آرایه ن کلاس حمل و نقل برای صرفه جویی.
origins آرایه Y مجموعه ای از دامنه ها برای تأیید عملکرد ذخیره JWT. وقتی فیلد origins تعریف نشده باشد، دکمه Google Wallet API ارائه نمی شود. هنگامی که فیلد مبدا تعریف نشده باشد، به طور بالقوه می توانید پیام های "بارگذاری توسط X-Frame-Options رد شد" یا "رد نمایش داده شود" را در کنسول مرورگر دریافت کنید.

JWT کدگذاری شده شما باید شبیه به مثال زیر باشد:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJnb29nbGUiLCJvcmlnaW5zIjpbImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSJdLCJpc3MiOiJzMmFwLXRvb2wuZ29vZ2xlLmNvbUBhcHBzcG90LmdzZXJ2aWNlYWNjb3VudC5jb20iLCJpYXQiOjE1NTE5ODcxNTEsInR5cCI6InNhdmV0b3dhbGxldCIsInBheWxvYWQiOnsib2ZmZXJPYmplY3RzIjpbeyJpZCI6IjMyMDI0MTMyNDE4NDM2OTk0MDEuMDFfT2ZmZXJPYmplY3RJZCJ9XX19.maHX40WWT29TC_kEb90EKQBH9AiTYAZR3153K8UI7fznVnfjVdlwsH_GKTECV3PGXdNnKCcmatUbKsONC0bxrnAHYG02kuvA1D3hSctz_amU66ntsvGIDe13mpxTzhI8fPvt9KMP1iaO7uOJuLQIHwipu4uRFAjyFaHGVaSFaP9c53qQyb_Zgyyk50M-MhH2n4kDpstNCqUJKWaadQkOWjrtMjwGzQ_ME04lbR4wb_mfK1A7Rc1UieWkxM9aMl5TOPubBKxKRRk_CqillN8XoTl9MI5RRGPuElVO28zGpYlFS6BarzDaaUfmbRZGvfF8ZiKrHZKxVrJjfZIJ2TCcDw

تابع gapi.savetoandroidpay.render

این عملکرد به شما امکان می دهد دکمه API Google Wallet را به صراحت رندر کنید.

gapi.savetoandroidpay.render("dom-container",{
  "jwt": "JWT",
  "onsuccess": "successHandler",
  "onfailure": "failureHandler"
});
رشته تایپ کنید ضروری شرح
dom-container رشته Y شناسه کانتینر برای قرار دادن دکمه Google Wallet API.
jwt رشته Y JWT محتوا را برای ذخیره تعریف می کند.
onsuccess رشته ن نام رشته تابع کنترل کننده بازگشت به تماس موفقیت آمیز ذخیره.
onfailure رشته ن نام رشته تابع کنترل کننده بازگشت تماس شکست ذخیره. این تابع یک شی خطا حاوی errorCode و errorMessage ارسال می شود.
onprovidejwt رشته ن نام رشته تابع ارائه JWT handler. هدف از این تابع رهگیری و به طور بالقوه دستکاری داده های JWT قبل از افزودن شی به Google Wallet است. این تابع هیچ پارامتری دریافت نمی کند و باید JWT را به عنوان رشته برگرداند. هنگام پیاده‌سازی کنترل‌کننده رویداد، داده‌های اصلی JWT را می‌توان در فیلد this.getOpenParams().renderData.userParams.jwt بازیابی کرد.

کدهای خطا و پیام های API Google Wallet

جداول زیر کدهای خطا و پیام‌های خطای پیش‌فرض را فهرست می‌کنند که در شی خطا به عملکرد برگشت تماس شکست خورده ارسال می‌شوند، زمانی که یک شی با موفقیت با استفاده از دکمه جاوا اسکریپت ذخیره نمی‌شود.

        {
          "errorCode": "errorCode",
          "errorMessage": "errorMessage"
        }
errorCode errorMessage
SERVICE_FAILURE خطایی در سرور Google Wallet رخ داد.
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 نشانی اینترنتی مبدا نادرست است. آدرس اینترنتی باید حاوی یک پروتکل و دامنه باشد.
MISSING_ORIGIN مبدا باید مشخص شود.
MISSING_FIELDS شی یا کلاس محصور، فیلدهای الزامی را ندارد.

بومی سازی

زبان در دکمه جاوا اسکریپت بر اساس معیارهای زیر تغییر می کند:

  1. اگر کاربر وارد Google شده باشد، دکمه به زبان دلخواه ارائه شده در نمایه حساب Google کاربر نمایش داده می شود. کاربر می‌تواند تغییر زبان را بخواند تا نحوه تغییر زبان دلخواه حساب Google خود را بیاموزد.
  2. اگر کاربر وارد Google نشده باشد، دکمه از مقدار ACCEPT-LANGUAGE در هدر HTTP استفاده می کند.

اگر متوجه شدید که دکمه بر اساس منطق بالا به زبان صحیح ارائه نمی شود، یا اگر عبارت غیر طبیعی است، با تیم پشتیبانی ما تماس بگیرید .