PHP菜鸟博客_共同学习分享PHP技术心得【PHP爱好者】
php如何调用 basic auth接口 验证方式
2023-9-1 菜鸟站长


//国航发送给第三方  basic auth 验证方式


    public  function send_to_ameco()


    {




        $out_trade_no = "2023081416181400037";


        $flag = 1;


        $payinfo = Db::table("client_order_pay_record")->where("  out_trade_no='$out_trade_no' ")->find();


        $mid = $payinfo['mid'];


        //获取员工信息


        $member_info = Db::table('client_merchant_member')->where('id', $mid)->find();


        //取出订单表


        $order_keynum = $payinfo['order_keynum'];


        $orderinfo = Db::table("client_order_info")->where("  keynum='$order_keynum' ")->find();


        $send_data = array();


        $send_data['supplier_code'] = $member_info['remark1'];


        $send_data['staff_no'] = $member_info["out_code"];


        $send_data['order_time'] = date("Y-m-d H:i:s");


        $send_data['order_no'] = $orderinfo["order_sn"];


        //$send_data['order_name'] = $orderinfo['goodsinfo'];


        $send_data['order_name'] =  mb_substr_with_ellipsis($orderinfo['goodsinfo'], 0, 30, "等");




        $send_data['points'] = (float)$payinfo["member_money"];


        $send_data['price'] = (string)$orderinfo["order_total_money"];


        $item = array();


        $orderdetail_list = Db::table("client_order_orderdetail")->where("  order_keynum='$order_keynum' ")->select();


        //print_r($orderdetail_list);die;


        foreach ($orderdetail_list as $k => $v) {


            $row = array();


            $row['mat_code'] = $v["goodssku"];


            $row['mat_name'] = $v["goodsname"];


            $row['qty'] = (string)$v["number"];


            $row['unit_price'] = (string)$v["goodsintegral"];


            $row['total_price'] = (string)bcmul($v["goodsintegral"], $v["number"], 2);


            $row['type'] = "百货";


            $item[] = $row;


        }


        $send_data['items'] = $item;




        print_r($send_data);




        //接口地址


        $api_url = "https://www.host.com:80/ESB/OPEN/API/OUS009/SYS0277/SVC20300047";


        $json_data = json_encode($send_data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);




        $username = 'xxxxx';


        $password = 'yyyyyy';




        $ch = curl_init();


        curl_setopt($ch, CURLOPT_URL, $api_url);




        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);  //basic auth


        curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); //basic auth




        curl_setopt($ch, CURLOPT_HEADER, true);


        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');


        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);


        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');


        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);


        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);


        curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);


        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


        curl_setopt(


            $ch,


            CURLOPT_HTTPHEADER,


            array(


                'Content-Type: application/json',


                'Content-Length: ' . strlen($json_data)


            )


        );


        $tmpInfo = curl_exec($ch);




        $errorno = curl_errno($ch);


        //curl错误或者服务端的返回头不是200都是错误


        if ($errorno  || curl_getinfo($ch, CURLINFO_HTTP_CODE) != '200') {


            //请求发送失败


            $flag = 0;


            $error_msg = "curl错误:$errorno" . ",接口返回状态码" . curl_getinfo($ch, CURLINFO_HTTP_CODE);


        } else {




            list($header, $body) = explode("\r\n\r\n",  $tmpInfo, 2);


            $rt_json = $body;


            $rt_arr = json_decode($rt_json, 1);


            if ($rt_arr["success"] != 'true') {


                //业务失败


                $flag = 0;


                $error_msg = $rt_arr["message"];


            }


        }




        echo $error_msg;


        die;


    }

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容