PHP后端處理蘋果內購對接


蘋果內購流程:

iOS App上次蘋果商店審核對於虛擬金幣類必須要用蘋果支付,不能使用第三方支付,蘋果支付還要3/7分成,呵呵...

 

1、前六步有IOS端處理,最終獲取購買憑證

2、POST請求,發送購買憑證receipt-data到服務端接口

    /**
     * 蘋果內購
     * @param receipt-data 購買憑證(必傳)
     * @param is_test 是否沙盒數據(選填,1是 0否,默認否)
     * @return json
     **/
    public function actionsApple_pay(){

        if (!framework::post('is_test')) {    //沙盒購買地址
            $url = "https://sandbox.itunes.apple.com/verifyReceipt";
        }else{  //正式購買地址
            $url = "https://buy.itunes.apple.com/verifyReceipt";
        }

        $receipt_data = framework::post('receipt-data');
        // 驗證參數
        if (strlen($receipt_data) < 20){
            $result = array(
                'status'=>false,
                'message'=>'非法參數'
            );
            echo json_encode($result);
            return false;
        }

        $post_data = json_encode(array("receipt-data" => $receipt_data));
        $response = https::curlHttps($url, $post_data);
        $res = json_decode($response, true);

        $err_msg = array(
            '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環境的驗證服務'
        );

        // 判斷是否購買成功   
        if(intval($res['status']) === 0){   
            $result = ['status'=>true, 'message'=>'正式購買成功'];   
        }else{   
            $result = ['status'=>false, 'message' => '購買失敗 status:'.$res['status'].' - '.@$err_msg[$res['status']] ];
            framework::logWrite('蘋果支付失敗 ---res---'.json_encode($result));
        }

        echo json_encode($result);
        return false;
    }

 

測試階段返回 21007,默認為沙盒數據,傳is_test參數即可查看響應結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM