$value){ if($key == "sign" || $key == "sign_type" || $value == ""){ continue; }else{ $para[$key] = $parameter[$key]; } } return $para; } /********************************************************************************/ /**对数组排序 *$array 排序前的数组 *return 排序后的数组 */ function arg_sort($array) { ksort($array); reset($array); return $array; } /********************************************************************************/ /**加密字符串 *$prestr 需要加密的字符串 *return 加密结果 */ function sign($prestr,$sign_type) { $sign=''; if($sign_type == 'MD5') { $sign = md5($prestr); }elseif($sign_type =='DSA') { //DSA 签名方法待后续开发 die("DSA 签名方法待后续开发,请先使用MD5签名方式"); }else { die("支付宝暂不支持".$sign_type."类型的签名方式"); } return $sign; } /********************************************************************************/ // 日志消息,把支付宝返回的参数记录下来 function log_result($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); } /********************************************************************************/ /**实现多种字符编码方式 *$input 需要编码的字符串 *$_output_charset 输出的编码格式 *$_input_charset 输入的编码格式 *return 编码后的字符串 */ function charset_encode($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; } /********************************************************************************/ /**实现多种字符解码方式 *$input 需要解码的字符串 *$_output_charset 输出的解码格式 *$_input_charset 输入的解码格式 *return 解码后的字符串 */ function charset_decode($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; } /*********************************************************************************/ /**用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数 注意:由于低版本的PHP配置环境不支持远程XML解析,因此必须服务器、本地电脑中装有高版本的PHP配置环境。建议本地调试时使用PHP开发软件 *$partner 合作身份者ID *return 时间戳字符串 */ function query_timestamp($partner) { $URL = "https://mapi.alipay.com/gateway.do?service=query_timestamp&partner=".$partner; $encrypt_key = ""; //若要使用防钓鱼,请取消下面的4行注释 // $doc = new DOMDocument(); // $doc->load($URL); // $itemEncrypt_key = $doc->getElementsByTagName( "encrypt_key" ); // $encrypt_key = $itemEncrypt_key->item(0)->nodeValue; return $encrypt_key; } ?>