Rumah >pembangunan bahagian belakang >tutorial php >Ringkaskan dan kongsi cara PHP mengendalikan pembaharuan automatik IOS!

Ringkaskan dan kongsi cara PHP mengendalikan pembaharuan automatik IOS!

藏色散人
藏色散人ke hadapan
2022-11-07 16:39:113507semak imbas

Artikel ini akan memperkenalkan kepada anda cara pelayan PHP mengendalikan pembaharuan automatik IOS. Saya meringkaskannya sendiri. pembayaran. Anda boleh melakukannya sendiri, saya harap ia berguna kepada rakan-rakan saya dan saya sangat gembira. Jika kod itu tidak ditulis dengan baik, tolong jangan kecam saya. [Disyorkan:

Tutorial video PHP

]Mula-mula izinkan saya bercakap tentang logik perniagaan saya:

Gambar pertama


Ringkaskan dan kongsi cara PHP mengendalikan pembaharuan automatik IOS!Butiran di bawah Mari kita bincangkan tentang perkara yang perlu dilakukan sebagai pelayan dan tampal kod yang sepadan:

Langkah 1:

Jana pesanan melalui penerimaan (tiket) yang diluluskan daripada pelanggan [Perhatikan bahawa anda perlu mengesahkan sama ada pesanan sudah wujud], penjanaan pesanan mengembalikan maklumat yang berkaitan kepada pelanggan

 public function pay()
    {
        $uid = $this->request->header('uid');
        $receipt_data = $this->request->post('receipt');
        if (!$uid || !$receipt_data) return $this->rep(400);

        $info = $this->getReceiptData($receipt_data, $this->isSandbox);//去苹果进行验证,防止收到的是伪造的数据

        Log::info(['uid'=>$uid,'receipt'=>$receipt_data,'iap_info'=>$info]);

        if (is_array($info) && $info['status'] == 0) {//没有错误就进行生成订单的业务逻辑的处理
         
        } elseif (is_array($info) && $info['status'] == 21007) {
            $new_info = $this->getReceiptData($receipt_data, true);//接着去苹果官网进行二次验证(沙盒)
           // 进行生成订单的业务逻辑的处理
        }
    }
Langkah 2:
private function getReceiptData($receipt, $isSandbox = false)
    {
        if ($isSandbox) {
            $endpoint = 'https://sandbox.itunes.apple.com/verifyReceipt';//沙箱地址
        } else {
            $endpoint = 'https://buy.itunes.apple.com/verifyReceipt';//真实运营地址
        }
        $postData = json_encode(['receipt-data' => $receipt, 'password'=>'abde7d535c']);
        $ch = curl_init($endpoint);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        $response = curl_exec($ch);
        $errno = curl_errno($ch);
        curl_close($ch);
        if ($errno != 0) {//curl请求有错误
            $order['status'] = 408;
        } else {
            $data = json_decode($response, true);
            if (isset($data['status'])) {
                //返回产品的信息
                $order = isset($data['receipt']) ? $data['receipt'] : [];
                $order['status'] = $data['status'];
            } else {
                $order['status'] = 30000;
            }
        }
        return $order;
    }

Fungsi pembaharuan langganan automatik (berdasarkan pembayaran , pembaharuan automatik; Fungsi boleh dijalankan. Antara muka di sini tidak perlu dipanggil oleh pelanggan Ini secara automatik dipanggil semula oleh Apple Anda perlu mengisi pautan panggil balik di laman web rasmi Apple, seperti yang ditunjukkan di bawah:


Ringkaskan dan kongsi cara PHP mengendalikan pembaharuan automatik IOS!Seterusnya, tambahkan kod panggil balik automatik:

Atas ialah kandungan terperinci Ringkaskan dan kongsi cara PHP mengendalikan pembaharuan automatik IOS!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam