Rumah >php教程 >php手册 >支付宝接口公用函数

支付宝接口公用函数

WBOY
WBOYasal
2016-12-05 13:27:461407semak imbas

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享wemall app商城源码Android之 支付宝接口公用函数,该类是请求、通知返回两个文件所调用的公用函数核心处理文件,供技术员参考学习。
以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码,该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
<?php <br /> <br> function createLinkstring($para) {<br>     $arg  = "";<br>     while (list ($key, $val) = each ($para)) {<br>         $arg.=$key."=".$val."&";<br>     }<br>     //去掉最后一个&字符<br>     $arg = substr($arg,0,count($arg)-2);<br>     <br>     //如果存在转义字符,那么去掉转义<br>     if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}<br>     <br>     return $arg;<br> }<br> /**<br>  * 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码<br>  * @param $para 需要拼接的数组<br>  * return 拼接完成以后的字符串<br>  */<br> function createLinkstringUrlencode($para) {<br>     $arg  = "";<br>     while (list ($key, $val) = each ($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 = stripslashes($arg);}<br>     <br>     return $arg;<br> }<br> /**<br>  * 除去数组中的空值和签名参数<br>  * @param $para 签名参数组<br>  * return 去掉空值与签名参数后的新签名参数组<br>  */<br> function paraFilter($para) {<br>     $para_filter = array();<br>     while (list ($key, $val) = each ($para)) {<br>         if($key == "sign" || $key == "sign_type" || $val == "")continue;<br>         else    $para_filter[$key] = $para[$key];<br>     }<br>     return $para_filter;<br> }<br> /**<br>  * 对数组排序<br>  * @param $para 排序前的数组<br>  * return 排序后的数组<br>  */<br> function argSort($para) {<br>     ksort($para);<br>     reset($para);<br>     return $para;<br> }<br> /**<br>  * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)<br>  * 注意:服务器需要开通fopen配置<br>  * @param $word 要写入日志里的文本内容 默认值:空值<br>  */<br> function logResult($word='') {<br>     $fp = fopen("log.txt","a");<br>     flock($fp, LOCK_EX) ;<br>     fwrite($fp,"执行日期:".strftime("%Y%m%d%H%M%S",time())."\n".$word."\n");<br>     flock($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>  * return 远程输出的数据<br>  */<br> function getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') {<br> <br>     if (trim($input_charset) != '') {<br>         $url = $url."_input_charset=".$input_charset;<br>     }<br>     $curl = curl_init($url);<br>     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL证书认证<br>     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//严格认证<br>     curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//证书地址<br>     curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头<br>     curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果<br>     curl_setopt($curl,CURLOPT_POST,true); // post传输数据<br>     curl_setopt($curl,CURLOPT_POSTFIELDS,$para);// post传输数据<br>     $responseText = curl_exec($curl);<br>     //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容<br>     curl_close($curl);<br>     <br>     return $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>  * return 远程输出的数据<br>  */<br> function getHttpResponseGET($url,$cacert_url) {<br>     $curl = curl_init($url);<br>     curl_setopt($curl, CURLOPT_HEADER, 0 ); // 过滤HTTP头<br>     curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 显示输出结果<br>     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL证书认证<br>     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//严格认证<br>     curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//证书地址<br>     $responseText = curl_exec($curl);<br>     //var_dump( curl_error($curl) );//如果执行curl过程中出现异常,可打开此开关,以便查看异常内容<br>     curl_close($curl);<br>     <br>     return $responseText;<br> }<br> <br> /**<br>  * 实现多种字符编码方式<br>  * @param $input 需要编码的字符串<br>  * @param $_output_charset 输出的编码格式<br>  * @param $_input_charset 输入的编码格式<br>  * return 编码后的字符串<br>  */<br> function charsetEncode($input,$_output_charset ,$_input_charset) {<br>     $output = "";<br>     if(!isset($_output_charset) )$_output_charset  = $_input_charset;<br>     if($_input_charset == $_output_charset || $input ==null ) {<br>         $output = $input;<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("sorry, you have no libs support for charset change.");<br>     return $output;<br> }<br> /**<br>  * 实现多种字符解码方式<br>  * @param $input 需要解码的字符串<br>  * @param $_output_charset 输出的解码格式<br>  * @param $_input_charset 输入的解码格式<br>  * return 解码后的字符串<br>  */<br> function 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>         $output = $input;<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("sorry, you have no libs support for charset changes.");<br>     return $output;<br> }<br> ?> wemall官网地址:http://www.wemallshop.com

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn