1 个不稳定版本
0.1.0 | 2021年6月10日 |
---|
#5 in #iap
30KB
647 行代码(不包括注释)
iapiab
iapiab 通过 AppStore 和 GooglePlayStore 验证购买收据。
iapiab 受启发于 iap 和 iab 的 golang 实现
安装
[dependencies]
iapiab = 0.1.0
或获取最新分支。
[dependencies]
iapiab = { git = "https://github.com/yoshidan/rust-iap/", branch = "main"}
快速入门
应用内购买(通过 App Store)
use iapiab::appstore::model::IAPRequest;
use iapiab::appstore::validator::{IAPClient, IAPVerifier};
#[tokio::main]
async fn main() {
let v = IAPRequest {
receipt_data: "your receipt data encoded by base64".to_string(),
password: None,
exclude_old_transactions: false,
};
let client = IAPClient::new(reqwest::Client::new());
let res = client.verify(&v).await.unwrap();
println!("{}", res.status);
}
应用内计费(通过 GooglePlay)
use iapiab::playstore::validator::{IABClient, IABProduct};
#[tokio::main]
async fn main() {
let client = IABClient::new(
b"your google service account json key",
hyper::Client::builder().build(hyper_rustls::HttpsConnector::with_native_roots()),
)
.await;
let res = client
.verify("package name", "product id", "purchase token")
.await;
println!("{}", res.unwrap().acknowledgement_state.unwrap());
}
应用内计费签名验证(通过 GooglePlay)
use iapiab::playstore::validator::{verify_signature, SignatureError};
#[tokio::main]
async fn main() {
// ex) UnityIAP payload is {"json":{"orderId":"GPA.-..",...,"acknowledged":".."},"signature":"XXXXX", ...}
let receipt = b"receipt json value"; //{"orderId":"GPA.-..",...,"acknowledged":".."}
let pub_key = b"your pub key in play store";
let signature = b"signature value";
let result = verify_signature(pub_key, receipt, signature);
}
支持
应用内购买
此验证器支持 iOS7 或更高版本的收据类型。
应用内计费
此验证器使用 版本 3 API。
许可
iapiab 采用 MIT 许可。
依赖项
~27–42MB
~797K SLoC