注册 登录
主题 : 内购返回21004状态码
级别: 骑士
状态: 连续签到 - [44天]
UID: 497385
精华: 0
发帖: 406
可可豆: 637 CB
威望: 535 点
在线时间: 368(时)
注册时间: 2015-08-14
最后登录: 2017-12-13
10 楼:  发表于: 2017-08-12 12:42    发自: Web Page
回 9楼(啦啦F) 的帖子
很确定你的代码没问题,我直接拷贝你的代码进我内购逻辑,执行完全没问题。


2017-08-12 12:36:40.495516+0800 monkeyblog[5696:1147477] dict = {
    environment = Sandbox;
    receipt =     {
        "adam_id" = 0;
        "app_item_id" = 0;
        "application_version" = "1.0.33";
        "bundle_id" = "xxxx.xxxx.xxxx.xxxx";
        "download_id" = 0;
        "in_app" =         (
                        {
                "is_trial_period" = false;
                "original_purchase_date" = "2017-08-12 04:36:30 Etc/GMT";
                "original_purchase_date_ms" = 1502512590000;
                "original_purchase_date_pst" = "2017-08-11 21:36:30 America/Los_Angeles";
                "original_transaction_id" = 100000032389xxxx;
                "product_id" = 1260920136053786001;
                "purchase_date" = "2017-08-12 04:36:30 Etc/GMT";
                "purchase_date_ms" = 1502512590000;
                "purchase_date_pst" = "2017-08-11 21:36:30 America/Los_Angeles";
                quantity = 1;
                "transaction_id" = 1000000323894xxx;
            }
        );
        "original_application_version" = "1.0";
        "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";
        "receipt_creation_date" = "2017-08-12 04:36:30 Etc/GMT";
        "receipt_creation_date_ms" = 1502512590000;
        "receipt_creation_date_pst" = "2017-08-11 21:36:30 America/Los_Angeles";
        "receipt_type" = ProductionSandbox;
        "request_date" = "2017-08-12 04:36:37 Etc/GMT";
        "request_date_ms" = 1502512597640;
        "request_date_pst" = "2017-08-11 21:36:37 America/Los_Angeles";
        "version_external_identifier" = 0;
    };
    status = 0;
}

但是有一点我不知道会不会引起这个问题。下面的代码:
               // 发送到苹果服务器验证凭*****br />                [self verifyPurchaseWithPaymentTrasaction];
                
                NSLog(@"从队列中删除商品");
                // 将交易从交易队列中删除
                [[SKPaymentQueue defaultQueue] finishTransaction:tran];

你可以考虑将finishtransaction放在验证前面试试。
There is no shortcut to success. Only by knocking more codes can lead you to the way to success...
级别: 骑士
状态: 连续签到 - [44天]
UID: 497385
精华: 0
发帖: 406
可可豆: 637 CB
威望: 535 点
在线时间: 368(时)
注册时间: 2015-08-14
最后登录: 2017-12-13
11 楼:  发表于: 2017-08-12 12:51    发自: Web Page
还有个问题,我突然想起来你是订阅类的内购,你是否设置了app共享密钥,如果订阅类请求验证内购的话,我记得是需要app共享密钥的。

App 专用共享密钥

App 专用共享密钥是用于接收此 App 自动续订订阅收据的唯一代码。如果您需要将此 App 转让给其他开发人员,或者需要将主共享密钥设置为专用,可能需要使用 App 专用共享密钥。


https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html

其中『Send the Receipt Data to the App Store』这部分有参数说明。

具体带app共享密钥的请求方法在这里有示例代码。
[ 此帖被技术哥丶在2017-08-12 12:59重新编辑 ]

There is no shortcut to success. Only by knocking more codes can lead you to the way to success...
级别: 侠客
状态: 连续签到 - [8天]
UID: 577446
精华: 0
发帖: 108
可可豆: 427 CB
威望: 409 点
在线时间: 170(时)
注册时间: 2016-08-11
最后登录: 2017-10-08
12 楼:  发表于: 2017-08-13 14:10    发自: Web Page
回 11楼(技术哥丶) 的帖子
是的   订阅型内购    

必须要带上共享密钥这个参数才行      现在问题解决了

话说     大哥    我在别人的帖子里面    也能看到你的身影  

你真是神奇了~~~~           你一直都在逛帖子吗
级别: 骑士
状态: 连续签到 - [44天]
UID: 497385
精华: 0
发帖: 406
可可豆: 637 CB
威望: 535 点
在线时间: 368(时)
注册时间: 2015-08-14
最后登录: 2017-12-13
13 楼:  发表于: 2017-08-14 09:00    发自: Web Page
回 12楼(啦啦F) 的帖子
退居二线,目前工作不是太多,周五到周日基本都是逛坛子。
There is no shortcut to success. Only by knocking more codes can lead you to the way to success...
级别: 骑士
状态: 连续签到 - [21天]
UID: 527892
精华: 0
发帖: 218
可可豆: 485 CB
威望: 448 点
在线时间: 411(时)
注册时间: 2015-12-01
最后登录: 2017-12-15
14 楼:  发表于: 2017-08-14 09:58    发自: Web Page
我也遇到过你这个问题  然后 百度谷歌半天 原来是自动订阅密钥的问题     那时候找了半天的问题
级别: 侠客
状态: 连续签到 - [8天]
UID: 577446
精华: 0
发帖: 108
可可豆: 427 CB
威望: 409 点
在线时间: 170(时)
注册时间: 2016-08-11
最后登录: 2017-10-08
15 楼:  发表于: 2017-08-14 13:44    发自: Web Page
回 13楼(技术哥丶) 的帖子
大哥    现在我又遇到问题:

我获取到的凭据后,应该怎么处理呢?

我有自己的服务器,把凭据存储到本地Usedefault还是存到自己的服务器

还有判断是否到期提示       这个放在自己服务器做    还是?

留个联系方式吧      可以一起讨论技术问题~~
级别: 骑士
状态: 连续签到 - [44天]
UID: 497385
精华: 0
发帖: 406
可可豆: 637 CB
威望: 535 点
在线时间: 368(时)
注册时间: 2015-08-14
最后登录: 2017-12-13
16 楼:  发表于: 2017-08-14 15:21    发自: Web Page
回 15楼(啦啦F) 的帖子
QQ:9795439,个人推荐放在服务器进行收据的验证和存储。
There is no shortcut to success. Only by knocking more codes can lead you to the way to success...
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部