/** * 21000 App Store不能讀取你提供的JSON對象 * 21002 receipt-data域的數據有問題 * 21003 receipt無法通過驗證 * 21004 提供的shared secret不匹配你賬號中的shared secret * 21005 receipt服務器當前不可用 * 21006 receipt合法,但是訂閱已過期。服務器接收到這個狀態碼時,receipt數據仍然會解碼並一起發送 * 21007 receipt是Sandbox receipt,但卻發送至生產系統的驗證服務 * 21008 receipt是生產receipt,但卻發送至Sandbox環境的驗證服務 * * $receipt_data 蘋果返回的支付憑證 * $sandbox 為1時$url為測試地址,為0時為正試地址 */ function acurl($receipt_data, $sandbox=0){ //小票信息 $POSTFIELDS = array("receipt-data" => $receipt_data); $POSTFIELDS = json_encode($POSTFIELDS); //正式購買地址 沙盒購買地址 $url_buy = "https://buy.itunes.apple.com/verifyReceipt"; $url_sandbox = "https://sandbox.itunes.apple.com/verifyReceipt"; $url = $sandbox ? $url_sandbox : $url_buy; //簡單的curl $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS); $result = curl_exec($ch); curl_close($ch); $data = json_decode($result,true); // $data['status']==0 成功 // $data['receipt']['in_app'][0]['transaction_id'] 蘋果訂單號 // $data['receipt']['in_app'][0]['product_id']; 商品價格 return $data; }