使用PHP脚本进行Firebase服务器端验证

时间:2017-09-15 06:51:05

标签: php ios firebase

我有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);
    ?>

0 个答案:

没有答案