前回の続き。課金アイテムの購入(*´ω`*)
Making Purchases
実際の購入処理はシンプル。purchasePackage()を呼ぶだけ。
try { CustomerInfo customerInfo = await Purchases.purchasePackage(package); if (customerInfo.entitlements.all["my_entitlement_identifier"].isActive) { // Unlock that great "pro" content } } on PlatformException catch (e) { var errorCode = PurchasesErrorHelper.getErrorCode(e); if (errorCode != PurchasesErrorCode.purchaseCancelledError) { showError(e); } }
購入に成功すると、更新後のCustomerInfoが返ってくる。
例外処理に関してはこのあたり。
ユーザがキャンセルした場合でも、エラーが投げられるが、
userCancelledなどで判断できるっぽい。
Error codes common to all methods
エラーコードの一覧はこんな感じ。
Common Errors
INVALID_APP_USER_ID- 不正なApp User ID。100文字以上など
INVALID_CREDENTIALS- 不正なクレデンシャル
INVALID_SUBSCRIBER_ATTRIBUTES- 顧客の属性の保存に失敗。属性の形式を確認する
- Customer Attributes | In-App Subscriptions Made Easy – RevenueCat
NETWORK_ERROR- ネットワークエラー
OFFLINE_CONNECTION_ERROR- オフラインエラー
OPERATION_ALREADY_IN_PROGRESS- すでに処理中の場合。ボタン連打など
STORE_PROBLEM- App Store, Play Storeなどの問題
SIGNATURE_VERIFICATION_FAILEDUNEXPECTED_BACKEND_RESPONSE_ERROR- RevenueCatサーバからのレスポンスエラー
UNKNOWN_BACKEND_ERROR- RevenueCatサーバのサーバエラー
UNKNOWN- 不明なエラー
Purchasing Errors
購入決済時のエラー
RECEIPT_ALREADY_IN_USE- 他のユーザがすでに同じレシートを持っている
- ログインし直すか、復元などが必要
INVALID_RECEIPT- 不正なレシート形式か、無効なレシート
INVALID_APPLE_SUBSCRIPTION_KEY(iOS)- Apple Subscription Keyが不正
MISSING_RECEIPT_FILE(iOS)- デバイスにレシートファイルがない
INELIGIBLE_ERROR(iOS)- ユーザにサブスクリプションの購入/表示する資格がない
INSUFFICIENT_PERMISSIONS_ERROR- アプリ内課金の権限がない
PAYMENT_PENDING_ERROR- entitlementを付与する前に、追加のユーザ操作が必要な場合
- ペアレンタルコントロールが必要など
PRODUCT_ALREADY_PURCHASED(iOS) /ITEM_ALREADY_OWNED(Android)- すでに購入済
PRODUCT_NOT_AVAILABLE_FOR_PURCHASE(iOS) /ITEM_UNAVAILABLE(Android)- 購入できない商品
PURCHASE_CANCELLED- ユーザが購入をキャンセル
PURCHASE_INVALID(iOS) /DEVELOPER_ERROR- 支払い方法などのエラー
PURCHASE_NOT_ALLOWED- 購入する権限が無い
Restoring Errors
復元時のエラー
以上!! 購入は簡単だけど、エラーハンドリングが大変だ。。(*´ω`*)