要點說明
透傳參數(shù)
1.設(shè)置
setObfuscatedAccountId
setObfuscatedAccountId
這個2個參數(shù)都明確限制了64字符选浑,實際上到不了64就限制了。而且不能有明確id。所以這里用uuid來傳遞是可行的
2.獲取透傳參數(shù)
通過Purchase中的getAccountIdentifiers獲取到AccountIdentifiers涎才,然后再調(diào)用
getObfuscatedAccountId
getObfuscatedProfileId
商品種類
INAPP 內(nèi)容購買
SUBS 訂閱
其中INAPP咆繁,在應(yīng)用內(nèi)部可以細分為消耗品與一次性商品蚓挤。
這里的區(qū)別主要在確認消費部分的不同
授予權(quán)利并確認購買交易的流程取決于購買的是非消耗型商品蟹但、消耗型商品逊笆,還是訂閱癣缅。
消耗類需要使用BillingClient.consumeasync()
非消耗型商品和訂閱類使用BillingClient.acknowledgePurchase()
如果是消耗類商品使用了acknowledgepurchase厨剪,會造成再次購買時哄酝,提示你已擁有的提示,無法支付
錯誤相關(guān)
- ITEM_UNAVAILABLE :4
SERVICE_UNAVAILABLE :2 最新 錯誤碼為2也有可能
您所要求的項目目前無法購買
范例
當商品信息querySkuDetailsAsync接口都已經(jīng)能拿到正確信息了祷膳,但是卻無法支付陶衅。對接過程已經(jīng)正確完成。
可能的原因
-
檢查是否加入了測試直晨。通過下圖的中的鏈接搀军。點擊驗證是否已經(jīng)加入測試
鏈接地址
結(jié)果頁面
- Google Play In-app Billing API version is less than 3
參考
本身版本大于3,那么可以考慮是賬號的問題勇皇。PS:開模擬器罩句,重新連TW的vpn,然后登錄敛摘,就可以購買了
狀態(tài)碼信息
@Retention(RetentionPolicy.SOURCE)
public @interface BillingResponseCode {
int SERVICE_TIMEOUT = -3;
int FEATURE_NOT_SUPPORTED = -2;
int SERVICE_DISCONNECTED = -1;
int OK = 0;
int USER_CANCELED = 1;
int SERVICE_UNAVAILABLE = 2;
int BILLING_UNAVAILABLE = 3;
int ITEM_UNAVAILABLE = 4;
int DEVELOPER_ERROR = 5;
int ERROR = 6;
int ITEM_ALREADY_OWNED = 7;
int ITEM_NOT_OWNED = 8;
}