요청 Alipay의 2 차원 코드 사진 함량이 매우 느린 솔루션
Alipay의 최근에 개발 된 작은 프로젝트 프로그램 인터페이스를 통해, 결과가 얻을 수있는 매우 느린 7-10초 제한됩니다, 서버에 file_get_contents와 접근을 다운로드 이차원 코드를 생성하도록 구성
img 태그 액세스가 빠르고으로, 브라우저 요청 헤더를 결정하는 것으로 추정된다
나중에 인터넷 브라우저를 시뮬레이션하기 위해 컬을 사용하여 액세스 솔루션을 찾을 수 있습니다. 테이크 초
<PHP는? $ camera_url = 'https://mdgw.alipay.com/wsdk/img?fileid=A*OG3WRZIq5S0AAAAAAAAAAAAAAQAAAQ&bz=am_afts_openhome&zoom=original'; $ camera_base64 = get_head의 ($ camera_url); 경우 (camera_base64 $! = '') { 에코로 json_encode (배열 ( 'camera_base64'=> $ camera_base64) JSON_UNESCAPED_UNICODE); } 기능 get_head ($ URL) { $ 헤더 = [ '사용자 에이전트 : 모질라 / 5.0 (윈도우 NT 6.1, Win64를, 64 장, : 45.0) 게코 / 20100101 파이어 폭스 / 45.0', '동의-언어들 ko-CN을, 에서 zh, Q = 0.8, EN-US, Q = 0.5, EN; Q = 0.3 ', '허용 인코딩 : GZIP, DEFLATE ' ]; $ 컬 = curl_init (); curl_setopt ($ 컬, CURLOPT_URL, $ URL); ($ 컬, CURLOPT_RETURNTRANSFER 사실) curl_setopt; ; curl_setopt (true로 $ 컬 CURLOPT_FOLLOWLOCATION) curl_setopt ($ 컬 CURLOPT_ENCODING 'gzip을'); curl_setopt ($ 컬 CURLOPT_HTTPHEADER, $ 헤더); $ 데이터 = curl_exec ($ 컬) $ 코드 = curl_getinfo ($ 컬 CURLINFO_HTTP_CODE) curl_close ($ 컬), file_put_contents를 ( 'aaa.png', $ 데이터); IF ($ 200 코드 ==) {이다 // 형식의 이미지가 base64_encode 형식으로 변환 된 URL! imgBase64Code = $ "데이터 : 이미지 / JPEG, Base64로,"는 base64_encode ($ 데이터); 반환 $의 imgBase64Code; // 이미지 내용 }는 다른 { 반환 '프로필이 실패 가져 오기'; } }