gpt4 book ai didi

php - iOS 的自动续订订阅 : How to get Server-side receipt validation?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:39 25 4
gpt4 key购买 nike

我刚刚开发完我的应用程序,创建我的 Apple 组织帐户,在 iTunes 连接端创建我需要的所有内容,但我现在的问题是开发 server-side receipt validation (因为 Validating Receipts Locally 似乎有一些潜在的中间人安全问题)。

...
// Load the receipt from the app bundle.
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if (!receipt) { /* No local receipt -- handle the error. */ }

/* ... Send the receipt data to your server ... */
...

我很清楚该图片上描述的验证过程:

enter image description here

我的主要问题是我不是服务器问题的专家,如果你有一些例子说明我必须为收据验证编写什么代码以及我必须使用什么技术(PHP、Angular 或其他... ).

(第一个例子:ticket 上,服务器端的代码是否足以完成验证?)

(第二个例子:通过使用 JSON 将 UDID 和以 Base64 编码的收据发送到服务器,服务器向应用商店询问,应用商店发送好的,服务器会向应用程序发送 ok。如果是好的过程,我可以轻松完成。Ticket 2提前致谢。

最佳答案

这是我的解决方案:

我使用我的服务器来验证我的收据,如下所示:

https://github.com/aporat/store-receipt-validator

use ReceiptValidator\iTunes\Validator as iTunesValidator;

$validator = new iTunesValidator(iTunesValidator::ENDPOINT_PRODUCTION); // Or iTunesValidator::ENDPOINT_SANDBOX if sandbox testing

$receiptBase64Data = 'ewoJ
......
OVG8xTlNCRmRHTXZSMDFVSWpzS2ZRPT0iOwoJImVudmlyb25tZW50IiA9ICJTYW5kYm94IjsKCSJwb2QiID0gIjEwMCI7Cgkic2lnbmluZy1zdGF0dXMiID0gIjAiOwp9';

try {
$response = $validator->setReceiptData($receiptBase64Data)->validate();
// $sharedSecret = '1234...'; // Generated in iTunes Connect's In-App Purchase menu
// $response = $validator->setSharedSecret($sharedSecret)->setReceiptData($receiptBase64Data)->validate(); // use setSharedSecret() if for recurring subscriptions
} catch (Exception $e) {
echo 'got error = ' . $e->getMessage() . PHP_EOL;
}

if ($response->isValid()) {
echo 'Receipt is valid.' . PHP_EOL;
echo 'Receipt data = ' . print_r($response->getReceipt()) . PHP_EOL;
} else {
echo 'Receipt is not valid.' . PHP_EOL;
echo 'Receipt result code = ' . $response->getResultCode() . PHP_EOL;
}

然后我服务器上的 WS 向我发送是否正常。

(iPad本地进程不可取,可引用:I'm getting 21004 as status value in reply from apple's sandbox server testing auto-renewable subscriptions in ios?)

关于php - iOS 的自动续订订阅 : How to get Server-side receipt validation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47892798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com