>php教程 >php手册 >Alipay 인터페이스 공개 기능

Alipay 인터페이스 공개 기능

WBOY
WBOY원래의
2016-12-05 13:27:461418검색

wemall-mobile은 WeMall을 기반으로 하는 Android 앱 몰입니다. 클라이언트를 사용자 정의하고 수정하려면 원래 몰 디렉터리에 인터페이스 파일을 업로드하기만 하면 됩니다. 본 글은 위몰 앱몰 소스코드 안드로이드의 Alipay 인터페이스 공개 기능을 공유합니다. 이 클래스는 기술자들이 참고하고 학습할 수 있는 요청 및 알림 반환 파일에 의해 호출되는 공개 기능의 핵심 처리 파일입니다.
다음 코드는 판매자 테스트를 용이하게 하기 위해 제공되는 샘플 코드일 뿐입니다. 판매자는 자신의 웹사이트의 필요에 따라 기술 문서에 따라 코드를 작성할 수 있습니다. 이 코드는 학습 및 연구에만 사용할 수 있습니다. Alipay 인터페이스는 참조용으로만 제공됩니다.
"매개변수 = 매개변수 값"
패턴에 따라 "&" 문자를 사용하여 배열의 모든 요소를 ​​문자열로 연결합니다. <?php <br /> <br> 함수 createLinkstring($para) {<br> $arg = "";<br> while (목록 ($key, $val) = 각 ($para)) {<br> $arg.=$key."=".$val."&";<br> }<br> //마지막 & 문자 제거 <br> $arg = substr($arg,0,count($arg)-2);<br>  <br> //이스케이프 문자가 있으면 이스케이프 문자를 제거하세요 <br> If(get_magic_quotes_gpc()){$arg = 스트립슬래시($arg);}<br>  <br> $arg 반환;<br> }<br> /**<br> * "매개변수 = 매개변수 값" 패턴에 따라 "&" 문자를 사용하여 배열의 모든 요소를 ​​문자열로 연결하고 문자열을 urlencode합니다<br> * @param $para 이어붙일 배열<br> * 접합이 완료된 후 문자열을 반환 <br> ​*/<br> 함수 createLinkstringUrlencode($para) {<br> $arg = "";<br> while (목록 ($key, $val) = 각 ($para)) {<br>            $arg.=$key."=".urlencode($val)."&";<br> }<br> //마지막 & 문자 제거 <br> $arg = substr($arg,0,count($arg)-2);<br>  <br> //이스케이프 문자가 있으면 이스케이프 문자를 제거하세요 <br> If(get_magic_quotes_gpc()){$arg = 스트립슬래시($arg);}<br>  <br> $arg 반환;<br> }<br> /**<br> * 배열에서 null 값과 서명 매개변수를 제거합니다<br> * @param $para 시그니처 매개변수 그룹<br> * null 값 및 시그니처 매개변수를 제거한 후 새 시그니처 매개변수 그룹을 반환합니다<br> ​*/<br> 함수 paraFilter($para) {<br> $para_filter = 배열();<br> while (목록 ($key, $val) = 각 ($para)) {<br> If($key == "sign" || $key == "sign_type" || $val == "")continue;<br> > >                                                    }<br> $para_filter 반환;<br> }<br> /**<br> * 배열 정렬<br> * @param $para 정렬 전 배열<br> * 정렬된 배열을 반환합니다<br> ​*/<br> 함수 argSort($para) {<br> ksort($para);<br> 재설정($para);<br> $para 반환<br> }<br> /**<br> *테스트를 용이하게 하기 위해 로그를 작성합니다(웹사이트 요구 사항에 따라 데이터베이스에 기록을 저장할 수도 있음) <br> * 참고: 서버는 fopen 구성을 활성화해야 합니다<br> * @param $word 로그에 기록할 텍스트 내용 기본값 : 비어있는 값 <br> ​*/<br> 함수 logResult($word='') {<br> $fp = fopen("log.txt","a");<br> 무리($fp, LOCK_EX) ;<br> fwrite($fp,"실행 날짜:".strftime("%Y%m%d%H%M%S",time())."n".$word."n");<br> 무리($fp, LOCK_UN);<br> ​​fclose($fp);<br> }<br> <br> /**<br> * 원격으로 데이터 획득, POST 모드 <br> * 참고: <br> * 1. Crul을 사용하려면 서버에서 php.ini 파일의 설정을 수정해야 합니다. php_curl.dll을 찾아 앞에 있는 ";"을 제거하세요. <br> * 2. 폴더에 있는 cacert.pem은 SSL 인증서입니다. 현재 기본 경로는 getcwd().'\cacert.pem'<br>입니다. * @param $url은 URL의 전체 경로 주소를 지정합니다. <br> * @param $cacert_url은 현재 작업 디렉터리의 절대 경로를 지정합니다. <br> * @param $para 요청데이터<br> * @param $input_charset 인코딩 형식. 기본값: 비어 있음 <br>* 원격 출력 데이터 반환<br> */<br> 함수 getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') {<br> <br> If (trim($input_charset) != '') {<br> $url = $url."_input_charset=".$input_charset;<br> }<br> $curl = 컬_init($url);<br> cur_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL 인증서 인증<br> cur_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//엄격한 인증<br> cur_setopt($curl, CURLOPT_CAINFO,$cacert_url);//인증서 주소<br> cur_setopt($curl, CURLOPT_HEADER, 0); // HTTP 헤더 필터링<br> 컬_setopt($curl,CURLOPT_RETURNTRANSFER, 1);//출력 결과 표시<br> cur_setopt($curl,CURLOPT_POST,true); // 전송 데이터 전송<br> curl_setopt($curl,CURLOPT_POSTFIELDS,$para);//이전 데이터 전송<br> $responseText = 컬_exec($curl);<br> //var_dump( cur_error($curl) );//curl 실행 중 예외가 발생하면 이 스위치를 켜서 예외 내용을 볼 수 있습니다<br> 컬_닫기($curl);<br>  <br> $responseText를 반환합니다.<br> }<br> <br> /**<br> * 원격으로 데이터 획득, GET 모드 <br> * 참고: <br> * 1. Crul을 사용하려면 서버에서 php.ini 파일의 설정을 수정해야 합니다. php_curl.dll을 찾아 앞에 있는 ";"을 제거하세요. <br> * 2. 폴더에 있는 cacert.pem은 SSL 인증서입니다. 현재 기본 경로는 getcwd().'\cacert.pem'<br>입니다. * @param $url은 URL의 전체 경로 주소를 지정합니다. <br> * @param $cacert_url은 현재 작업 디렉터리의 절대 경로를 지정합니다. <br> * 원격 출력 데이터 반환<br> ​*/<br> 함수 getHttpResponseGET($url,$cacert_url) {<br> $curl = 컬_init($url);<br> cur_setopt($curl, CURLOPT_HEADER, 0); // HTTP 헤더 필터링<br> 컬_setopt($curl,CURLOPT_RETURNTRANSFER, 1);//출력 결과 표시<br> cur_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL 인증서 인증<br> cur_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//엄격한 인증<br> cur_setopt($curl, CURLOPT_CAINFO,$cacert_url);//인증서 주소<br> $responseText = 컬_exec($curl);<br> //var_dump( cur_error($curl) );//curl 실행 중 예외가 발생하면 이 스위치를 켜서 예외 내용을 볼 수 있습니다 <br> 컬_닫기($curl);<br>  <br> $responseText를 반환합니다.<br> }<br> <br> /**<br> * 다양한 문자 인코딩 방법 구현<br> * @param $input 인코딩할 문자열<br> * @param $_output_charset 출력 인코딩 형식<br> * @param $_input_charset 입력 인코딩 형식<br> * 인코딩된 문자열을 반환합니다 <br> ​*/<br> 함수 charsetEncode($input,$_output_charset,$_input_charset) {<br> $출력 = "";<br> If(!isset($_output_charset) )$_output_charset = $_input_charset;<br> If($_input_charset == $_output_charset || $input ==null ) {<br> $출력 = $입력;<br> } elseif (function_exists("mb_convert_encoding")) {<br>           $output = mb_convert_encoding($input,$_output_charset,$_input_charset);<br> } elseif(function_exists("iconv")) {<br>          $output = iconv($_input_charset,$_output_charset,$input);<br>       } else die("죄송합니다. 문자 세트 변경을 위한 libs 지원이 없습니다.");<br> $output을 반환합니다.<br> }<br> /**<br> * 여러 문자 디코딩 방법 구현 <br> * @param $input 디코딩할 문자열<br> * @param $_output_charset 출력 디코딩 형식<br> * @param $_input_charset 설명<br>  * 반환 解码后字符串<br>  */<br> 함수 charsetDecode($input,$_input_charset ,$_output_charset) {<br>     $output = "";<br>     if(!isset($_input_charset) )$_input_charset  = $_input_charset ;<br>     if($_input_charset == $_output_charset || $input ==null ) {<br>         $출력 = $입력;<br>     } elseif (function_exists("mb_convert_encoding")) {<br>         $output = mb_convert_encoding($input,$_output_charset,$_input_charset);<br>     } elseif(function_exists("iconv")) {<br>         $output = iconv($_input_charset,$_output_charset,$input);<br>     } else die("죄송합니다. 문자 세트 변경에 대한 libs 지원이 없습니다.");<br>     $output을 반환합니다.<br> }<br> ?> wemall官网地址:http://www.wemallshop.com

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.