Apple Grace Period- und Billing Retry-Status bei der Verarbeitung von Benutzerbelegen

Bild



Hallo. In diesem Artikel werden wir über ein so häufiges Problem wie einen Zahlungsfehler in mobilen Apps mit einem Abonnementmodell sprechen. Wenn wir die durchschnittlichen Daten aus dem Qonversion-System entnehmen, gehen 15 bis 20% der Versuche an das Abrechnungsproblem. Davon kehren etwa 15% in einen bezahlten Staat zurück. Der Grace Period-Support verbessert die Benutzererfahrung und erhöht die Rendite für den bezahlten Zustand.



Planen:



  • Wie funktioniert Billing Retry?
  • Grace Period?
  • Billing Retry


Billing Retry?



.



, .



Bild



, Apple . , Billing Retry. 60 . Apple . . , 10 . LTV, .



is_in_billing_retry_period expiration_intent:



"pending_renewal_info": [
    {
        "expiration_intent": "2",
        "auto_renew_product_id": "product.99.trial.3d",
        "original_transaction_id": "10000000306492965",
        "is_in_billing_retry_period": "1",
        "product_id": "product.99.trial.3d",
        "auto_renew_status": "1"
    }
]


.



Grace Period?



, Apple , . Grace Period. Grace Period - Enable Billing Grace Period for Auto-Renewable Subscriptions, , Apple .



Grace Period :



Bild



:



1: Grace Period



Bild



, Apple . Grace Period Billing Retry . Grace Period, , . Apple , .



2: Grace Period



Bild



Apple Grace Period, , Billing Retry . Apple , .



Grace Period , JSON response, grace_period_expires_date_ms, .



"pending_renewal_info": [
    {
        "expiration_intent": "2",
        "grace_period_expires_date": "2020-09-05 23:41:42 Etc/GMT",
        "auto_renew_product_id": "product.99.trial.3d",
        "original_transaction_id": "10000000306492965",
        "is_in_billing_retry_period": "1",
        "grace_period_expires_date_pst": "2020-09-05 16:41:42 America/Los_Angeles",
        "product_id": "product.99.trial.3d",
        "grace_period_expires_date_ms": "1599349302000",
        "auto_renew_status": "1"
    }
]


, is_in_billing_retry_period. expires_date_ms

receipt.in_app



"in_app": [
            {
                "quantity": "1",
                "product_id": "product.99.trial.3d",
                "transaction_id": "0000000306492966",
                "original_transaction_id": "0000000306492965",
                "purchase_date": "2020-08-25 02:53:10 Etc/GMT",
                "purchase_date_ms": "1598323990000",
                "purchase_date_pst": "2020-08-24 19:53:10 America/Los_Angeles",
                "original_purchase_date": "2020-08-25 02:53:12 Etc/GMT",
                "original_purchase_date_ms": "1598323992000",
                "original_purchase_date_pst": "2020-08-24 19:53:12 America/Los_Angeles",
                "expires_date": "2020-09-25 02:53:10 Etc/GMT",
                "expires_date_ms": "1601002390000",
                "expires_date_pst": "2020-09-24 19:53:10 America/Los_Angeles",
                "web_order_line_item_id": "000000003253190",
                "is_trial_period": "false",
                "is_in_intro_offer_period": "false"
            }
        ]


60 , is_in_billing_retry_period grace_period_expires_date , expires_date_ms, , auto_renew_status 0



Billing Retry Grace Period



, .



.



Qonversion.checkPermissions { (permissions, error) in
  if let error = error {
    // handle error
    return
  }

  if let premium = permissions["premium"], premium.isActive {
    switch premium.renewState {
       case .billingIssue:
         // Grace period: permission is active, but there was some billing issue.
         // Prompt the user to update the payment method.
         break
       default: break
    }
  }
}



All Articles