Selecione uma das seguintes indústrias de cartão para saber mais sobre como ele pode ser usado.
Esta seção contém snippets de código para cartões de fidelidade. Ela abrange as seguintes classes e objetos:
JSON LoyaltyClass
Depois que você tiver definido a LoyaltyClass
, insira-a fazendo uma solicitação POST
ao seguinte URI REST:
https://walletobjects.googleapis.com/walletobjects/v1/loyaltyClass
Adicione o parâmetro strict=true
ao URI REST para ativar a análise de erro rígida e capturar erros extras, como campos de códigos duplicados:
https://walletobjects.googleapis.com/walletobjects/v1/loyaltyClass?strict=true
O exemplo a seguir mostra um recurso JSON representando uma LoyaltyClass
. O JSON precisa ser enviado no corpo da solicitação POST
. Mais especificamente, os exemplos de código a seguir demonstram como definir e inserir o LoyaltyClass
.
Recurso
{ "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
As amostras a seguir definem o LoyaltyObject
:
Recurso
{ "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' }
Há duas maneiras de inserir o LoyaltyObject
.
A primeira maneira é fazer uma solicitação POST
(com objeto definido no corpo) para o seguinte URI REST:
https://walletobjects.googleapis.com/walletobjects/v1/loyaltyObject
A segunda maneira é criar um JSON Web Token (JWT) com base na definição LoyaltyObject
e colocá-lo em um botão Salvar no Google Pay. Para mais informações, consulte Adicionar um botão da Web.
Adicionar LoyaltyObject com a API Android
O seguinte exemplo de LoyaltyObject
pode ser inserido com o uso do pacote de SDK do Wallet da 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();
Para mais informações, consulte Salvar cartões no Google Pay.