Berikut ialah perkara yang menarik tentang melaksanakan simulasi permintaan PHP dari lajur tutorial PHP saya harap ia akan membantu anda!
Saya membuat 50 yuan dengan hanya melaksanakan simulasi permintaan PHP
Perkara menarik berlaku pada hujung minggu ini: Saya melihat seseorang dalam kumpulan yang memerlukan bantuan dengan pembangunan PHP dan berjanji untuk dibayar saya menyelesaikan masalah selepas cadangan diri, dan menerima 50 yuan.
Seterusnya, saya akan bercakap tentang semuanya secara terperinci.
Saya membuka QQ selepas keluar kerja pada hari Sabtu, dan semasa menyemak imbas mesej kumpulan, saya melihat ayat ini: "Adakah sesiapa dalam kumpulan yang boleh menulis kod PHP, secara percuma." Saya segera menambah QQnya dan memberitahunya bahawa saya sedang melakukan pembangunan PHP dan saya boleh membantu.
Saya menerima balasannya pada pagi Ahad. Dia memberikan saya dokumen dan meminta saya untuk melihat sama ada ia boleh dilaksanakan dengan teliti dan mendapati ia adalah dokumen antara muka pihak ketiga dia untuk menyambung ini Antara muka adalah sangat mudah Saya ingin tahu apa perniagaan khusus beliau, dan dia memberitahu saya bahawa saya hanya memerlukan bantuan untuk menyesuaikannya. Berikut ialah tangkapan skrin perbualan kami:
Walaupun wang yang dia tawarkan tidak banyak, kebetulan saya tiada apa-apa nak buat pada masa itu, jadi saya salin kod yang saya tulis sebelum ini menukarnya semula, dan ia telah diselaraskan dengan cepat saya menunjukkan kepadanya tangkapan skrin, dia menghantar saya sampul merah 50 yuan selepas mengesahkan bahawa saya juga menghantar dokumen kepadanya, dan semuanya telah selesai.
Perkara seterusnya yang saya ingin bincangkan ialah isu teknikal di sebalik perkara ini.
Pertama sekali, dia memahami perkembangan PHP Dia menghadapi masalah semasa pembangunan Saya tidak tahu sama ada dia terlalu malas untuk mencari atau kerana dia tidak menemui penyelesaian dalam PHP pelaksanaan simulasi permintaan.
Sekarang saya berkongsi keseluruhan kod fail, berharap dapat membantu orang yang menghadapi masalah yang sama:
<?php class HttpClientUtil { public function sendRequest($type = '', $url = '', $data = [], $timeout = 60) { try { $type = strtoupper($type); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url);//设置请求链接 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//不直接输出页面 curl_setopt($curl, CURLOPT_HEADER, 0);//获取响应头向下 curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); //请求超时时间,单位:秒 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1'); if (substr($url, 0, 5) == 'https') { //自动判断是否是https提交 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); } curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:application/json']); switch ($type) { case "GET" : curl_setopt($curl, CURLOPT_HTTPGET, true); break; case "POST": curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); break; case "PUT" : curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); break; case "DELETE": curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); break; } $result = curl_exec($curl); $err_code = curl_errno($curl); $curlInfo = curl_getinfo($curl); curl_close($curl); if ($err_code) { return false; } if ($curlInfo['http_code'] == 200) { //只有200状态才返回数据 return json_decode($result, true); } return false; } catch (\Exception $e) { throw new \Exception($e->getMessage()); } } public function createSign($data){ // 拼接 $dataStr = ''; foreach ($data as $key=>$value){ $dataStr.="{$key}={$value}&"; } // 拼接商户密钥 $dataStr.='access_token=***B8'; // 加密 $sign =strtoupper(MD5($dataStr)); $data['sign']=$sign; return $data; } } $api = new HttpClientUtil(); $url = 'http://***/order/pay'; $data=[ 'userName'=>'test', 'version'=>'2.0', 'cardName'=>'张三', 'cardNum'=>'20932402940189310293', 'openBank'=>'招商银行', 'amount'=>'10.00', 'outOrderId'=>'JD123123123', 'returnUrl'=>'/', ]; $res = $api->sendRequest('post',$url,$api->createSign($data)); print_r($res);
Pembelajaran yang disyorkan: "Video PHP. Tutorial》
Atas ialah kandungan terperinci Satu perkara yang menarik tentang simulasi permintaan saya menggunakan PHP!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!