iap rs
1.0.0
IAP هي مكتبة Rust للتحقق من معلومات الإيصال للمشتريات التي تم إجراؤها من خلال متجر Google Play أو Apple App Store.
يمكنك الحصول على PurchaseResponse التي ستخبرك ببساطة ما إذا كانت عملية الشراء صالحة (ولا انتهت صلاحيتها إذا اشتراك) عن طريق إنشاء UnityPurchaseValidator .
use iap :: * ;
const APPLE_SECRET : & str = "<APPLE SECRET>" ;
const GOOGLE_KEY : & str = "<GOOGLE KEY JSON>" ;
# [ tokio :: main ]
pub async fn main ( ) -> Result < ( ) , Box < dyn std :: error :: Error > > {
let validator = UnityPurchaseValidator :: default ( )
. set_apple_secret ( APPLE_SECRET . to_string ( ) )
. set_google_service_account_key ( GOOGLE_KEY . to_string ( ) ) ? ;
// RECEIPT_INPUT would be the Json string containing the store, transaction id, and payload
// from Unity IAP. ie:
// "{ "Store": "GooglePlay", "TransactionID": "<Txn ID>", "Payload": "<Payload>" }"
let unity_receipt = UnityPurchaseReceipt :: from ( & std :: env :: var ( "RECEIPT_INPUT" ) ? ) ? ;
let response = validator . validate ( & unity_receipt ) . await ? ;
println ! ( "PurchaseResponse is valid: {}" , response . valid ) ;
Ok ( ( ) )
}إذا كنت تريد المزيد من التحكم الحبيبي والوصول إلى الاستجابة من نقطة نهاية المتجر ، فنحن نقدم وظائف مساعد للقيام بذلك.
لمتجر اللعب:
pub async fn validate ( receipt : & UnityPurchaseReceipt ) -> error :: Result < PurchaseResponse > {
let response = fetch_google_receipt_data ( receipt , "<GOOGLE_KEY>" ) . await ? ;
// debug or validate on your own with the data in the response
println ! ( "Expiry data: {}" , response . expiry_time ) ;
// or just simply validate the response
validate_google_subscription ( & response )
}لمتجر التطبيقات:
pub async fn validate ( receipt : & UnityPurchaseReceipt ) -> error :: Result < PurchaseResponse > {
let response = fetch_apple_receipt_data ( receipt , "<APPLE_SECRET>" ) . await ? ;
// was this purchase made in the production or sandbox environment
println ! ( "Environment: {}" , response . environment . clone ( ) . unwrap ( ) ) ;
Ok ( validate_apple_subscription ( & response ) )
}