Berikan produk gratis
Gunakan metode ini dalam API pembelian Microsoft Store untuk memberikan aplikasi atau add-on gratis (juga dikenal sebagai produk dalam aplikasi atau IAP) kepada pengguna tertentu.
Saat ini, Anda hanya dapat memberikan produk gratis. Jika layanan Anda mencoba menggunakan metode ini untuk memberikan produk yang tidak gratis, metode ini akan mengembalikan kesalahan.
Prasyarat
Untuk menggunakan metode ini, Anda memerlukan:
- Token akses Azure AD yang memiliki nilai
https://onestore.microsoft.com
URI audiens . - Kunci ID Microsoft Store yang mewakili identitas pengguna yang ingin Anda berikan produk gratis.
Untuk informasi selengkapnya, lihat Mengelola pemberian izin produk dari layanan.
Minta
Minta sintaks
Metode | URI Permintaan |
---|---|
KIRIM | https://purchase.mp.microsoft.com/v6.0/purchases/grant |
Meminta header
Header | Jenis | Deskripsi |
---|---|---|
Authorization | string | Wajib diisi. Token akses Azure AD dalam bentuktoken>Pembawa<. |
Host | string | Harus diatur ke nilai purchase.mp.microsoft.com. |
Panjang-Konten | nomor | Panjang isi permintaan. |
Jenis-Konten | string | Menentukan jenis permintaan dan respons. Saat ini, satu-satunya nilai yang didukung adalah aplikasi/json. |
Isi permintaan
Parameter | Jenis | Deskripsi | Diperlukan |
---|---|---|---|
availabilityId | string | ID ketersediaan produk yang akan diberikan dari katalog Microsoft Store. | Ya |
b2bKey | string | Kunci ID Microsoft Store yang mewakili identitas pengguna yang ingin Anda berikan produknya. | Ya |
devOfferId | string | ID penawaran yang ditentukan pengembang yang akan muncul di item Koleksi setelah pembelian. | |
bahasa | string | Bahasa pengguna. | Ya |
market | string | Pasar pengguna. | Ya |
orderId | guid | GUID yang dihasilkan untuk pesanan. Nilai ini unik untuk pengguna, tetapi tidak diharuskan unik di semua pesanan. | Ya |
productId | string | ID Bursa untuk produk di katalog Microsoft Store. Contoh ID Store untuk produk adalah 9NBLGGH42CFD. | Ya |
quantity | int | Kuantitas untuk dibeli. Saat ini, satu-satunya nilai yang didukung adalah 1. Jika tidak ditentukan, defaultnya adalah 1. | Tidak |
skuId | string | ID Toko untuk SKU produk di katalog Microsoft Store. Contoh ID Store untuk SKU adalah 0010. | Ya |
Contoh permintaan
POST https://purchase.mp.microsoft.com/v6.0/purchases/grant HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJK……
Content-Length: 1863
Content-Type: application/json
{
"b2bKey" : "eyJ0eXAiOiJK……",
"availabilityId" : "9RT7C09D5J3W",
"productId" : "9NBLGGH5WVP6",
"skuId" : "0010",
"language" : "en-us",
"market" : "us",
"orderId" : "3eea1529-611e-4aee-915c-345494e4ee76",
}
Respons
Isi Respons
Parameter | Jenis | Deskripsi | Diperlukan |
---|---|---|---|
clientContext | ClientContextV6 | Informasi kontekstual klien untuk pesanan ini. Ini akan ditetapkan ke nilai clientID dari token Azure AD. | Ya |
waktu pembuatan | tanggalwaktulewat | Waktu urutan dibuat. | Ya |
currencyCode | string | Kode mata uang untuk totalAmount dan totalTaxAmount. N/A untuk item gratis. | Ya |
friendlyName | string | Nama yang mudah diingat untuk pesanan. N/A untuk pesanan yang dibuat menggunakan API pembelian Microsoft Store. | Ya |
isPIRequired | boolean | Menunjukkan apakah instrumen pembayaran (PI) diperlukan sebagai bagian dari pesanan pembelian. | Ya |
bahasa | string | ID bahasa untuk pesanan (misalnya, "en"). | Ya |
market | string | ID pasar untuk pesanan (misalnya, "AS"). | Ya |
orderId | string | ID yang mengidentifikasi pesanan untuk pengguna tertentu. | Ya |
orderLineItems | daftar<OrderLineItemV6> | Daftar item baris untuk pesanan. Biasanya ada 1 item baris per pesanan. | Ya |
orderState | string | Status pesanan. Status yang valid adalah Mengedit, CheckingOut, Tertunda, Dibeli, Dikembalikan,Ditagih Balik, dan Dibatalkan. | Ya |
orderValidityEndTime | string | Terakhir kali harga pesanan valid sebelum dikirimkan. N/A untuk aplikasi gratis. | Ya |
orderValidityStartTime | string | Pertama kali harga pesanan valid sebelum dikirimkan. N/A untuk aplikasi gratis. | Ya |
Pembeli | IdentityV6 | Objek yang menjelaskan identitas pembeli. | Ya |
totalAmount | decimal | Jumlah total pembelian semua item dalam pesanan termasuk pajak. | Ya |
totalAmountBeforeTax | decimal | Jumlah total pembelian semua item dalam pesanan sebelum pajak. | Ya |
totalChargedToCsvTopOffPI | decimal | Jika menggunakan alat pembayaran terpisah dan nilai tersimpan (CSV), jumlah yang dibebankan ke CSV. | Ya |
totalTaxAmount | decimal | Jumlah total pajak untuk semua item baris. | Ya |
Objek ClientContext berisi parameter berikut.
Parameter | Jenis | Deskripsi | Diperlukan |
---|---|---|---|
Klien | string | ID klien yang membuat pesanan. | Tidak |
Objek OrderLineItemV6 berisi parameter berikut.
Parameter | Jenis | Deskripsi | Diperlukan |
---|---|---|---|
agen | IdentityV6 | Agen yang terakhir mengedit item baris. Untuk informasi selengkapnya tentang objek ini, lihat tabel di bawah ini. | Tidak |
availabilityId | string | ID ketersediaan produk yang akan dibeli dari katalog Microsoft Store. | Ya |
penerima | IdentityV6 | Identitas penerima pesanan. | Tidak |
billingState | string | Status penagihan pesanan. Ini diatur ke Ditagih setelah selesai. | Tidak |
campaignId | string | ID kampanye untuk pesanan ini. | Tidak |
currencyCode | string | Kode mata uang yang digunakan untuk detail harga. | Ya |
description | string | Deskripsi item baris yang dilokalkan. | Ya |
devofferId | string | ID penawaran untuk pesanan tertentu, jika ada. | Tidak |
fulfillmentDate | tanggalwaktulewat | Tanggal pemenuhan terjadi. | Tidak |
fulfillmentState | string | Status pemenuhan item ini. Ini diatur ke Terpenuhi setelah selesai. | Tidak |
isPIRequired | boolean | Menunjukkan apakah alat pembayaran diperlukan untuk item baris ini. | Ya |
isTaxIncluded | boolean | Ditunjukkan apakah pajak disertakan dalam detail harga item. | Ya |
legacyBillingOrderId | string | ID penagihan warisan. | Tidak |
lineItemId | string | ID item baris untuk item dalam urutan ini. | Ya |
listPrice | decimal | Harga daftar item dalam urutan ini. | Ya |
productId | string | ID Toko untuk produk yang mewakili item baris dalam katalog Microsoft Store. Contoh ID Penyimpanan untuk produk adalah 9NBLGGH42CFD. | Ya |
productType | string | Jenis produk. Nilai yang didukung adalah Durable, Application, dan UnmanagedConsumable. | Ya |
quantity | int | Kuantitas item yang diurutkan. | Ya |
retailPrice | decimal | Harga eceran barang yang dipesan. | Ya |
revenueRecognitionState | string | Status pengenalan pendapatan. | Ya |
skuId | string | ID Penyimpanan untuk SKU item baris di katalog Microsoft Store. Contoh ID Store untuk SKU adalah 0010. | Ya |
taxAmount | decimal | Jumlah pajak untuk item baris. | Ya |
taxType | string | Jenis pajak untuk pajak yang berlaku. | Ya |
Judul | string | Judul item baris yang dilokalkan. | Ya |
totalAmount | decimal | Jumlah total pembelian item baris termasuk pajak. | Ya |
Objek IdentityV6 berisi parameter berikut.
Parameter | Jenis | Deskripsi | Diperlukan |
---|---|---|---|
identityType | string | Berisi nilai "pub". | Ya |
identityValue | string | Nilai string publisherUserId dari kunci ID Microsoft Store yang ditentukan. | Ya |
Contoh respons
Content-Length: 1203
Content-Type: application/json
MS-CorrelationId: fb2e69bc-f26a-4aab-a823-7586c19f5762
MS-RequestId: c1bc832c-f742-47e4-a76c-cf061402f698
MS-CV: XjfuNWLQlEuxj6Mt.8
MS-ServerId: 030032362
Date: Tue, 13 Oct 2015 21:21:51 GMT
{
"clientContext": {
"client": "86b78998-d05a-487b-b380-6c738f6553ea"
},
"createdTime": "2015-10-13T21:21:51.1863494+00:00",
"currencyCode": "USD",
"isPIRequired": false,
"language": "en-us",
"market": "us",
"orderId": "3eea1529-611e-4aee-915c-345494e4ee76",
"orderLineItems": [{
"availabilityId": "9RT7C09D5J3W",
"beneficiary": {
"identityType": "pub",
"identityValue": "user1"
},
"billingState": "Charged",
"currencyCode": "USD",
"description": "Jewels, Jewels, Jewels - Consumable 2",
"fulfillmentDate": "2015-10-13T21:21:51.639478+00:00",
"fulfillmentState": "Fulfilled",
"isPIRequired": false,
"isTaxIncluded": true,
"lineItemId": "2814d758-3ee3-46b3-9671-4fb3bdae9ffe",
"listPrice": 0.0,
"payments": [],
"productId": "9NBLGGH5WVP6",
"productType": "UnmanagedConsumable",
"quantity": 1,
"retailPrice": 0.0,
"revenueRecognitionState": "None",
"skuId": "0010",
"taxAmount": 0.0,
"taxType": "NoApplicableTaxes",
"title": "Jewels, Jewels, Jewels - Consumable 2",
"totalAmount": 0.0
}],
"orderState": "Purchased",
"orderValidityEndTime": "2015-10-14T21:21:51.1863494+00:00",
"orderValidityStartTime": "2015-10-13T21:21:51.1863494+00:00",
"purchaser": {
"identityType": "pub",
"identityValue": "user1"
},
"testScenarios": "None",
"totalAmount": 0.0,
"totalTaxAmount": 0.0
}
Kode galat
Kode | Kesalahan | Kode kesalahan dalam | Deskripsi |
---|---|---|---|
401 | Tidak diizinkan | AuthenticationTokenInvalid | Token akses Azure AD tidak valid. Dalam beberapa kasus, detail ServiceError akan berisi informasi lebih lanjut, seperti ketika token kedaluwarsa atau klaim appid hilang. |
401 | Tidak diizinkan | PartnerAadTicketRequired | Token akses Azure AD tidak diteruskan ke layanan di header otorisasi. |
401 | Tidak diizinkan | InconsistentClientId | Klaim clientId di kunci ID Microsoft Store di isi permintaan dan klaim appid di token akses Azure AD di header otorisasi tidak cocok. |
400 | BadRequest | InvalidParameter | Detail berisi informasi mengenai isi permintaan dan bidang mana yang memiliki nilai yang tidak valid. |
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk