美文网首页
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内购买防作弊说明

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

  • iOS内购买自动续期订阅说明

    服务端验证自动续期订阅的收据过程如下: 服务端收到客户端发送的收据后,向苹果服务器发送post请求 苹果测试环境 ...

  • iOS12内购之协议,税务和银行业务

    iOS内购,全名iOS应用内购买,用户在iOS的App内购买虚拟物品或服务时,开发者和APPLE七三分成。用户付的...

  • ios内购注意事项

    内购两种方式 ios内购及一些常用的破解手段 iap内购破解原理 苹果官方内购demo 内购的消耗性和非消耗性购买说明

  • 防作弊维度

    可用于 防刷 提现 创建专题:防作弊维度 - 专题 - 简书 1 设备唯一标识符 iOS获取设备的唯一标识的方法总...

  • iOS内购流程文档-Lion

    iOS内购流程: iOS内购 什么时候用到呢? 虚拟产品就需要用到iOS内购;购买的商品,是在本app中...

  • 鸟哥揭秘 | ASO积分墙如何防作弊?

    本文整理自鸟哥于鸟哥学院直播课分享 本文大纲 1.如何理解积分墙防作弊 2.平台如何防作弊 3.广告主如何防作弊 ...

  • iOS内购买流程()

    消耗型 消耗性的用户购买之后会生成一个 receipt,这个 receipt 会一直保存到用户下一次购买,用户再次...

  • 应用内购(In-App Purchase)常见问题解答

    应用内购(In-App Purchase)常见问题解答iOS的应用内购买 iAP 坑 iOS内购你看我就够了(一)...

  • ios-内购(IAP)

    StoreKit 框架内购:在ios中专指苹果内购,在app内购买商品时使用苹果的支付方式进行购买;如果在app内...

网友评论

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

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