Чтобы посмотреть примеры использования, выберите категорию.
В этом разделе содержатся фрагменты кода для карт постоянного клиента. Они касаются следующих классов и объектов:
JSON LoyaltyClass
Когда вы определите переменные класса LoyaltyClass
, добавьте его, отправив запрос POST
на следующий URI архитектуры REST:
https://walletobjects.googleapis.com/walletobjects/v1/loyaltyClass
Добавьте параметр strict=true
в URI архитектуры REST, чтобы включить строгий анализ и найти такие дополнительные ошибки, как повторяющиеся поля идентификаторов:
https://walletobjects.googleapis.com/walletobjects/v1/loyaltyClass?strict=true
Ниже указан пример ресурса JSON с классом LoyaltyClass
. Данные JSON необходимо передавать в запросе POST
. В следующих образцах кода показано, как можно сформировать и добавить класс LoyaltyClass
.
Ресурс
{ "accountIdLabel": "Member Id", "accountNameLabel": "Member Name", "id": "2945482443380251551.ExampleClass1", "issuerName": "Baconrista", "kind": "walletobjects#loyaltyClass", "textModulesData": [ { "header": "Rewards details", "body": "Welcome to Baconrista rewards. Enjoy your rewards for being a loyal customer. " + "10 points for every dollar spent. Redeem your points for free coffee, bacon and more!" } ], "linksModuleData": { "uris": [ { "kind": "walletobjects#uri", "uri": "https://maps.google.com/map?q=google", "description": "Nearby Locations" }, { "kind": "walletobjects#uri", "uri": "tel:6505555555", "description": "Call Customer Service" } ] }, "imageModulesData": [ { "mainImage": { "kind": "walletobjects#image", "sourceUri": { "kind": "walletobjects#uri", "uri": "https://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg", "description": "Coffee beans" } } } ], "messages": [{ "header": "Welcome to Banconrista Rewards!", "body": "Featuring our new bacon donuts.", "kind": "walletobjects#walletObjectMessage" }], "locations": [{ "kind": "walletobjects#latLongPoint", "latitude": 37.424015499999996, "longitude": -122.09259560000001 },{ "kind": "walletobjects#latLongPoint", "latitude": 37.424354, "longitude": -122.09508869999999 },{ "kind": "walletobjects#latLongPoint", "latitude": 37.7901435, "longitude": -122.39026709999997 },{ "kind": "walletobjects#latLongPoint", "latitude": 40.7406578, "longitude": -74.00208940000002 }], "programLogo": { "kind": "walletobjects#image", "sourceUri": { "kind": "walletobjects#uri", "uri": "https://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg" } }, "programName": "Baconrista Rewards", "rewardsTier": "Gold", "rewardsTierLabel": "Tier", "reviewStatus": "underReview", "hexBackgroundColor": "#ffffff", "heroImage": { "kind": "walletobjects#image", "sourceUri": { "kind": "walletobjects#uri", "uri": "https://farm8.staticflickr.com/7302/11177240353_115daa5729_o.jpg" } } }
Java
// Define the Image Module Data List<ImageModuleData> imageModuleData = new ArrayList<ImageModuleData>(); ImageModuleData image = new ImageModuleData().setMainImage( new Image().setSourceUri( new ImageUri().setUri("http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg"))); imageModuleData.add(image); // Define Text Module Data List<TextModuleData> textModulesData = new ArrayList<TextModuleData>(); TextModuleData textModuleData = new TextModuleData().setHeader("Rewards details") .setBody( "Welcome to Baconrista rewards. Enjoy your rewards for being a loyal customer. 10 points for ever dollar spent. Redeem your points for free coffee, bacon and more!"); textModulesData.add(textModuleData); // Define Links Module Data List<Uri> uris = new ArrayList<Uri>(); Uri uri1 = new Uri().setDescription("Nearby Locations").setUri("http://maps.google.com/?q=google"); Uri uri2 = new Uri().setDescription("Call Customer Service").setUri("tel:6505555555"); uris.add(uri1); uris.add(uri2); LinksModuleData linksModuleData = new LinksModuleData().setUris(uris); // Define general messages List<Message> messages = new ArrayList<Message>(); Message message = new Message() .setHeader("Welcome to Baconrista") .setBody("Featuring our new bacon donuts."); messages.add(message); // Define Geofence locations List<LatLongPoint> locations = new ArrayList<LatLongPoint>(); locations.add(new LatLongPoint().setLatitude(37.422601).setLongitude( -122.085286)); locations.add(new LatLongPoint().setLatitude(37.424354).setLongitude( -122.09508869999999)); locations.add(new LatLongPoint().setLatitude(40.7406578).setLongitude( -74.00208940000002)); // Create class LoyaltyClass wobClass = new LoyaltyClass() .setId('2945482443380251551.ExampleClass1') .setIssuerName("Baconrista") .setProgramName("Baconrista Rewards") .setProgramLogo( new Image().setSourceUri(new ImageUri() .setUri("http://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg"))) .setRewardsTierLabel("Tier").setRewardsTier("Gold") .setImageModulesData(imageModuleData) .setTextModulesData(textModulesData) .setLinksModuleData(linksModuleData) .setAccountNameLabel("Member Name").setAccountIdLabel("Member Id") .setMessages(messages) .setReviewStatus("underReview").setMultipleDevicesAndHoldersAllowedStatus("multipleHolders") .setLocations(locations); LoyaltyClass response = client.loyaltyclass().insert(wobClass).execute();
PHP
// Define text module data. $textModulesData = array( array( 'header' => 'Rewards details', 'body' => 'Welcome to Baconrista rewards. Enjoy your rewards for being a loyal customer. ' . '10 points for every dollar spent. Redeem your points for free coffee, bacon and more!' ) ); // Define links module data. $linksModuleData = new Google_Service_Walletobjects_LinksModuleData(); $uris = array ( array( 'uri' => 'http://maps.google.com/map?q=google', 'kind' => 'walletobjecs#uri', 'description' => 'Nearby Locations' ), array( 'uri' => 'tel:6505555555', 'kind' => 'walletobjecs#uri', 'description' => 'Call Customer Service' ) ); $linksModuleData->setUris($uris); $uriModuleImageInstance = new Google_Service_Walletobjects_ImageUri(); $uriModuleImageInstance->setUri( 'http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg' ); $uriModuleImageInstance->setDescription('Coffee beans'); $imageModuleImageInstance = new Google_Service_Walletobjects_Image(); $imageModuleImageInstance->setSourceUri($uriModuleImageInstance); $imagesModuleData = new Google_Service_Walletobjects_ImageModuleData(); $imagesModuleData->setMainImage($imageModuleImageInstance); $imagesModuleDataArr = array ($imagesModuleData); // Messages to be displayed to all users of Wallet Objects. $messages = array(array( 'header' => 'Welcome to Banconrista Rewards!', 'body' => 'Featuring our new bacon donuts.', 'kind' => 'walletobjects#walletObjectMessage' )); $locations = array( array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.424015499999996, 'longitude' => -122.09259560000001 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.424354, 'longitude' => -122.09508869999999 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.7901435, 'longitude' => -122.39026709999997 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 40.7406578, 'longitude' => -74.00208940000002 ) ); // 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. $wobClass = new Google_Service_Walletobjects_LoyaltyClass(); $wobClass->setId('2945482443380251551.ExampleClass1'); $wobClass->setIssuerName('Baconrista'); $wobClass->setProgramName('Baconrista Rewards'); $wobClass->setProgramLogo($imageInstance); $wobClass->setRewardsTierLabel('Tier'); $wobClass->setRewardsTier('Gold'); $wobClass->setAccountNameLabel('Member Name'); $wobClass->setAccountIdLabel('Member Id'); $wobClass->setLinksModuleData($linksModuleData); $wobClass->setTextModulesData($textModulesData); $wobClass->setImageModulesData($imagesModuleDataArr); $wobClass->setMessages($messages); $wobClass->setReviewStatus('underReview'); $wobClass->setMultipleDevicesAndHoldersAllowedStatus('multipleHolders'); $wobClass->setLocations($locations); $service->loyaltyclass->insert($wobClass);
Python
loyalty_class = { 'accountIdLabel': 'Member Id', 'accountNameLabel': 'Member Name', 'multipleDevicesAndHoldersAllowedStatus': 'multipleHolders', 'id': '2945482443380251551.ExampleClass1', 'issuerName': 'Baconrista', 'kind': 'walletobjects#loyaltyClass', 'locations': [{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.424015499999996, 'longitude': -122.09259560000001 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.424354, 'longitude': -122.09508869999999 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.7901435, 'longitude': -122.39026709999997 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 40.7406578, 'longitude': -74.00208940000002 }], 'textModulesData': [{ 'header': 'Rewards details', 'body': 'Welcome to Baconrista rewards. Enjoy your rewards for being a loyal customer. ' + '10 points for ever dollar spent. Redeem your points for free coffee, bacon and more! ' }], 'linksModuleData': { 'uris': [ { 'kind': 'walletobjects#uri', 'uri': 'http://maps.google.com/map?q=google', 'description': 'Nearby Locations' },{ 'kind': 'walletobjects#uri', 'uri': 'tel:6505555555', 'description': 'Call Customer Service' }] }, 'imageModulesData': [ { 'mainImage': { 'kind': 'walletobjects#image', 'sourceUri': { 'kind': 'walletobjects#uri', 'uri': 'http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg', 'description': 'Coffee beans' } } } ], 'messages': [{ 'header': 'Welcome to Banconrista Rewards!', 'body': 'Featuring our new bacon donuts.', 'kind': 'walletobjects#walletObjectMessage' }], 'programLogo': { 'kind': 'walletobjects#image', 'sourceUri': { 'kind': 'walletobjects#uri', 'uri': 'http://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg' } }, 'programName': 'Baconrista Rewards', 'rewardsTier': 'Gold', 'rewardsTierLabel': 'Tier', 'reviewStatus': 'underReview', } api_request = service.loyaltyclass().insert(body=loyalty_class) api_response = api_request.execute()
JSON LoyaltyObject
В приведенных ниже примерах определяется объект LoyaltyObject
:
Ресурс
{ "classId": "2945482443380251551.ExampleClass1", "id": "2945482443380251551.ExampleObject1", "accountId": "1234567890", "accountName": "Jane Doe", "barcode": { "alternateText": "12345", "type": "qrCode", "value": "28343E3" }, "textModulesData": [{ "header": "Jane's Baconrista Rewards", "body": "Save more at your local Mountain View store Jane. " + "You get 1 bacon fat latte for every 5 coffees purchased. " + "Also just for you, 10% off all pastries in the Mountain View store." }], "linksModuleData": { "uris": [ { "kind": "walletobjects#uri", "uri": "https://www.baconrista.com/myaccount?id=1234567890", "description": "My Baconrista Account" }] }, "infoModuleData": { "labelValueRows": [{ "columns": [{ "label": "Next Reward in", "value": "2 coffees" }, { "label": "Member Since", "value": "01/15/2013" }] }, { "columns": [{ "label": "Local Store", "value": "Mountain View" }] }], "showLastUpdateTime": "true" }, "loyaltyPoints": { "balance": { "string": "5000" }, "label": "Points", "pointsType": "points" }, "messages": [{ "header": "Jane, welcome to Banconrista Rewards!", "body": "Thanks for joining our program. Show this message to " + "our barista for your first free coffee on us!" }], "state": "active" }
Java
// Define Barcode Barcode barcode = new Barcode().setType("qrCode") .setValue("28343E3") .setAlternateText("12345"); // Define Points LoyaltyPoints points = new LoyaltyPoints() .setLabel("Points") .setPointsType("points") .setBalance(new LoyaltyPointsBalance().setString("500")); // Define Text Module Data List<TextModuleData> textModulesData = new ArrayList<TextModuleData>(); TextModuleData textModuleData = new TextModuleData() .setHeader("Jane's Baconrista Rewards") .setBody( "Save more at your local Mountain View store Jane. You get 1 bacon fat latte for every 5 coffees purchased. Also just for you, 10% off all pastries in the Mountain View store."); textModulesData.add(textModuleData); // Define Links Module Data List<Uri> uris = new ArrayList<Uri>(); Uri uri1 = new Uri().setDescription("My Baconrista Account") .setUri("http://www.baconrista.com/myaccount?id=1234567890"); uris.add(uri1); LinksModuleData linksModuleData = new LinksModuleData().setUris(uris); // Define Info Module List<LabelValue> row0cols = new ArrayList<LabelValue>(); LabelValue row0col0 = new LabelValue().setLabel("Next Reward in") .setValue("2 coffees"); LabelValue row0col1 = new LabelValue().setLabel("Member Since") .setValue("01/15/2013"); row0cols.add(row0col0); row0cols.add(row0col1); List<LabelValue> row1cols = new ArrayList<LabelValue>(); LabelValue row1col0 = new LabelValue().setLabel("Local Store") .setValue("Mountain View"); row1cols.add(row1col0); List<LabelValueRow> rows = new ArrayList<LabelValueRow>(); LabelValueRow row0 = new LabelValueRow().setColumns(row0cols); LabelValueRow row1 = new LabelValueRow().setColumns(row1cols); rows.add(row0); rows.add(row1); InfoModuleData infoModuleData = new InfoModuleData() .setShowLastUpdateTime(true) .setLabelValueRows(rows); // Define general messages List<Message> messages = new ArrayList<Message>(); Message message = new Message() .setHeader("Hi Jane!") .setBody("Thanks for joining our program. Show this message to " + "our barista for your first free coffee on us!"); messages.add(message); // Define Wallet Instance LoyaltyObject object = new LoyaltyObject() .setClassId('2945482443380251551.ExampleClass1').setId('2945482443380251551.ExampleObject1') .setState("active").setBarcode(barcode).setInfoModuleData(infoModuleData) .setAccountName("Jane Doe").setTextModulesData(textModulesData) .setMessages(messages).setLinksModuleData(linksModuleData) .setAccountId("1234567890").setLoyaltyPoints(points);
PHP
$barcode = new Google_Service_Walletobjects_Barcode(); $barcode->setAlternateText('12345'); $barcode->setType('qrCode'); $barcode->setValue('28343E3'); // Define text module data. $textModulesData = array( array( 'header' => 'Janes Baconrista Rewards', 'body' => 'Save more at your local Mountain View store Jane. ' . 'You get 1 bacon fat latte for every 5 coffees purchased. ' . 'Also just for you, 10% off all pastries in the Mountain View store.' ) ); // Define links module data. $linksModuleData = new Google_Service_Walletobjects_LinksModuleData(); $uris = array ( array( 'uri' => 'http://www.baconrista.com/myaccount?id=1234567890', 'kind' => 'walletobjecs#uri', 'description' => 'My Baconrista Account' ) ); $linksModuleData->setUris($uris); // Define label values. $labelValueRows = array( array( 'columns' => array( array( 'label' => 'Next Reward in', 'value' => '2 coffees' ), array( 'label' => 'Member Since', 'value' => '01/15/2013' ) ) ), array( 'columns' => array( array( 'label' => 'Local Store', 'value' => 'Mountain View' ) ) ) ); // Define info module data. $infoModuleData = new Google_Service_Walletobjects_InfoModuleData(); $infoModuleData->setShowLastUpdateTime(true); $infoModuleData->setLabelValueRows($labelValueRows); // Messages to be displayed. $messages = array(array( 'header' => 'Jane, welcome to Banconrista Rewards!', 'body' => 'Thanks for joining our program. Show this message to '. 'our barista for your first free coffee on us!', 'kind' => 'walletobjects#walletObjectMessage' )); // Reward points a user has. $points = new Google_Service_Walletobjects_LoyaltyPoints(); $balance = new Google_Service_Walletobjects_LoyaltyPointsBalance(); $balance->setString('500'); $points->setBalance($balance); $points->setLabel('Points'); $points->setPointsType('points'); // Create wallet object. $wobObject = new Google_Service_Walletobjects_LoyaltyObject(); $wobObject->setClassId('2945482443380251551.ExampleClass1'); $wobObject->setId('2945482443380251551.ExampleObject1'); $wobObject->setState('active'); $wobObject->setBarcode($barcode); $wobObject->setInfoModuleData($infoModuleData); $wobObject->setLinksModuleData($linksModuleData); $wobObject->setTextModulesData($textModulesData); $wobObject->setAccountName('Jane Doe'); $wobObject->setAccountId('1234567890'); $wobObject->setLoyaltyPoints($points); $wobObject->setMessages($messages);
Python
loyalty_object = { 'classId' : '2945482443380251551.ExampleClass1', 'id' : '2945482443380251551.ExampleObject1', 'accountId': '1234567890', 'accountName': 'Jane Doe', 'barcode': { 'alternateText' : '12345', 'type' : 'qrCode', 'value' : '28343E3' }, 'textModulesData': [{ 'header': 'Jane\'s Baconrista Rewards', 'body': 'Save more at your local Mountain View store Jane. ' + ' You get 1 bacon fat latte for every 5 coffees purchased. ' + 'Also just for you, 10% off all pastries in the Mountain View store.' }], 'linksModuleData': { 'uris': [ { 'kind': 'walletobjects#uri', 'uri': 'http://www.baconrista.com/myaccount?id=1234567890', 'description': 'My Baconrista Account' }] }, 'infoModuleData': { 'labelValueRows': [{ 'columns': [{ 'label': 'Next Reward in', 'value': '2 coffees' }, { 'label': 'Member Since', 'value': '01/15/2013' }] },{ 'columns': [{ 'label': 'Local Store', 'value': 'Mountain View' }] }], 'showLastUpdateTime': 'true' }, 'messages': [{ 'header': 'Jane, welcome to Banconrista Rewards', 'body': 'Thanks for joining our program. Show this message to ' + 'our barista for your first free coffee on us!', 'kind': 'walletobjects#walletObjectMessage' }], 'loyaltyPoints': { 'balance': { 'string': '500' }, 'label': 'Points', 'pointsType': 'points' }, 'state': 'active' }
Объект LoyaltyObject
можно добавить двумя способами.
Первый – создать запрос POST
, содержащий объект с определенными переменными, для следующего URI архитектуры REST:
https://walletobjects.googleapis.com/walletobjects/v1/loyaltyObject
Второй – создать веб-токен JSON (JWT) из объекта LoyaltyObject
и добавить его к кнопке Сохранить в Google Pay. Более подробную информацию можно найти в разделе Как добавить кнопку для сети.
Как добавить объект LoyaltyObject, используя API Android
Следующий образец объекта LoyaltyObject
можно добавить, используя пакет разработчика кошелька для API Android.
// Define Points LoyaltyPoints points = LoyaltyPoints.newBuilder() .setLabel("Points") .setType("points") .setBalance(LoyaltyPointsBalance.newBuilder().setString("500").build()).build(); // Define Text Module Data ListtextModulesData = new ArrayList (); TextModuleData textModuleData = new TextModuleData("Jane's Baconrista Rewards", "Save more at your local Mountain View store Jane. You get 1 bacon fat latte for every 5 coffees purchased. Also just for you, 10% off all pastries in the Mountain View store."); textModulesData.add(textModuleData); // Define Links Module Data List uris = new ArrayList (); UriData uri1 = new UriData("http://www.baconrista.com/myaccount?id=1234567890","My Baconrista Account"); uris.add(uri1); List imageUris = new ArrayList (); UriData uri2 = new UriData("http://examplesite/images/exampleimage2.jpg", "Image Description"); imageUris.add(uri2); // Define Info Module List row0cols = new ArrayList (); LabelValue row0col0 = new LabelValue("Next Reward in","2 coffees"); LabelValue row0col1 = new LabelValue("Member Since", "01/15/2013"); row0cols.add(row0col0); row0cols.add(row0col1); List row1cols = new ArrayList (); LabelValue row1col0 = new LabelValue("Local Store", "Mountain View"); row1cols.add(row1col0); List rows = new ArrayList (); LabelValueRow row0 = LabelValueRow.newBuilder().addColumns(row0cols).build(); LabelValueRow row1 = LabelValueRow.newBuilder().addColumns(row1cols).build(); rows.add(row0); rows.add(row1); // Define general messages List messages = new ArrayList (); WalletObjectMessage message = WalletObjectMessage.newBuilder() .setHeader("Hi Jane!") .setBody("Thanks for joining our program. Show this message to " + "our barista for your first free coffee on us!") .build(); messages.add(message); // Define Geolocations LatLng location = new LatLng(37.422601, -122.085286); List locations = new ArrayList (); locations.add(location); LoyaltyWalletObject wob = LoyaltyWalletObject .newBuilder() .setClassId("2967745143867465930.LoyaltyClass") .setId("2967745143867465930.LoyaltyObject") .setState(WalletObjectsConstants.State.ACTIVE) .setAccountId("1234567890") .setAccountName("Jane Doe") .setIssuerName("Baconrista") .setProgramName("Baconrista Rewards") .setBarcodeType("qrCode") .setBarcodeValue("28343E3") .setBarcodeAlternateText("12345") .setLoyaltyPoints(points) .addTextModulesData(textModulesData) .addLinksModuleDataUris(uris) .addInfoModuleDataLabelValueRows(rows) .addImageModuleDataMainImageUris(imageUris) .addMessages(messages) .addLocations(locations) .build();
Дополнительная информация представлена в статье Сохранение в Google Pay.