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