CakePHPでApp Storeレシート取得

Boleh VELTRA! ナオユキです。

ちょっとエンジニアっぽいことをしたのでメモ程度に残しておきます。

iOSアプリにおいて,レシート(课金情报)をサーバーサイドで取得してみました。

公式のプログラミンミイドはこちら

初心者に教える必要があったので,省略せずに书きました

 函数_checkReceipt($ receipt_data = null){ 
$ url ='
https://buy.itunes.apple.com/verifyReceipt';
$ options = JSON_HEX_TAG
JSON_HEX_APOS
JSON_HEX_AMP
JSON_HEX_QUOT
JSON_PRETTY_PRINT;
$ send_data = array();
$ send_data [“ password”] = {App内课金共有シークレット※1};
$ send_data [“ receipt-data”] = $ receipt_data;
$ content = json_encode($ send_data,$ options); $ opts ['http'] = [
'method'=>'POST',
'header'=>'Content-type:application / json',
'内容'=> $ content
];
$ context = stream_context_create($ opts); //本番环境
$ response = file_get_contents($ url,false,$ context);
//本番环境にテスト环境のレシートを问い合わせてしまった场合
$ response = json_decode($ response);
如果(@ $ response-> status == 21007){
$ url ='
https://sandbox.itunes.apple.com/verifyReceipt';
$ response = file_get_contents($ url,false,$ context);
$ response = json_decode($ response);
}
if(@ $ response-> status == 0){
★必要な处理を入れる
}
}

※1:App内课金共有シークレットの取得

AppイApp→画面左上の「・ ・ ・」マークをクリック→App内课金共有シークレット

必要な处理部分は记录しませんでしたが,调べたところlatest_receipt_infoを参照して,动かしたいプログラムをこちょこちょと书けば良さそうです。

in_appとlatest_receipt_infoのどちらを使うの??と言う质问がよく见られますが,こちらは自动更新があった场合に古いレシートでアクセスすると,2つの中身の违いで分かるようです。(他の方のブログがたくさんあるので省略)

たまにエンジニアっぽいことをすると楽しいですね!