くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

RevenueCat入門 その10 | 課金アイテムの購入

前回の続き。課金アイテムの購入(*´ω`*)

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
  • NETWORK_ERROR
    • ネットワークエラー
  • OFFLINE_CONNECTION_ERROR
    • オフラインエラー
  • OPERATION_ALREADY_IN_PROGRESS
    • すでに処理中の場合。ボタン連打など
  • STORE_PROBLEM
  • SIGNATURE_VERIFICATION_FAILED
  • UNEXPECTED_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

復元時のエラー

  • INVALID_RECEIPT
    • 不正なレシート形式か、無効なレシート
  • MISSING_RECEIPT_FILE(iOS)
    • バイスにレシートファイルがない

以上!! 購入は簡単だけど、エラーハンドリングが大変だ。。(*´ω`*)