purchase.mp.microsoft.com/v8.0/b2b/recurrences/query
이 엔드포인트는 사용자가 Microsoft Store를 통해 소유하는 구독 제품 유형의 상태를 쿼리하는 데 사용됩니다. 자동 갱신 청구에 실패한 경우 제품의 유예 기간을 포함하여 이러한 구독에 대한 컬렉션 서비스보다 더 많은 정보를 제공합니다.
사전 요건
이 API를 사용하려면 다음이 필요합니다.
- 대상 URI 값이
https://onestore.microsoft.com
인 Microsoft Entra ID 액세스 토큰 - 무료 제품을 부여하려는 사용자 ID를 나타내는 사용자 구매 ID 키
자세한 내용은 서비스 간 인증을 위한 사용자 Store ID 요청을 참조하세요.
또한 서비스에 표시하려는 제품은 파트너 센터에서 추가 구성이 필요합니다.
제품을 올바르게 구성하는 방법은 사용자 Store ID/Microsoft Entra ID 인증이 있는 제품을 보고 관리하는 데 필요한 추가 구성을 참조하세요.
참고 항목
제품 구성이 완료되어 파트너 센터를 통해 게시되지 않은 경우 구매 서비스에 대한 호출은 성공하지만 응답에 결과가 없습니다.
요청
요청 구문
메서드 | 요청 URI |
---|---|
POST |
purchase.mp.microsoft.com/v8.0/b2b/recurrences/query |
요청 헤더
헤더 | 형식 | 설명 |
---|---|---|
Authorization |
string |
필수.
Bearer
<
토큰> 양식의 Microsoft Entra ID 서비스 액세스 토큰입니다. |
Host |
string |
값 purchase.mp.microsoft.com (으)로 설정해야 합니다. |
Content-Length |
number |
요청 본문의 길이입니다. |
Content-Type |
string |
요청 및 응답 유형을 지정합니다. 현재 지원되는 유일한 값은 application/json 입니다. |
요청 본문
매개 변수 | 형식 | 설명 | 필수 |
---|---|---|---|
b2bKey |
string |
요청하는 사용자의 ID를 나타내는 사용자 구매 ID입니다. 사용자 저장소 ID 키를 참조하세요. | 예 |
sbx |
string |
결과의 범위를 지정해야 하는 샌드박스를 지정하는 UserStoreIds로 인증하기 위한 선택적 값입니다. 이 값이 없는 기본값은 RETAIL 샌드박스입니다. X-Token 인증에는 X-Token 내에 Sandbox가 지정되어 있으므로 이 값이 필요하지 않습니다. | 아니요 |
continuationToken |
string |
maxPageSize 내에 맞출 수 없는 제품 집합이 여러 개 있는 경우, 페이지 제한에 도달할 때 응답 본문이 연속 토큰을 반환합니다. 이전 요청의 쿼리에서 나머지 제품을 검색하는 후속 호출에서 연속 토큰을 제공합니다. |
아니요 |
요청 예제
POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/query HTTP/1.1
Host: purchase.mp.microsoft.com
Authorization: Bearer [Microsoft Entra ID bearer token]
User-Agent: MicrosoftStoreServiceSample_1.21.9.0
Content-Type: application/json; charset=utf-8
Content-Length: 2032
{
"b2bKey":"[UserPurchaseID]",
"sbx": "XDKS.1"
}
응답
응답 본문
매개 변수 | 형식 | 설명 | 필수 |
---|---|---|---|
continuationToken |
string |
페이지 제한에 도달하면 이 토큰이 반환됩니다. 나머지 제품을 검색하는 후속 호출에서 이 연속 토큰을 지정할 수 있습니다. | 아니요 |
items |
list<RecurrenceItem> |
사용자가 지정된 제품의 배열입니다. 자세한 내용은 다음 표를 참조합니다. | 예 |
RecurrenceItem
개체에는 다음 매개 변수가 포함됩니다.
매개 변수 | 형식 | 설명 | 필수 |
---|---|---|---|
autoRenew |
bool |
사용자가 다음 청구 주기가 끝날 때 구독을 자동 갱신하도록 등록되었는지를 나타냅니다. | 예 |
beneficiary |
string |
사용자 구매 ID 내 수취인의 게시자 ID입니다. | 예 |
expirationTime |
DateTime |
구독이 만료되거나 만료되는 UTC 날짜 및 시간 | 예 |
expirationTimeWithGrace |
DateTime |
ExpirationTime에서 자동 갱신이 실패할 경우 사용자의 유예 기간이 종료되는 UTC 날짜 및 시간입니다. 유예 기간 동안 사용자는 여전히 액세스 권한을 가지며 유효한 구독자로 간주되어야 하지만 자동 갱신 결제를 수정해야 한다는 알림을 받습니다. | 예 |
id |
string |
사용자가 소유한 다른 품목에서 이 컬렉션 품목을 식별하는 ID입니다. 이 ID는 제품마다 고유합니다. | 예 |
isTrial |
bool |
제품이 평가판 기간 내에 있는지 여부를 나타냅니다(예: 구독). | 예 |
lastModified |
DateTime |
이 항목이 마지막으로 수정된 UTC 날짜입니다. | 예 |
market |
string |
2자리 ISO 3166 국가/지역 코드에 따라 제품을 구매한 국가/지역입니다. 예: 미국. | 예 |
productId |
string |
Microsoft Store 카탈로그내의 제품에 대한 Microsoft Store ID입니다. 제품에 대한 Microsoft Store ID의 예는 9NBLGGH42CFD입니다. | 예 |
recurrenceState |
string |
되풀이의 현재 상태입니다. 되풀이 상태를 참조하세요. | 예 |
skuId |
string |
Microsoft Store 카탈로그에 다중 제공 제품이 있는 경우 특정 SKU 식별자 SKU에 대한 Microsoft Store ID의 예는 0010입니다. | 예 |
startTime |
DateTime |
구독이 유효하게 되었거나 유효하게 될 UTC 날짜입니다. | 예 |
cancellationDate |
DateTime |
구독이 취소된 UTC 날짜입니다. | 아니요 |
되풀이 상태
값 | 설명 |
---|---|
None |
영구 구독을 나타냅니다. |
Active |
구독이 유효하고 사용자에게 구독 혜택을 받을 수 있습니다. |
Inactive |
구독이 만료 날짜가 지났고 사용자가 구독에 대한 자동 갱신 옵션을 해제했습니다. |
Canceled |
구독은 환불 여부에 관계없이 만료 날짜 전에 의도적으로 종료되었습니다. |
InDunning |
구독이 독촉 중입니다(즉, 구독 만료가 임박하고 Microsoft가 구독을 자동으로 갱신하기 위해 자금을 확보하려고 합니다). 현재 날짜가 expireTimeWithGrace 값보다 이전인 경우에도 사용자는 구독 혜택을 받을 수 있습니다. 현재 날짜가 expireTimeWithGrace 값 이후인 경우 사용자는 구독 혜택에 액세스할 수 없습니다. |
Failed |
독촉 기간이 끝났으며 여러 번 시도한 후 구독을 갱신하지 못했습니다. |
- 비활성/취소됨/실패는 최종 상태입니다. 구독이 이러한 상태 중 하나가 되면 사용자는 구독을 다시 구매하여 다시 활성화해야 합니다. 사용자는 이러한 상태에서 서비스를 사용할 수 없습니다.
- 구독이 취소되면 만료 시간은 취소 날짜와 시간으로 업데이트됩니다.
- 구독의 ID는 전체 수명 동안 동일하게 유지됩니다. 자동 갱신 옵션이 켜져 있거나 꺼져 있어도 변경되지 않습니다. 사용자가 터미널 상태에 도달한 후 구독을 재구매하면 새 구독 ID가 생성됩니다.
- 구독 ID는 개별 구독에서 작업을 실행하는 데 사용해야 합니다.
- 사용자가 구독을 취소하거나 중단한 후 재구매할 때 사용자에 대한 결과를 쿼리하면 두 개의 항목이 표시됩니다. 하나는 터미널 상태의 이전 구독 ID이고 다른 하나는 활성 상태의 새 구독 ID입니다.
- recurrenceState 업데이트가 몇 분(때로는 몇 시간) 지연될 수 있으므로 항상 recurrenceState와 expirationTime을 모두 확인하는 것이 좋습니다.
응답 예제
HTTP/1.1 200 OK
date: Tue, 17 Aug 2021 21:22:28 GMT
content-type: application/json; charset=utf-8
content-length: 2382
ms-cv: aft4s000mwNmYF.0
x-content-type-options: nosniff
x-envoy-upstream-service-time: 2099
{
"items": [
{
"autoRenew": true,
"beneficiary": "pub:NoUserIdProvided",
"expirationTime": "2021-08-25T23:59:59.00+00:00",
"expirationTimeWithGrace": "2021-09-08T23:59:59.00+00:00",
"id": "mdr:0:1ecc1424ed8f457ab6107f08033e6b50:907f0a31-035c-41a2-b70b-5a62925a4f92",
"isTrial": false,
"lastModified": "2021-07-26T22:59:55.99+00:00",
"market": "US",
"productId": "CFQ7TTC0HC8Z",
"skuId": "0002",
"startTime": "2021-07-26T00:00:00.00+00:00",
"recurrenceState": "Active"
},
{
"autoRenew": true,
"beneficiary": "pub:NoUserIdProvided",
"expirationTime": "2021-07-26T21:08:30.52+00:00",
"expirationTimeWithGrace": "2021-07-26T21:08:30.52+00:00",
"id": "mdr:0:50c7396d0e5f4e7f9deeede3ba25f1a4:87c4cfae-ed1d-400f-a6b0-19fdb3c327f5",
"isTrial": false,
"lastModified": "2021-07-26T21:08:34.61+00:00",
"market": "US",
"productId": "CFQ7TTC0HC8Z",
"skuId": "0002",
"startTime": "2021-07-15T00:00:00.00+00:00",
"recurrenceState": "Canceled",
"cancellationDate": "2021-07-26T21:08:31.52+00:00"
},
{
"autoRenew": false,
"beneficiary": "pub:NoUserIdProvided",
"expirationTime": "2021-07-26T22:35:29.54+00:00",
"expirationTimeWithGrace": "2021-07-26T22:35:29.54+00:00",
"id": "mdr:0:528115d9771f4e49b79550790fd4a263:f30a646e-54cf-4fe8-8c95-7add9fc2ebde",
"isTrial": false,
"lastModified": "2021-07-26T22:35:33.96+00:00",
"market": "US",
"productId": "CFQ7TTC0HC8Z",
"skuId": "0002",
"startTime": "2021-07-26T00:00:00.00+00:00",
"recurrenceState": "Canceled",
"cancellationDate": "2021-07-26T22:35:30.54+00:00"
},
]
}
예시 응답 설명
위의 예시에서 이 사용자는 이전에 취소된 두 개의 구독 기간과 2021년 7월 26일에 시작된 현재 활성 기간이 있습니다. 구독 기간의 종료 날짜는 2021년 8월 26일입니다. 사용자가 자동 갱신에 등록되어 있기 때문에 Microsoft Store는 2021년 8월 26일경에 처리된 결제로 구독 갱신을 시도합니다. 사용자 계정이 구독 갱신을 완료할 수 없는 경우 구독 상태가 'InDunning'으로 변경되지만 사용자는 유예 기간이 끝날 때까지 구독 혜택에 계속 액세스해야 합니다. 유예 기간 종료(2021년 9월 8일)에 상점에서 갱신 구매를 완료할 수 없는 경우 상태가 여전히 'InDunning'인 경우에도 서비스에서 더 이상 사용자에게 구독 혜택을 부여하지 않습니다. 유예 기간이 지나면 사용자는 구독 재구매 또는 재등록이 차단되며 활성 구독을 다시 얻으려면 결제 수단을 수정해야 합니다. 유예 기간 동안 2주간의 급여를 받았기 때문에 지금은 지불해야 할 적자가 있습니다. 사용자가 계정의 결제 방법을 해결하면 이전에 사용한 유예 기간을 충당하기 위해 다음 구독 기간에서 2주가 제거됩니다.
연속 토큰으로 나머지 결과 요청
쿼리에 단일 응답에서 반환할 수 있는 것보다 더 많은 결과가 있는 경우 초기 쿼리 응답에는 continuationToken이 있습니다. 그런 다음 이전 요청 본문의 복사본에 연속 토큰을 추가하여 후속 요청에서 이 연속 토큰을 사용할 수 있습니다.
연속 요청 예제:
POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/query HTTP/1.1
Host: purchase.mp.microsoft.com
Authorization: Bearer [Microsoft Entra ID bearer token]
User-Agent: MicrosoftStoreServiceSample_1.21.9.0
Content-Type: application/json; charset=utf-8
Content-Length: 2032
{
"continuationToken":"[Continuation Token]",
"b2bKey":"[UserPurchaseID]",
"sbx": "XDKS.1"
}
관련 항목
purchase.mp.microsoft.com/v8.0/b2b/recurrences/{recurrenceId}/change