问题描述
- 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) . ""rn"" '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 ); }}?>
解决方案
花点小钱去威客网雇一个力巴吧,
时间: 2024-08-03 16:00:09