다음 패스 카테고리 중 하나를 선택하여 사용 방법을 자세히 알아보세요.
Google Pay API for Passes를 사용하면 포인트 카드를 통해 사용자와 소통하며 참여를 유도할 수 있습니다. 이 가이드에는 저장된 포인트 카드의 기능을 보다 잘 이해할 수 있도록 개념이 설명되어 있습니다.
다음 사용 사례는 포인트 카테고리에만 해당합니다.
패스 업데이트
생성된 패스에 변경사항이 있는 경우 REST API를 사용하여 변경사항을 사용자에게 전달합니다. 이 변경사항이 클래스에만 영향을 줄 경우 Google Pay 판매자 센터를 사용할 수도 있습니다. 패스 업데이트는 사용자와 소통하는 중요한 방법입니다.
로고를 변경하는 등 패스가 표시되는 방식을 업데이트하려면 LoyaltyClass
를 update
또는 patch
하거나 Google Pay 판매자 센터를 사용하면 됩니다.
Google이 이 정보를 업데이트된 LoyaltyClass
와 연결된 모든 LoyaltyObject
에 전달합니다. 이는 LoyaltyClass
수준에서 정의된 모든 필드에 적용됩니다.
포인트 카드 포인트 잔액을 변경하는 등 패스 하나를 업데이트하는 경우에는 LoyaltyObject
하나를 update
또는 patch
해야 합니다. 이는 LoyaltyObject
수준에서 정의된 모든 필드에 적용됩니다.
때로는 변경사항이 언제 발생하는지, 아니면 update
또는 patch
요청을 언제 트리거해야 할지 모를 수도 있습니다. 이러한 경우에는 각 클래스 및 객체에 대한 update
또는 patch
요청을 주기적으로 예약합니다. LoyaltyClass
list
메서드를 호출하면 특정 발급기관 계정의 모든 클래스를 찾을 수 있습니다.
LoyaltyObject
list
메서드를 호출하면 특정 클래스의 모든 객체를 찾을 수 있습니다.
Google Pay 앱에서 스캔
사용자는 포인트 카드 세부정보를 스캔하거나 수동으로 추가할 때 Google Pay 앱에 일부 포인트 카드를 추가할 수 있습니다. Google Pay API for Passes는 이전에 정의된 LoyaltyClass
를 참조하지 않는 LoyaltyObject
를 생성합니다. 개발자가 별도의 작업을 수행하지 않아도 새 객체 또는 클래스가 생성됩니다.
하지만 Google Pay API for Passes가 만든 LoyaltyObject
는 업데이트할 수 없으며, 정적 패스와 같이 동작합니다.
연결 쿠폰
연결 쿠폰을 사용하면 포인트 카드 뷰에 기존 쿠폰을 표시하여 사용자가 관련 콘텐츠를 찾기 쉽도록 할 수 있습니다. LoyaltyObject
의 쓰기 가능한 목록 필드 linkedOfferIds
는 포인트 카드와 연결된 쿠폰을 나타냅니다.
연결 전 쿠폰 생성
연결된 쿠폰을 연결하려면 포인트 카드에 연결된 쿠폰 클래스 및 객체가 이미 생성되어 있어야 합니다. 쿠폰 생성에 대한 자세한 내용은 쿠폰을 참조하세요. 독립형 쿠폰과 달리 연결 쿠폰은 사용자가 쿠폰을 명시적으로 저장하지 않아도 됩니다. OfferObject
에 있는 id
필드가 LoyaltyObject
를 가리키는 데 사용됩니다.
포인트 카드에 쿠폰 연결
기존 쿠폰은 REST API 호출 insert
또는 update
또는 patch
또는 modifyLinkedOfferObjects
를 사용하여 포인트 카드에 연결할 수 있습니다.
insert
호출을 사용하여 포인트 카드를 만들 때 포인트 카드에 쿠폰을 연결한 경우 또는 update
호출을 사용하여 기존 포인트 카드에 쿠폰을 연결 또는 연결 해제한 경우, linkedOfferIds
필드는 다음 형식을 사용하여 LoyaltyObject
의 나머지 부분과 함께 작성할 수 있습니다.
{ "id": "2945482443380251551.ExampleObject1", "classId": "2945482443380251551.ExampleClass1", ... "linkedOfferIds": [ "2945482443380251551.OfferObject1", "2945482443380251551.OfferObject2" ] }
patch
호출을 사용하여 쿠폰을 기존 포인트 카드에 연결 및 연결 해제한 경우 linkedOfferIds
필드는 요청의 유일한 필드가 될 수 있습니다.
{ "linkedOfferIds": [ "2945482443380251551.OfferObject1", "2945482443380251551.OfferObject2" ] }
그러나 배열 처리 시 발생하는 실수를 방지하고, 추가해야 할 연결 쿠폰과 삭제해야 할 연결 쿠폰을 지정하고, 그대로 유지해야 할 연결 쿠폰을 생략할 수 있으려면, 다음 예시와 같이 modifyLinkedOfferObjects
메서드를 사용하는 것이 좋습니다.
{ "linkedOfferObjectIds" { "addLinkedOfferObjectIds": [ "2945482443380251551.OfferObject1", "2945482443380251551.OfferObject2" ], "removeLinkedOfferObjectIds": [ "2945482443380251551.OfferObject3", "2945482443380251551.OfferObject4" ] } }
연결 쿠폰으로 포인트 카드 디자인
연결 쿠폰은 포인트 카드 뷰에서 카드 섹션과 세부정보 섹션 사이에 다음과 같이 표시됩니다. 최대 5개의 연결 쿠폰만 캐러셀에 표시됩니다. 더 많은 쿠폰을 포인트 카드에 연결한 경우 캐러셀 끝에 있는 '더보기' 버튼을 클릭하여 모두 표시할 수 있습니다.
클릭하면 연결 쿠폰이 아래와 같이 단순화된 쿠폰 디자인을 사용합니다.
지오펜싱 알림
Google은 정의된 위치에 소비자가 얼마나 가까이 있느냐에 따라 소비자의 저장된 객체와 관련된 알림을 트리거할 수 있습니다.
위치정보는 두 가지 방법으로 추가됩니다.
- Google Pay API for Passes 판매자 센터 계정이 생성될 때 Google 지도의 위치정보가 사용됩니다.
- REST API를 통해 객체나 클래스에 좌표가 추가될 수 있습니다.
객체 또는 클래스에 좌표를 추가하는 방법은 REST API를 사용하여 위치정보 추가를 참조하세요.
지오펜싱 개념
Google은 Google 지도의 위치정보를 사용하여 사용자가 실제로 특정 매장 또는 지역에 있는지를 알고리즘 방식으로 확인합니다. 이러한 탐지는 Google Pay API for Passes 판매자 센터 계정으로 개발된 모든 클래스와 객체에 적용됩니다.
알고리즘에는 GPS, Wi-Fi, 블루투스, 이동, 체류 시간 등의 요소가 고려됩니다. 사용자가 실제로 특정 위치에 있다고 판단되면 지오펜싱 알림이 트리거됩니다.
Object
에 좌표를 수동으로 지정하면 사용자가 이 좌표에서 150미터 거리에 있을 때 지오펜싱 알림이 트리거됩니다.
지오펜싱 알림의 빈도, 조절, 사용자 선택 해제
사용자는 하루에 최대 4개의 알림을 받습니다.
지오펜스 내에 여러 개의 객체가 저장되었다면 캐러셀을 통해 수정 불가능한 알림이 Google Pay API for Passes 판매자 센터 계정별로 하나씩 표시됩니다. 객체는 캐러셀 내에서 돌아가며 표시됩니다.
지오펜싱 알림이 작동하려면 사용자가 Google Pay 앱의 알림 설정에서 상품 관련 업데이트를 사용 설정하고 기기에 위치 서비스를 켜 놓아야 합니다.
REST API를 사용하여 위치정보 추가
클래스나 객체에 위치의 배열(위도와 경도)을 지정할 수 있습니다. Google은 사용자의 현재 위치정보를 클래스나 객체에 연결된 위치 목록과 비교한 후 사용자가 해당 위치 중 한 곳에서 150미터 이내에 있을 경우 알림을 전송합니다. 다음은 클래스나 객체에 위치를 지정하는 방법을 보여주는 코드 샘플입니다.
리소스
{ ... //Class or Object content "locations": [{ "kind": "walletobjects#latLongPoint", "latitude": 37.422087, "longitude": -161446 }, { "kind": "walletobjects#latLongPoint", "latitude": 37.429379, "longitude": -121.12272999999999 }, { "kind": "walletobjects#latLongPoint", "latitude": 37.333646, "longitude": -122.884853 }] }
자바
List<LatLongPoint> locations = new ArrayList<LatLongPoint>(); locations.add(new LatLongPoint().setLatitude(37.422087).setLongitude( -122.161446)); locations.add(new LatLongPoint().setLatitude(37.429379).setLongitude( -121.12272999999999)); locations.add(new LatLongPoint().setLatitude(37.333646).setLongitude( -122.884853)); yourClassOrObject.setLocations(locations);
PHP
$locations = array( array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.442087, 'longitude' => -122.161446 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.429379, 'longitude' => -122.12272999999999 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.333646, 'longitude' => -121.884853 ) );
Python
offer_class_object = { # class or object content 'locations': [{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.442087, 'longitude': -122.161446 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.429379, 'longitude': -122.12272999999999 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.333646, 'longitude': -121.884853 }] }
만료된 패스 처리
Google Pay 앱의 '패스' 탭에는 보관처리된 패스 또는 비활성 패스가 모두 포함된 '만료된 패스' 섹션이 있습니다. 다음 조건 중 하나 이상에 해당하는 패스는 '만료된 패스' 섹션으로 이동됩니다.
-
object.validTimeInterval.end.date
가 만료됩니다. 이 패스는object.validTimeInterval.end.date
가 만료된 후 최대 24시간 이내에 '만료된 패스'로 이동합니다. object.state
필드가Expired
,Inactive
또는Completed
로 표시되어 있습니다.
저장된 패스에 링크 걸기
사용자가 저장한 패스가 있으면 패스에 링크를 걸기 위해 objectId
를 참조합니다.
다음 링크를 사용하여 패스를 참조하세요.
https://pay.google.com/gp/v/object/{<issuerId>}.{<ObjectId>}
패스는 Google Pay 앱 또는 웹브라우저에서 확인할 수 있습니다.
저장된 Google Pay 패스에서 연결
저장된 Google Pay 패스의 헤더 아래에서 앱 또는 웹사이트에 연결할 수 있습니다. 이 기능은 모든 유형의 Google Pay 패스에서 사용할 수 있습니다.
액세스 요청
오프라인 판매자용 지원 양식을 사용하여 액세스를 요청하세요. 다음 사항에 유의하세요.
- 양식에서 발급기관 ID를 공유해야 합니다.
- Issue type(발급 유형)에서 'Technical/API Integration(기술/API 통합)'을 선택합니다.
- Link your app or website below the Google Pay pass(Google Pay 패스 아래에 앱 또는 웹사이트 연결)를 선택합니다.
Google Pay 패스에 앱 링크 설정
지정된 Google Pay 패스에 대해 appLinkData
를 정의하여 앱 또는 웹사이트의 URI를 설정합니다. URI의 형식은 자유롭지만 동적 링크를 사용하는 것이 좋습니다.
appLinkData
필드의 형식 및 컨텍스트는 다음 소스 코드에서 볼 수 있습니다.
{ "id": string, "classId": string, … … … "appLinkData": { "androidAppLinkInfo": { "appLogoImage": { "sourceUri": { "uri": string } }, "title": { "defaultValue": { "language": string, "value": string } }, "description": { "defaultValue": { "language": string, "value": string } }, "appTarget": { "targetUri": { "uri": string, "description": string } } } } … … … }
등록 및 로그인
사용자는 Google Pay에서 포인트 카드 등록 및 로그인 기능을 통해 포인트 제도를 검색하고 자신의 계정으로 가입하거나 로그인할 수 있습니다. 자세한 내용은 등록 및 로그인을 참조하세요.