wemall-mobile是基於WeMall的Android app商城,只須要在原商城目錄下上傳接口文件便可完成服務端的配置,客戶端可定製修改。本文分享wemall app商城源碼Android之 支付寶接口公用函數,該類是請求、通知返回兩個文件所調用的公用函數核心處理文件,供技術員參考學習。php
如下代碼只是爲了方便商戶測試而提供的樣例代碼,商戶能夠根據本身網站的須要,按照技術文檔編寫,並不是必定要使用該代碼,該代碼僅供學習和研究支付寶接口使用,只是提供一個參考。
把數組全部元素,按照「參數=參數值」的模式用「&」字符拼接成字符串數據庫
<?php function createLinkstring($para) { $arg = ""; while (list ($key, $val) = each ($para)) { $arg.=$key."=".$val."&"; } //去掉最後一個&字符 $arg = substr($arg,0,count($arg)-2); //若是存在轉義字符,那麼去掉轉義 if(get_magic_quotes_gpc()){$arg = stripslashes($arg);} return $arg; } /** * 把數組全部元素,按照「參數=參數值」的模式用「&」字符拼接成字符串,並對字符串作urlencode編碼 * @param $para 須要拼接的數組 * return 拼接完成之後的字符串 */ function createLinkstringUrlencode($para) { $arg = ""; while (list ($key, $val) = each ($para)) { $arg.=$key."=".urlencode($val)."&"; } //去掉最後一個&字符 $arg = substr($arg,0,count($arg)-2); //若是存在轉義字符,那麼去掉轉義 if(get_magic_quotes_gpc()){$arg = stripslashes($arg);} return $arg; } /** * 除去數組中的空值和簽名參數 * @param $para 簽名參數組 * return 去掉空值與簽名參數後的新簽名參數組 */ function paraFilter($para) { $para_filter = array(); while (list ($key, $val) = each ($para)) { if($key == "sign" || $key == "sign_type" || $val == "")continue; else $para_filter[$key] = $para[$key]; } return $para_filter; } /** * 對數組排序 * @param $para 排序前的數組 * return 排序後的數組 */ function argSort($para) { ksort($para); reset($para); return $para; } /** * 寫日誌,方便測試(看網站需求,也能夠改爲把記錄存入數據庫) * 注意:服務器須要開通fopen配置 * @param $word 要寫入日誌裏的文本內容 默認值:空值 */ function logResult($word='') { $fp = fopen("log.txt","a"); flock($fp, LOCK_EX) ; fwrite($fp,"執行日期:".strftime("%Y%m%d%H%M%S",time())."\n".$word."\n"); flock($fp, LOCK_UN); fclose($fp); } /** * 遠程獲取數據,POST模式 * 注意: * 1.使用Crul須要修改服務器中php.ini文件的設置,找到php_curl.dll去掉前面的";"就好了 * 2.文件夾中cacert.pem是SSL證書請保證其路徑有效,目前默認路徑是:getcwd().'\\cacert.pem' * @param $url 指定URL完整路徑地址 * @param $cacert_url 指定當前工做目錄絕對路徑 * @param $para 請求的數據 * @param $input_charset 編碼格式。默認值:空值 * return 遠程輸出的數據 */ function getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') { if (trim($input_charset) != '') { $url = $url."_input_charset=".$input_charset; } $curl = curl_init($url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL證書認證 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//嚴格認證 curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//證書地址 curl_setopt($curl, CURLOPT_HEADER, 0 ); // 過濾HTTP頭 curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 顯示輸出結果 curl_setopt($curl,CURLOPT_POST,true); // post傳輸數據 curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post傳輸數據 $responseText = curl_exec($curl); //var_dump( curl_error($curl) );//若是執行curl過程當中出現異常,可打開此開關,以便查看異常內容 curl_close($curl); return $responseText; } /** * 遠程獲取數據,GET模式 * 注意: * 1.使用Crul須要修改服務器中php.ini文件的設置,找到php_curl.dll去掉前面的";"就好了 * 2.文件夾中cacert.pem是SSL證書請保證其路徑有效,目前默認路徑是:getcwd().'\\cacert.pem' * @param $url 指定URL完整路徑地址 * @param $cacert_url 指定當前工做目錄絕對路徑 * return 遠程輸出的數據 */ function getHttpResponseGET($url,$cacert_url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, 0 ); // 過濾HTTP頭 curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 顯示輸出結果 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL證書認證 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//嚴格認證 curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//證書地址 $responseText = curl_exec($curl); //var_dump( curl_error($curl) );//若是執行curl過程當中出現異常,可打開此開關,以便查看異常內容 curl_close($curl); return $responseText; } /** * 實現多種字符編碼方式 * @param $input 須要編碼的字符串 * @param $_output_charset 輸出的編碼格式 * @param $_input_charset 輸入的編碼格式 * return 編碼後的字符串 */ function charsetEncode($input,$_output_charset ,$_input_charset) { $output = ""; if(!isset($_output_charset) )$_output_charset = $_input_charset; if($_input_charset == $_output_charset || $input ==null ) { $output = $input; } elseif (function_exists("mb_convert_encoding")) { $output = mb_convert_encoding($input,$_output_charset,$_input_charset); } elseif(function_exists("iconv")) { $output = iconv($_input_charset,$_output_charset,$input); } else die("sorry, you have no libs support for charset change."); return $output; } /** * 實現多種字符解碼方式 * @param $input 須要解碼的字符串 * @param $_output_charset 輸出的解碼格式 * @param $_input_charset 輸入的解碼格式 * return 解碼後的字符串 */ function charsetDecode($input,$_input_charset ,$_output_charset) { $output = ""; if(!isset($_input_charset) )$_input_charset = $_input_charset ; if($_input_charset == $_output_charset || $input ==null ) { $output = $input; } elseif (function_exists("mb_convert_encoding")) { $output = mb_convert_encoding($input,$_output_charset,$_input_charset); } elseif(function_exists("iconv")) { $output = iconv($_input_charset,$_output_charset,$input); } else die("sorry, you have no libs support for charset changes."); return $output; } ?>
wemall官網地址:http://www.wemallshop.com
原文詳情地址:http://Git.oschina.NET/zzunet...
wemall doraemonAndroid app商城詳情地址:http://www.koahub.com/home/pr...
WeMall - 開源微商城 微信商城 商城源碼 分銷商城 b2b2c商城系統數組