迷彩-西装 2015-04-15 10:20 采纳率: 0%
浏览 1398

C#/.ne 求翻译一段php的代码,感激不尽!

关于In-App Purchase iap内付费的二次验证,第一次接触这个,只找到了一段php的代码,但是本人不会php,请高能帮忙翻译一下

<?php
/**
 * @说明:        iap 购买服务器验证逻辑
 * @作者:        linux_wuliqiang@163.com
 *
 * @data:         2013-05-06
 *
 * @备注:        客户端进行 iap 购买后,需要服务器再次进行验证。确定玩家是否购买成功
 *
 *
 */

class BaseIapCheck
{
    // 是否为沙盒测试环境
    const IapCheck_IsSandBox = true;


    /**
     * 得到 iap 购买的单据数据,如果成功购买了,返回正常的购买数据,否则返回 null
     * string $receipt, 客户端 iap 购买时,返回的单据数据, 此数据是在客户端经过 NSString*encodingStr = [iapData base64EncodedString]; 处理后的数据
     *
     * return ,验证成功,返回正常的购买数据,验证失败,返回 null
     *
     * 备注:可以通过 product_id 来判定具体购买的是哪一个收费道具
     */
    public static function GetReceiptData($receipt)
    {
        if (self::IapCheck_IsSandBox)
        {
            $url = 'https://sandbox.itunes.apple.com/verifyReceipt';
        }
        else
        {
            $url = 'https://buy.itunes.apple.com/verifyReceipt';
        }

        $postDataJson = json_encode(array('receipt-data' => $receipt));
        $opts = array
        (
                'http' => array
                (
                        'method' => 'POST',
                        'header'=> "Content-type: application/json" .                        // 必须设置为 application/json 格式
                        "Content-Length: " . strlen($postDataJson) . "\r\n",
                        'content' => $postDataJson
                )
        );

        //生成请求的句柄文件
        $context = stream_context_create($opts);
        $html = file_get_contents($url, false, $context);
        $data = json_decode($html);

//         echo '<br>';
//         echo '$html <br>';
//         var_dump($html);
//         echo '<br>';
//         echo 'data <br>';
//         var_dump($data);
//         echo '<br>';

        //判断返回的数据是否是对象
        if (!is_object($data))
        {
            return null;
        }

        //判断是否购买成功
        if (!isset($data->status) || $data->status != 0)
        {
            return null;
        }

        //返回产品的信息
        return array(
                'quantity' => $data->receipt->quantity,
                'product_id' => $data->receipt->product_id,
                'transaction_id' => $data->receipt->transaction_id,
                'purchase_date' => $data->receipt->purchase_date,
                'item_id' => $data->receipt->item_id,
                'bid' => $data->receipt->bid,
                'bvrs' => $data->receipt->bvrs
        );
    }
}


?>
  • 写回答

1条回答 默认 最新

  • threenewbee 2015-04-15 17:49
    关注

    花点小钱去威客网雇一个力巴吧,

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)