iOS Swift подтверждает получение чека при получении JSON - PullRequest
0 голосов
/ 02 октября 2019

При тестировании моей подписки в приложении я обнаружил, что можно получить latest_receipt. Когда дело доходит до запуска приложения в режиме релиза в App Store, все новые пользователи приложения находят исключение в строке кода:

  let latestReceipt = responseTransaction.object(forKey: "latest_receipt") as! String

Скажите, пожалуйста, в документации IAP, что возможносостояние этого поля latest_receipt? а получается пустые или нулевые ответы?

Когда я использую песочницу, она часто выдает:

{
    "latest_receipt": "MIIbngYJKoZIhvcNAQcCoIIbj...",
    "status": 0,
    "receipt": {
        "download_id": 0,
        "receipt_creation_date_ms": "1486371475000",
        "application_version": "2",
        "app_item_id": 0,
        "receipt_creation_date": "2017-02-06 08:57:55 Etc/GMT",
        "original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",
        "request_date_pst": "2017-02-06 04:41:09 America/Los_Angeles",
        "original_application_version": "1.0",
        "original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",
        "request_date_ms": "1486384869996",
        "bundle_id": "com.yourcompany.yourapp",
        "request_date": "2017-02-06 12:41:09 Etc/GMT",
        "original_purchase_date_ms": "1375340400000",
        "in_app": [{
            "purchase_date_ms": "1486371474000",
            "web_order_line_item_id": "1000000034281189",
            "original_purchase_date_ms": "1486371475000",
            "original_purchase_date": "2017-02-06 08:57:55 Etc/GMT",
            "expires_date_pst": "2017-02-06 01:00:54 America/Los_Angeles",
            "original_purchase_date_pst": "2017-02-06 00:57:55 America/Los_Angeles",
            "purchase_date_pst": "2017-02-06 00:57:54 America/Los_Angeles",
            "expires_date_ms": "1486371654000",
            "expires_date": "2017-02-06 09:00:54 Etc/GMT",
            "original_transaction_id": "1000000271014363",
            "purchase_date": "2017-02-06 08:57:54 Etc/GMT",
            "quantity": "1",
            "is_trial_period": "false",
            "product_id": "com.yourcompany.yourapp",
            "transaction_id": "1000000271014363"
        }],
        "version_external_identifier": 0,
        "receipt_creation_date_pst": "2017-02-06 00:57:55 America/Los_Angeles",
        "adam_id": 0,
        "receipt_type": "ProductionSandbox"
    },

При запуске в производство она дает что-то вроде:

 {'environment': 'Production',
  'receipt': {'adam_id': 1465637208,
              'app_item_id': 1465637208,
              'application_version': '33',
              'bundle_id': 'gogoyuedu.testing.anc',
              'download_id': 7505071111117518,
              'in_app': [],
              'original_application_version': '31',
              'original_purchase_date': '2019-09-30 05:16:04 Etc/GMT',
              'original_purchase_date_ms': '1569820564000',
              'original_purchase_date_pst': '2019-09-29 22:16:04 '
                                            'America/Los_Angeles',
              'receipt_creation_date': '2019-10-02 08:49:40 Etc/GMT',
              'receipt_creation_date_ms': '1570006180000',
              'receipt_creation_date_pst': '2019-10-02 01:49:40 '
                                           'America/Los_Angeles',
              'receipt_type': 'Production',
              'request_date': '2019-10-02 08:49:47 Etc/GMT',
              'request_date_ms': '1570006187285',
              'request_date_pst': '2019-10-02 01:49:47 America/Los_Angeles',
             'version_external_identifier': 832979108},
  'status': 0}

При моем быстром методе я долженполучить запись покупок под атрибутом in_app вместо latest_receipt_info?

Если так, как я могу получить свою последнюю квитанцию ​​в поле in_app?

1 Ответ

1 голос
/ 02 октября 2019

Всегда полезно быть в безопасности:

try

if let latestReceipt = responseTransaction.object(forKey: "latest_receipt") as? String {
// do something here
}

Это может быть причиной того, что у "новых" пользователей нет последних поступлений, но у вас естьна вашем телефоне, потому что вы уже что-то "купили"?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...