美文网首页
iOS内购买防作弊说明

iOS内购买防作弊说明

作者: 1150b290110c | 来源:发表于2020-01-16 17:22 被阅读0次

    iOS客户端完成内购买后,会得到一个收据(receipt)。需要服务器用这个收据发送给苹果进行验证,防止内购买作弊。

    服务端向苹果服务器发送post请求

    苹果测试环境 https://sandbox.itunes.apple.com/verifyReceipt,

    苹果生产环境 https://buy.itunes.apple.com/verifyReceipt

    开发和苹果审核时要使用测试环境,上架苹果商店后要使用生产环境。服务端可以配置固定账号用于开发和测试,用苹果测试环境验证,其它账号用生产环境验证。

    以下适用于非自动订阅的商品。

    请求的http body是json格式,receipt-data字段对应的就是收据数据,例如

    {

    "receipt-data":"***"

    }

    苹果服务器返回的http body里的status字段对应的是收据状态,若为0,则收据为真。

    在receipt字段里,bundle_id 是APP的固定ID,可用于检查收据是否属于我们的APP。

    In_app数组包含了用户每次的交易,

    product_id 是商品id,要与购买的商品ID相符才有效。

    transaction_id标志了每次的交易。服务端通过新增的transaction_id,得知此次的购买,添加用户时长。

    例如

    {

        "receipt": {

            "receipt_type": "ProductionSandbox",

            "adam_id": 0,

            "app_item_id": 0,

            "bundle_id": "***",

            "application_version": "6",

            "download_id": 0,

            "version_external_identifier": 0,

            "receipt_creation_date": "2019-11-20 06:33:11 Etc/GMT",

            "receipt_creation_date_ms": "1574231591000",

            "receipt_creation_date_pst": "2019-11-19 22:33:11 America/Los_Angeles",

            "request_date": "2019-11-20 07:08:44 Etc/GMT",

            "request_date_ms": "1574233724373",

            "request_date_pst": "2019-11-19 23:08:44 America/Los_Angeles",

            "original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",

            "original_purchase_date_ms": "1375340400000",

            "original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",

            "original_application_version": "1.0",

            "in_app": [

                ...

                {

                    "quantity": "1",

                    "product_id": "***",

                    "transaction_id": "1000000592835282",

                    "original_transaction_id": "1000000592835282",

                    "purchase_date": "2019-11-15 08:28:40 Etc/GMT",

                    "purchase_date_ms": "1573806520000",

                    "purchase_date_pst": "2019-11-15 00:28:40 America/Los_Angeles",

                    "original_purchase_date": "2019-11-15 08:28:40 Etc/GMT",

                    "original_purchase_date_ms": "1573806520000",

                    "original_purchase_date_pst": "2019-11-15 00:28:40 America/Los_Angeles",

                    "is_trial_period": "false"

                }

            ]

        },

        "status": 0,

        "environment": "Sandbox"

    }

    补充说明:在向苹果验证收据,返回的表示购买时间的字段中

    purchase_date 其时间格式类似ISO 8601

    purchase_date_ms  是Unix时间戳格式,单位为毫秒

    purchase_date_pst  是太平洋时区

    相关文章

      网友评论

          本文标题:iOS内购买防作弊说明

          本文链接:https://www.haomeiwen.com/subject/petqzctx.html