Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 有没有关于如何实现新的VerificationController和已知的\u事务\u密钥常量的示例?_Iphone_Objective C_Ios_In App Purchase - Fatal编程技术网

Iphone 有没有关于如何实现新的VerificationController和已知的\u事务\u密钥常量的示例?

Iphone 有没有关于如何实现新的VerificationController和已知的\u事务\u密钥常量的示例?,iphone,objective-c,ios,in-app-purchase,Iphone,Objective C,Ios,In App Purchase,我一直在考虑实施新的VerificationController来验证应用内购买: 我想知道是否有任何地方都有如何验证交易的例子,因为似乎-(BOOL)verifyPurchase:(SKPaymentTransaction*)交易是不够的,它必须在内部实现,以便在收到来自服务器的数据时验证购买 另一个问题是,如果有人知道什么是已知的\u交易\u密钥以及如何填写它,那么它只是购买的产品id吗 当事务更改为一种完成状态时,需要对其执行验证: SKPaymentTransactionStatePu

我一直在考虑实施新的VerificationController来验证应用内购买:

我想知道是否有任何地方都有如何验证交易的例子,因为似乎
-(BOOL)verifyPurchase:(SKPaymentTransaction*)交易是不够的,它必须在内部实现,以便在收到来自服务器的数据时验证购买


另一个问题是,如果有人知道什么是已知的\u交易\u密钥以及如何填写它,那么它只是购买的产品id吗

当事务更改为一种完成状态时,需要对其执行验证:

SKPaymentTransactionStatePurchased 
SKPaymentTransactionStateRestored
调用函数:

[[VerificationController sharedInstance] verifyPurchase:transaction];
- (void)saveTransactionId:(NSString *)transactionId
正如您所说,仅仅查看返回值是不够的。该函数是异步的。您需要向VerificationController.m添加一些代码,其中显示:

#warning Validation succeeded. Unlock content here.
在VerificationController.m中还有几行带有#warning的代码需要处理错误

对于base64,您可能希望使用的另一个库是:

说到

 KNOWN_TRANSACTIONS_KEY 

我也想知道它们的用途以及需要它们的原因和时间。

在文件“VerificationController.m”中,检查此功能:

[[VerificationController sharedInstance] verifyPurchase:transaction];
- (void)saveTransactionId:(NSString *)transactionId
我们可以看到,KNOWN_TRANSACTIONS_KEY是要写入NSUserDefaults的密钥。所以我们不需要碰它

登录iTunes Connect管理你的应用>(单击你的应用)>管理应用内购买>单击链接查看或生成共享秘密(在页面左下角) 它将向我们展示:

共享秘密是一个唯一的代码,您在进行 致电我们的服务器获取您的应用内购买收据


只需单击“生成”。

您可以在此处找到完整的实现:

RayWenderlich.com教程
这篇文章在RayWenderlich.com网站上提供了苹果代码的下载,但内容丰富(包括Base64方法)并进行了调整。

u共享吗,该功能用于void*Base64_解码(const char*s,size\t*data_len)char*Base64_编码(const void*buf,size\t size),我正在使用我自己的解码器,但它们总是返回空字符串。我还没有开始使用VerificationController,因为我还不知道已知的密钥是什么。有线索吗?我查看了VerificationController.m中的函数
base64\u decode
base64\u encode
,它们是空的。base64函数必须被填充,我认为一个好的选择是检查:Jonathan Wight提供的base64代码转换器,我想这可以(只需谷歌搜索一下)…我也是,bcs我也不知道我在哪里可以得到它。ITC\u内容\u提供商\u共享\u秘密你可以在itunesconnect的应用程序购买区看到。我爱你!使用上述代码,是否仍需要在您自己的服务器上执行收据验证?如果是这样的话,如何将其插入上述代码中?我的应用程序仅在5.1及以上版本上运行。显然,共享机密仅在iTunes Connect中提供。我不确定这是否意味着VerificationController.m中的这个值在其他情况下是未使用的,或者是什么。@S'pht'Kr不,不仅仅是用于订阅。我发现我的应用程序有一个秘密,我只有非消耗品。我现在和过去都没有订阅。