热点新闻
IAP storekit1答疑
2024-10-15 18:13  浏览:3254  搜索引擎搜索“广企汇”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在广企汇看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

在用苹果IAP进行内购时常见疑惑答疑,都是自己摸索的如有错误请评论告知

首先我们都知道在storekit1中我们需要上传receipt(票据)让服务端去苹果后台验证是否是有效的票据,如果是给用户发放相应的权益,解析的票据见文章末尾。

疑问一: in_app:[] 和 latest_receipt_info:[] 中的数据数目为什么不一致,为什么有时候latest_receipt_info 比 in_app 中的数量多

答: 如果你的 in_app 中的数据比latest_receipt_info中的数量少,那是因为你当前传给苹果的票据不是最新的票据,可以尝试用latest_receipt重新请求一遍就可以看到两者数目数量是一致的了。经过我的测试我发现latest_receipt_info[].count > in_app [].count

疑问二:为什么 pending_renewal_info 中的 auto_renew_product_id 和 product_id 不一致

答:我们知道 pending_renewal_info 代表的是下个续费周期订阅的产品,特别是切换套餐时就会出现和我们当前已经订阅的套餐不一致的情况。

product_id代表的是切换前的套餐
auto_renew_product_id代表的切换后的套餐
疑问三:StoreKit 沙盒模式下订阅已订阅的订阅就会弹出以下弹框




IAP内购图


此时重启App就会导致下面的回调函数被调用,并且重新创建的收据中所有以前的交易,同时transication_id还不存在于解析后的receipt中,导致上报给后台后后台找不到对应的订单

public func paymentQueue(_ queue: SKPaymentQueue,updatedTransactions transactions: [SKPaymentTransaction])

答:暂时无解,建议做成和苹果一样,订阅成功后把该项隐藏掉或者不可点击。哪位大佬知道其他办法可以评论一下,感谢

{ "environment": "Sandbox", "receipt": { "receipt_type": "ProductionSandbox", "adam_id": 0, "app_item_id": 0, "bundle_id": "com.demo.test", "application_version": "3999", "download_id": 0, "version_external_identifier": 0, "receipt_creation_date": "2022-11-16 16:10:16 Etc/GMT", "receipt_creation_date_ms": "1668615016000", "receipt_creation_date_pst": "2022-11-16 08:10:16 America/Los_Angeles", "request_date": "2022-11-16 16:10:55 Etc/GMT", "request_date_ms": "1668615055425", "request_date_pst": "2022-11-16 08:10:55 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": "com.test.demo.month20", "transaction_id": "2000000204490048", "original_transaction_id": "2000000204447356", "purchase_date": "2022-11-16 15:33:58 Etc/GMT", "purchase_date_ms": "1668612838000", "purchase_date_pst": "2022-11-16 07:33:58 America/Los_Angeles", "original_purchase_date": "2022-11-16 14:39:04 Etc/GMT", "original_purchase_date_ms": "1668609544000", "original_purchase_date_pst": "2022-11-16 06:39:04 America/Los_Angeles", "expires_date": "2022-11-16 15:38:58 Etc/GMT", "expires_date_ms": "1668613138000", "expires_date_pst": "2022-11-16 07:38:58 America/Los_Angeles", "web_order_line_item_id": "2000000015013502", "is_trial_period": "false", "is_in_intro_offer_period": "false", "in_app_ownership_type": "PURCHASED" }, ], "latest_receipt_info": [ { "quantity": "1", "product_id": "com.test.demo.month20", "transaction_id": "2000000204490048", "original_transaction_id": "2000000204447356", "purchase_date": "2022-11-16 15:33:58 Etc/GMT", "purchase_date_ms": "1668612838000", "purchase_date_pst": "2022-11-16 07:33:58 America/Los_Angeles", "original_purchase_date": "2022-11-16 14:39:04 Etc/GMT", "original_purchase_date_ms": "1668609544000", "original_purchase_date_pst": "2022-11-16 06:39:04 America/Los_Angeles", "expires_date": "2022-11-16 15:38:58 Etc/GMT", "expires_date_ms": "1668613138000", "expires_date_pst": "2022-11-16 07:38:58 America/Los_Angeles", "web_order_line_item_id": "2000000015013502", "is_trial_period": "false", "is_in_intro_offer_period": "false", "in_app_ownership_type": "PURCHASED" }, { "quantity": "1", "product_id": "com.test.demo.month20", "transaction_id": "2000000204490048", "original_transaction_id": "2000000204447356", "purchase_date": "2022-11-16 15:33:58 Etc/GMT", "purchase_date_ms": "1668612838000", "purchase_date_pst": "2022-11-16 07:33:58 America/Los_Angeles", "original_purchase_date": "2022-11-16 14:39:04 Etc/GMT", "original_purchase_date_ms": "1668609544000", "original_purchase_date_pst": "2022-11-16 06:39:04 America/Los_Angeles", "expires_date": "2022-11-16 15:38:58 Etc/GMT", "expires_date_ms": "1668613138000", "expires_date_pst": "2022-11-16 07:38:58 America/Los_Angeles", "web_order_line_item_id": "2000000015013502", "is_trial_period": "false", "is_in_intro_offer_period": "false", "in_app_ownership_type": "PURCHASED" } ], }, "latest_receipt": "****", "pending_renewal_info": [ { "expiration_intent": "1", "auto_renew_product_id": "com.test.demo.month50", "is_in_billing_retry_period": "0", "product_id": "com.test.demo.month20", "original_transaction_id": "2000000204447356", "auto_renew_status": "0" } ], "status": 0 }

发布人:dc5d****    IP:124.223.189***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发