중요한 정보를 업데이트할 때 메시지 추가
모든 카테고리에는 메시지 섹션이 있습니다. 이 섹션에서는 포인트 카드, 기프트 카드, 쿠폰, 이벤트 티켓, 항공 탑승권, 교통카드 프로그램의 변경과 같은 중요한 정보를 중점적으로 다룹니다. 자세한 내용은 패스 유형의 패스 템플릿 페이지를 참조하세요.
insert
, update
, patch
메서드를 사용해서 messages[]
배열 속성을 입력하여 클래스 또는 객체에 메시지를 추가할 수 있습니다. 또는 addMessage
메서드를 통해 기존 메시지에 최대 10개를 추가할 수 있습니다. 자세한 내용은 참조를 확인하세요.
다음 코드는 현재 쿠폰 만료 날짜( validTimeInterval.end)
를 가져온 다음 만료 날짜를 업데이트하고 messages[]
배열에 추가합니다. 이렇게 하면 사용자가 Google Pay 앱에서 저장된 Object
를 볼 때 정보가 변경된 것을 확인할 수 있습니다.
자바
// Get the specific Offer Object OfferObject obj = client.offerobject().get("2945482443380251551.ExampleObject1").execute(); // Update the version, validTimeInterval.end, and add a message obj.setVersion(obj.getVersion() + 1L); obj.setValidTimeInterval(new TimeInterval().setEnd(new DateTime().setDate(new com.google.api.client.util.DateTime(new Date().getTime() + 263000000000L)))); // Get the current messages Listmessages = obj.getMessages(); // Define new message WalletObjectMessage message = new WalletObjectMessage() .setHeader("Important Notice") .setBody("Your offer has been extended!"); // Add the new message about updates to the Offer Object messages.add(message); obj.setMessages(messages); // Update the Offer Object OfferObject returnObj = client.offerobject().patch(obj.getId(), obj).execute();
PHP
// Get the specific Offer Object Google_OfferObject $offerObj = $service->offerobject->get('2945482443380251551.ExampleObject1'); // Update the version, validTimeInterval.end, and add a message $offerObj->setVersion($offerObj->getVersion() + 1); $validTimeInterval = new Google_TimeInterval(); $startDateTime = new Google_DateTime(); $startDateTime->setDate('2013-06-12T23:20:50.52Z'); $validTimeInterval->setStart($startDateTime); $endDateTime = new Google_DateTime(); $endDateTime->setDate('2013-12-12T23:20:50.52Z'); $validTimeInterval->setEnd($endDateTime); $offerObj->setValidTimeInterval($validTimeInterval) // Get the current messages $messages = $offerObj->getMessages(); // Define new message $newMessage = array( 'header' => 'Important Notice', 'body' => 'Your offer has been extended!', 'kind' => 'walletobjects#walletObjectMessage' ); // Add the new message about updates to the Offer Object array_push($messages, $newMessage); $offerObj->setMessages($messages); // Update the Offer Object Google_OfferObject offerObj = $service->offerobject->update('2945482443380251551.ExampleObject1',offerObj);
Python
# Get the specific Offer Object offer_object = service.offerobject().get(resourceId='2945482443380251551.ExampleObject1') # Update the version, validTimeInterval.end, and add a message offer_object['version'] = str(int(offer_object['version']) + 1) offer_object['validTimeInterval'] = { 'start' : {'date':'2018-01-20T23:20:50.520Z'} ,'end' : {'date':'2018-01-24T23:20:50.520Z'} } // Get the current messages messages = offer_object['messages'] // Define new message message = { 'header': 'Important Notice', 'body': 'Your offer has been extended!', 'kind': 'walletobjects#walletObjectMessage' } // Add the new message about updates to the Offer Object messages.append(message) offer_object['messages'] = messages # Update the Offer Object api_request = service.offerobject().update(resourceId='2945482443380251551.ExampleObject1',body=offer_object) api_response = api_request.execute()
상태 업데이트
카테고리에 관계없이 모든 객체에는 state
속성이 있습니다. 객체의 상태를 업데이트하는 것은 고객에게 패스가 사용되었거나 만료되었음을 알리는 중요한 방법입니다.
Object
를 검색하기 위해 모든 업데이트는 GET
요청으로 시작해야 합니다. 이렇게 하면 최신 버전의 객체가 사용됩니다. 잔액이 변경되면 객체 버전이 증가되어야 합니다. 업데이트된 Object
를 저장하려면 PUT
요청을 실행합니다.
다음은 객체를 GET
하고 offerObject
를 PUT
(update)하는 데 사용되는 REST URI의 예시입니다.
GET https://walletobjects.googleapis.com/walletobjects/v1/offerObject/resourceId PUT https://walletobjects.googleapis.com/walletobjects/v1/offerObject/resourceId
카테고리별 다른 GET
및 update 메서드에 대한 자세한 내용은 참조를 확인하세요.
다음 코드 샘플은 offerObject
를 업데이트하는 방법에 대한 언어별 예시를 보여줍니다. 다른 카테고리 객체의 코드도 이와 비슷합니다.
자바
// Get the specific Offer Object OfferObject obj = client.offerobject().get("2945482443380251551.ExampleObject1").execute(); // Update the version and state obj.setVersion(obj.getVersion() + 1L); obj.setState("expired"); //see the Reference API for valid "state" options // Update the Offer Object OfferObject returnObj = client.offerobject().update(obj.getId(), obj).execute();
PHP
// Get the specific Offer Object Google_OfferObject offerObj = $service->offerobject->get('2945482443380251551.ExampleObject1'); // Update the version and points offerObj.setVersion(offerObj.getVersion() + 1); offerObj.setState("state"); // see the Reference API for valid "state" options // Update the Offer Object Google_OfferObject offerObj = $service->offerobject->update('2945482443380251551.ExampleObject1',offerObj);
Python
# Get the specific Offer Object offer_object = service.offerobject().get(resourceId='2945482443380251551.ExampleObject1') # Update the version and state offer_object['version'] = str(int(offer_object['version']) + 1) offer_object['state'] = 'expired' # see the Reference API for valid "state" options # Update the Offer Object api_request = service.offerobject().update(resourceId='2945482443380251551.ExampleObject1',body=offer_object) api_response = api_request.execute()
현지화
Google Pay API for Passes를 사용하면 판매자가 사용자 언어에 따라 달리 표시되는 현지화된 콘텐츠를 제공할 수 있습니다. 이 기능을 제공하기 위해 API에 추가 필드가 포함되어 있습니다. 모든 현지화된 필드는 LocalizedString의 중첩 객체로, 다음 형식으로 표현됩니다.
{ "kind": "walletobjects#localizedString", "translatedValues": [ { "kind": "walletobjects#translatedString", "language": string, "value": string } ], "defaultValue": [ { "kind": "walletobjects#translatedString", "language": string, "value": string } ] }
defaultValue
는 모든 LocalizedStrings
의 필수 필드입니다. 모든 translatedString에는 언어와 값이 모두 필요합니다.
언어 필드는 BCP 47 언어 태그를 참조해야 합니다. (예: 'en-US', 'en-GB', 'es-419' 등). 값은 문자열의 번역된 값이며 언어가 일치하는 경우 사용자에게 표시되는 문자열입니다.
현지화된 문자열은 사용자 언어와 가장 일치하는 언어를 기준으로 사용자에게 제공됩니다.
적절한 translatedValue
가 제공되지 않으면 DefaultValue
가 사용됩니다.
현지화된 해당 필드가 설정된 경우 현지화되지 않은 필드는 사용되지 않습니다.
사용자가 패스를 삭제했는지 확인
사용자가 패스를 삭제했는지 확인
사용자가 Google Pay에서 패스(예: 포인트 카드)를 삭제했는지 확인하려면 다음과 같은 GET 호출로 사용자의 Object
를 검색하고 객체의 hasUsers
속성을 확인합니다.
예를 들어 GET
을 사용하여 loyaltyObject
를 확인하려면 다음 안내를 따르세요.
GET https://walletobjects.googleapis.com/walletobjects/v1/loyaltyObject/objectId
모든 사용자가 패스를 삭제했거나 포인트 카드가 삭제된 경우 Google은 해당 객체를 삭제하지 않습니다. 객체의 hasUsers
속성은 false로 설정됩니다.
hasUsers
속성 확인은 사용자가 웹사이트나 앱에 로그인할 때 실시간으로 수행하거나 한 번에 많은 수의 사용자에 대한 일괄 프로세스에서 수행할 수 있습니다.
객체를 만들 때 LoyaltyObject
를 검색하는 데 사용되는 객체 ID를 정의했습니다. 사용자에게 현재 등급 및 포인트 잔액에 대한 맞춤설정된 정보를 제공하려면 객체 ID를 고유한 저장소에 저장해야 합니다.
다른 GET
메서드에 대한 자세한 내용은 참조를 확인하세요. Google은 객체가 삭제될 때 실시간 알림을 제공하지 않습니다. 실시간 알림을 제공하려면 리스너 서비스를 구현하고 특정 서비스수준계약을 준수해야 합니다.
카테고리별 소통 방식
소통하는 일부 방법은 패스 카테고리에 따라 다릅니다. 구현 세부정보는 각 카테고리의 '사용 사례' 페이지를 참조하세요.