Google มีการตรวจสอบใบเสร็จรับเงินผ่านทางGoogle Play API นักพัฒนาซอฟต์แวร์ภายใน API ที่มีสองจุดสิ้นสุดคุณจะได้รับความสนใจมากที่สุดใน: Purchases.products: รับและPurchases.subscriptions: รับ
Purchases.products: get
สามารถใช้เพื่อยืนยันการซื้อผลิตภัณฑ์ที่ไม่ต่ออายุอัตโนมัติซึ่งใช้Purchases.subscriptions: get
สำหรับการยืนยันและยืนยันการสมัครสมาชิกผลิตภัณฑ์ที่ต่ออายุอัตโนมัติอีกครั้ง
หากต้องการใช้ปลายทางทั้งที่คุณต้องรู้packageName
, productId
, purchaseToken
สิ่งเหล่านี้สามารถพบได้ในส่วนของข้อมูลที่คุณได้รับในการซื้อ คุณต้องมีaccess_token
สิ่งที่จะได้รับจากการสร้างบัญชีบริการ Google API
ในการเริ่มต้นใช้งานบัญชีบริการก่อนอื่นให้ไปที่หน้าการตั้งค่าการเข้าถึง API ของคอนโซลนักพัฒนาซอฟต์แวร์ Google Play แล้วคลิกปุ่มสร้างโครงการใหม่:
ตอนนี้คุณควรเห็นโครงการที่เชื่อมโยงใหม่และส่วนใหม่บางส่วนในส่วนบัญชีบริการให้คลิกปุ่มสร้างบัญชีบริการ
คุณจะเห็นกล่องข้อมูลพร้อมคำแนะนำในการสร้างบัญชีบริการของคุณ คลิกลิงก์ไปยัง Google Developers Console และแท็บใหม่จะเกิดขึ้น
จากนั้นคลิกสร้างรหัสลูกค้าใหม่เลือกบัญชีบริการจากตัวเลือกแล้วคลิกสร้างรหัสลูกค้า
ไฟล์ JSON จะดาวน์โหลดนี่คือ JSON Web Token ของคุณที่คุณจะใช้เพื่อแลกเปลี่ยนaccess_token
เพื่อให้ปลอดภัย
จากนั้นสลับแท็บกลับไปที่คอนโซลนักพัฒนาซอฟต์แวร์ Google Play แล้วคลิกเสร็จสิ้นในช่องข้อมูล คุณควรเห็นบัญชีบริการใหม่ของคุณในรายการ คลิกที่ให้สิทธิ์การเข้าถึงถัดจากอีเมลบัญชีบริการ
ถัดไปภายใต้เลือกบทบาทสำหรับผู้ใช้รายนี้เลือกการเงินและคลิกเพิ่มผู้ใช้
ตอนนี้คุณได้ตั้งค่าบัญชีบริการของคุณแล้วและมีการเข้าถึงที่จำเป็นทั้งหมดเพื่อทำการตรวจสอบใบเสร็จ ถัดไปคือการแลกเปลี่ยน JWT ของคุณสำหรับ access_token
การaccess_token
หมดอายุหลังจากแลกเปลี่ยนหนึ่งชั่วโมงคุณจึงต้องใช้รหัสเซิร์ฟเวอร์เพื่อจัดการสิ่งนี้และ Google ได้จัดเตรียมไลบรารีหลายแห่งในหลายภาษาเพื่อจัดการสิ่งนี้ (รายการไม่ครบถ้วนสมบูรณ์):
ฉันจะไม่ลงรายละเอียดเนื่องจากมีเอกสารมากมายเกี่ยวกับวิธีใช้ไลบรารีเหล่านี้ แต่ฉันจะพูดถึงว่าคุณต้องการใช้https://www.googleapis.com/auth/androidpublisher
เป็นขอบเขต OAuth2 client_email
จาก JWT เป็นissuer
และคีย์สาธารณะที่คุณจะได้รับจากprivate_key
และ รหัสผ่านnotasecret
จะถูกใช้สำหรับไฟล์signing_key
.
เมื่อคุณพร้อมaccess_token
ที่จะไปแล้ว (อย่างน้อยในชั่วโมงถัดไปซึ่งคุณจะต้องขอใหม่ตามขั้นตอนเดียวกันในย่อหน้าข้างบน)
ในการตรวจสอบสถานะของการซื้อสิ้นเปลือง (ไม่ต่ออายุอัตโนมัติ) ให้get
ส่งคำขอhttp ไปที่:https://www.googleapis.com/androidpublisher/v2/applications/com.example.app/purchases/products/exampleSku/tokens/rojeslcdyyiapnqcynkjyyjh?access_token=your_access_token
หากคุณได้รับรหัสตอบกลับ 200 http ทุกอย่างเป็นไปตามแผนและการซื้อของคุณถูกต้อง 404 หมายความว่าโทเค็นของคุณไม่ถูกต้องดังนั้นการซื้อจึงน่าจะเป็นการพยายามฉ้อโกง 401 หมายความว่าโทเค็นการเข้าถึงของคุณไม่ถูกต้องและ 403 หมายความว่าบัญชีบริการของคุณมีการเข้าถึงไม่เพียงพอตรวจสอบว่าคุณได้เปิดใช้งาน Financeสำหรับบัญชีการเข้าถึงในคอนโซลนักพัฒนาซอฟต์แวร์ Google Play
การตอบสนองจาก 200 จะมีลักษณะดังนี้:
{
"kind": "androidpublisher#productPurchase",
"purchaseTimeMillis": long,
"purchaseState": integer,
"consumptionState": integer,
"developerPayload": string
}
สำหรับคำอธิบายของแต่ละดูทรัพย์สินhttps://developers.google.com/android-publisher/api-ref/purchases/products
การสมัครรับข้อมูลจะคล้ายกัน แต่จุดสิ้นสุดมีลักษณะดังนี้:
https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/subscriptions/subscriptionId/tokens/token?access_token=you_access_token
และการตอบสนองควรมีคุณสมบัติเหล่านี้:
{
"kind": "androidpublisher#subscriptionPurchase",
"startTimeMillis": long,
"expiryTimeMillis": long,
"autoRenewing": boolean
}
โปรดดูhttps://developers.google.com/android-publisher/api-ref/purchases/subscriptionsสำหรับคำอธิบายคุณสมบัติและโปรดทราบว่าstartTimeMillis
และexpiryTimeMillis
อาจมีการเปลี่ยนแปลงขึ้นอยู่กับระยะเวลาของการสมัครสมาชิก
ขอให้มีความสุขในการตรวจสอบ!