我有10个ios应用程序在应用程序购买中订阅。我需要购买一个订阅才能在10个应用中有效。因此,我需要服务器端收据验证。流程如下:当客户支付订阅费用时,收据将发送到Firebase数据库,然后我需要一个PHP脚本来接收收据数据。作为输入并向App store发送“POST”请求。然后,App Store将验证收据并返回JSON对象。然后,我们用最新的副本覆盖旧收据。此外,每当用户登录任何应用程序时,我们都会重复此过程并更新收据以确保用户的订阅仍然有效。我如何在Firebase中执行此操作?如果我不能,你可以建议任何替代方案吗?
我在一些论坛上看到Firebase的“云功能”可能会有这样的事情。但是,我不完全确定。此外,我不太坚持使用PHP。如果我能够使用不同的脚本语言获得相同的结果,我会非常高兴。
感谢。
以下是PHP脚本的示例:
<?php
function getReceiptData($receipt)
{
$fh = fopen('showme.txt',w);
fwrite($fh,$receipt);
fclose($fh);
$endpoint = 'https://sandbox.itunes.apple.com/verifyReceipt';
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $receipt);
$response = curl_exec($ch);
$errno = curl_errno($ch);
$errmsg = curl_error($ch);
curl_close($ch);
$msg = $response.' - '.$errno.' - '.$errmsg;
echo $response;
}
foreach ($_POST as $key=>$value){
$newcontent .= $key.' '.$value;
}
$new = trim($newcontent);
$new = trim($newcontent);
$new = str_replace('_','+',$new);
$new = str_replace(' =','==',$new);
if (substr_count($new,'=') == 0){
if (strpos('=',$new) === false){
$new .= '=';
}
}
$new = '{"receipt-data":"'.$new.'","password":"<INSERT YOUR IN-APP PURCHASE SHARED SECRET HERE>"}';
$info = getReceiptData($new);
?>