选择以下一种卡券类别可详细了解其使用方式。
此部分包含礼品卡的代码段。它涵盖以下类和对象:
JSON GiftCardClass
定义了 GiftCardClass
后,您可以通过向以下 REST URI 发出 POST
请求来插入此类:
https://walletobjects.googleapis.com/walletobjects/v1/giftCardClass
将 strict=true
参数添加到 REST URI 以启用严格的错误解析并捕获其他错误,例如重复的 ID 字段:
https://walletobjects.googleapis.com/walletobjects/v1/giftCardClass?strict=true
以下示例显示了表示 GiftCardClass
的 JSON 资源。必须在 POST
请求的正文中发送 JSON。以下代码示例详细演示了如何定义和插入 GiftCardClass
。
资源
{ "kind" : "walletobjects#giftCardClass", "id" : "1234567890.ExampleGCClass", "issuerName" : "Baconrista", "merchantName" : "Baconrista", "programLogo" : { "kind" : "walletobjects#image", "sourceUri" : { "kind" : "walletobjects#uri", "uri" : "https://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg" } }, "textModulesData" : [ { "header" : "Where to Redeem", "body" : "All US gift cards are redeemable in any US and Puerto Rico" + " Baconrista retail locations, or online at Baconrista.com where" + " available, for merchandise or services." } ], "linksModuleData" : { "uris" : [ { "kind" : "walletobjects#uri", "uri" : "https://www.baconrista.com/", "description" : "Baconrista" } ] }, "locations" : [{ "kind" : "walletobjects#latLongPoint", "latitude" : 37.422601, "longitude" : -122.085286 }], "reviewStatus" : "underReview", "hexBackgroundColor": "#ffffff", "heroImage": { "kind": "walletobjects#image", "sourceUri": { "kind": "walletObjects#uri", "uri": "https://farm8.staticflickr.com/7302/11177240353_115daa5729_o.jpg" } } }
Java
// Define Text Module Data List<TextModuleData> textModulesData = new ArrayList<TextModuleData>(); TextModuleData textModuleData = new TextModuleData().setHeader("Where to Redeem") .setBody("All US gift cards are redeemable in any US and Puerto Rico " + "Baconrista retail locations, or online at Baconrista.com where" + "available, for merchandise or services."); textModulesData.add(textModuleData); // Define Links Module Data List<Uri> uris = new ArrayList<Uri>(); Uri uri1 = new Uri().setDescription("Baconrista").setUri("http://www.baconrista.com/"); uris.add(uri1); LinksModuleData linksModuleData = new LinksModuleData().setUris(uris); // Define Geofence locations List<LatLongPoint> locations = new ArrayList<LatLongPoint>(); locations.add(new LatLongPoint().setLatitude(37.422601).setLongitude( -122.085286)); // Create class GiftCardClass wobClass = new GiftCardClass() .setId("1234567890.ExampleGCClass") .setIssuerName("Baconrista") .setMerchantName("Baconrista") .setProgramLogo( new Image().setSourceUri(new ImageUri() .setUri("http://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg"))) .setTextModulesData(textModulesData) .setLinksModuleData(linksModuleData) .setReviewStatus("underReview").setMultipleDevicesAndHoldersAllowedStatus('multipleHolders') .setLocations(locations); response = client.giftcardclass().insert(wobClass).execute();
PHP
// Define text module data. $textModulesData = array( array( 'header' => 'Where to Redeem', 'body' => 'All US gift cards are redeemable in any US and Puerto Rico ' . 'Baconrista retail locations, or online at Baconrista.com where ' . 'available, for merchandise or services.' ) ); // Define links module data. $linksModuleData = new Google_Service_Walletobjects_LinksModuleData(); $uris = array ( array( 'uri' => 'http://www.baconrista.com', 'kind' => 'walletobjecs#uri', 'description' => 'Baconrista' ) ); $linksModuleData->setUris($uris); // A list of locations at which the Gift card Class can be used. $locations = array( array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.422601, 'longitude' => -122.085286 ) ); // Source uri of program logo. $uriInstance = new Google_Service_Walletobjects_ImageUri(); $imageInstance = new Google_Service_Walletobjects_Image(); $uriInstance->setUri( 'http://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg' ); $imageInstance->setSourceUri($uriInstance); // Create wallet class. $giftCardClass = new Google_Service_Walletobjects_GiftCardClass(); $giftCardClass->setId('1234567890.ExampleGCClass'); $giftCardClass->setIssuerName('Baconrista'); $giftCardClass->setMerchantName('Baconrista'); $giftCardClass->setProgramLogo($imageInstance); $giftCardClass->setLinksModuleData($linksModuleData); $giftCardClass->setTextModulesData($textModulesData); $giftCardClass->setReviewStatus('underReview'); $giftCardClass->setMultipleDevicesAndHoldersAllowedStatus('multipleHolders'); $giftCardClass->setLocations($locations); $service->giftcardclass->insert($giftCardClass);
Python
giftcard_class = { 'kind': 'walletobjects#giftCardClass', 'id': '1234567890.ExampleGCClass', 'issuerName': 'Baconrista', 'merchantName': 'Baconrista', 'issuerData': { 'kind': 'walletobjects#typedValue' }, 'programLogo': { 'kind': 'walletobjects#image', 'sourceUri': { 'kind': 'walletobjects#uri', 'uri': 'http://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg' } }, 'textModulesData': [{ 'header': 'Where to Redeem', 'body': 'All US gift cards are redeemable in any US and Puerto Rico' + ' Baconrista retail locations, or online at Baconrista.com where' ' available, for merchandise or services.' }], 'linksModuleData': { 'uris': [ { 'kind': 'walletobjects#uri', 'uri': 'http://www.baconrista.com', 'description': 'Baconrista' }] }, 'locations': [{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.422601, 'longitude': -122.085286 }], 'multipleDevicesAndHoldersAllowedStatus': 'multipleHolders', 'reviewStatus': 'underReview' } api_request = service.giftcardclass().insert(body=giftcard_class) api_response = api_request.execute()
JSON GiftCardObject
以下示例定义了 GiftCardObject
:
资源
{ "kind" : "walletobjects#giftCardObject", "classId" : "1234567890.ExampleGCClass", "id" : "1234567890.ExampleGCObject", "cardNumber" : "123jkl4889", "pin" : "1111", "eventNumber" : "123456", "balance" : { "kind" : "walletobjects#money", "micros" : 20000000, "currencyCode" : "USD" }, "balanceUpdateTime" : { "date" : '2014-01-12T23:20:50.52Z' }, "barcode" : { "alternateText" : "12345", "type" : "qrCode", "value" : "28343E3" }, "textModulesData" : [{ "header" : "Earn double points", "body" : "Jane, don't forget to use your Baconrista Rewards when " + "paying with this gift card to earn additional points" }], "linksModuleData" : { "uris" : [ { "kind" : "walletobjects#uri", "uri" : "https://www.baconrista.com/mybalance?id=1234567890", "description" : "My Baconrista Gift Card Purchases" }] }, "state" : "active" }
Java
Barcode barcode = new Barcode().setType("qrCode") .setValue("28343E3") .setAlternateText("12345") Money balance = new Money(); balance.setCurrencyCode("USD"); balance.setMicros(20000000L); DateTime balanceUpdateTime = new DateTime(); balanceUpdateTime.setDate(new com.google.api.client.util.DateTime(new Date())); // Define Text Module Data List<TextModuleData> textModulesData = new ArrayList<TextModuleData>(); TextModuleData textModuleData = new TextModuleData() .setHeader("Earn double points") .setBody("Jane, don't forget to use your Baconrista Rewards when " + "paying with this gift card to earn additional points"); textModulesData.add(textModuleData); // Define Links Module Data List<Uri> uris = new ArrayList<Uri>(); Uri uri1 = new Uri().setDescription("My Baconrista Gift Card Purchases") .setUri("http://www.baconrista.com/mybalance?id=1234567890"); uris.add(uri1); LinksModuleData linksModuleData = new LinksModuleData().setUris(uris); // Define Wallet Instance GiftCardObject object = new GiftCardObject() .setClassId("1234567890.ExampleGCClass").setId("1234567890.ExampleGCObject") .setState("active").setBarcode(barcode) .setTextModulesData(textModulesData) .setLinksModuleData(linksModuleData) .setBalance(balance) .setBalanceUpdateTime(balanceUpdateTime) .setEventNumber("123456").setCardNumber("123jkl4889").setPin("1111");
PHP
// Define barcode type and value. $barcode = new Google_Service_Walletobjects_Barcode(); $barcode->setAlternateText('12345'); $barcode->setType('qrCode'); $barcode->setValue('28343E3'); // Define text module data. $textModulesData = array( array( 'header' => 'Earn double points', 'body' => 'Jane, don\'t forget to use your Baconrista Rewards when '. 'paying with this gift card to earn additional points' ) ); // Define links module data. $linksModuleData = new Google_Service_Walletobjects_LinksModuleData(); $uris = array ( array( 'uri' => 'http://www.baconrista.com/mybalance?id=1234567890', 'kind' => 'walletobjecs#uri', 'description' => 'My Baconrista Gift Card Purchases' ) ); $linksModuleData->setUris($uris); $balance = new Google_Service_Walletobjects_Money(); $balance->setKind('walletobjects#money'); $balance->setMicros(20000000); $balance->setCurrencyCode('USD'); $balanceUpdateTime = new Google_Service_Walletobjects_DateTime(); date_default_timezone_set('UTC'); $balanceUpdateTime->setDate(date("Y-m-d\TH:i:s.u\Z")); // Create wallet object. $giftCardObject = new Google_Service_Walletobjects_GiftCardObject(); $giftCardObject->setClassId("1234567890.ExampleGCClass"); $giftCardObject->setId("1234567890.ExampleGCObject"); $giftCardObject->setState('active'); $giftCardObject->setBarcode($barcode); $giftCardObject->setLinksModuleData($linksModuleData); $giftCardObject->setTextModulesData($textModulesData); $giftCardObject->setBalance($balance); $giftCardObject->setBalanceUpdateTime($balanceUpdateTime); $giftCardObject->setCardNumber('123jkl4889'); $giftCardObject->setEventNumber('123456'); $giftCardObject->setPin('1111');
Python
giftcard_object = { 'kind' : 'walletobjects#giftCardObject', 'classId' : '1234567890.ExampleGCClass', 'id' : '1234567890.ExampleGCObject', 'cardNumber' : '123jkl4889', 'pin' : '1111', 'eventNumber' : '123456', 'balance' : { 'kind' : 'walletobjects#money', 'micros' : 20000000, 'currencyCode' : 'USD' }, 'balanceUpdateTime' : { 'date' : datetime.datetime.utcnow().isoformat("T") + "Z" }, 'barcode' : { 'alternateText' : '12345', 'type' : 'qrCode', 'value' : '28343E3' }, 'textModulesData': [{ 'header': 'Earn double points', 'body': 'Jane, don\'t forget to use your Baconrista Rewards when ' + 'paying with this gift card to earn additional points. ' }], 'linksModuleData': { 'uris': [ { 'kind': 'walletobjects#uri', 'uri': 'http://www.baconrista.com/mybalance?id=1234567890', 'description': 'My Baconrista Gift Card Purchases' }] }, 'state': 'active' }
插入 GiftCardObject
有两种方法。
第一种方法是向以下 REST URI 发送 POST
请求(在请求正文中定义对象):
https://walletobjects.googleapis.com/walletobjects/v1/giftCardObject
第二种方法是根据 GiftCardObject
定义创建 JWT,并将 JWT 放入保存到 Google Pay 按钮。如需了解详情,请参阅在网页上添加按钮。
使用 Android API 添加 GiftCardObject
您可以使用 Android API 电子钱包 SDK 软件包插入以下示例 GiftCardObject
:
//Define Messages Data List messages = new ArrayList(); WalletObjectMessage message = WalletObjectMessage.newBuilder() .setHeader("Hi Jane!") .setBody("Thanks for saving your gift card.") .build(); messages.add(message); // Define Links Module Data List linkModulesData = new ArrayList(); UriData uri1 = new UriData("http://www.baconrista.com/mybalance?id=1234567890", "My Baconrista Gift Card Purchases"); linkModulesData.add(uri1); // Define Text Module Data List textModulesData = new ArrayList(); TextModuleData textModuleData = new TextModuleData("Jane's Baconrista Gift Card", "Use your gift card when you purchase your next bacon fat latte!"); textModulesData.add(textModuleData); // Build and Return New Gift Card Object return GiftCardWalletObject.newBuilder() .setId("2967745143867465930.GiftCardObjectBarcodeTextTest4") .setClassId("2967745143867465930.GiftCardClass1501161237") .setState(WalletObjectsConstants.State.ACTIVE) .setCardNumber("1234567890") .setPin("1234") .setTitle("This is my GiftCard") .setBalanceMicros(1000000) .setBalanceCurrencyCode("USD") .setBalanceUpdateTime(1425943338) .setEventNumber("1") .setIssuerName("Baconrista") .setBarcodeType("qrCode") .setBarcodeValue("28343E3") .setBarcodeAlternateText("12345") .addMessages(messages) .addLinksModuleDataUris(linkModulesData) .addTextModulesData(textModulesData) .build();
有关详情,请参阅将卡券保存到 Google Pay。