1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Thinkphp 3.2及以上版本实现支付宝担保交易 即时到账接口类 函数和使用方法

Thinkphp 3.2及以上版本实现支付宝担保交易 即时到账接口类 函数和使用方法

时间:2019-02-27 11:20:51

相关推荐

Thinkphp 3.2及以上版本实现支付宝担保交易 即时到账接口类 函数和使用方法

给客户开发网站时需要用到支付宝在线付款功能,小云到thinkphp网站溜了一圈,代码是有,可是都不怎么全,因此这篇文章诞生了!

本篇文章讲解了三个类的实现,担保交易、即时到账、双功能收款(该功能支付宝已下线,可给之前已申请过的站长短时间内的使用)

类文件在附件类,请自行下载文章主要讲解如何使用本类

文件下载后解压得到PayBuy将本文件夹放到Think\Library\Vendor目录下

然后在config.php中配置一下信息

'ALIPAY_PARTNER'=>'8888888888888888',//合作身份者id,以2088开头的16位纯数字'ALIPAY_SELLER_EMAIL'=>'xxxxxxxxxx@',//收款账号'ALIPAY_KEY'=>'xxxxxxxxxxxxxxxxxxxxxxxx',//安全检验码,以数字和字母组成的32位

在 function.php 构造付款函数

第一个付款订单生成函数:

functionpay($data){$data['expenses']=isset($data['expenses'])&&$data['expenses']?$data['expenses']:"0.00";$data['express']=isset($data['express'])&&$data['express']?$data['express']:'EXPRESS';$data['payment']=isset($data['payment'])&&$data['payment']?$data['payment']:'BUYER_PAY';Vendor('PayBuy.AliPay');$pay=newAliPay();//实例化$pay->partner=C('ALIPAY_PARTNER');//合作身份者id,以2088开头的16位纯数字$pay->seller_email=C('ALIPAY_SELLER_EMAIL');//收款账号$pay->paykey=C('ALIPAY_KEY');//安全检验码,以数字和字母组成的32位字符$pay->notify_url=$data['notify_url'];//服务器异步通知页面路径,不带参数$pay->return_url=$data['return_url'];//服务器同步通知页面路径,不带参数$pay->orderid=$data['orderid'];//必填,订单id$pay->subject=$data['subject'];//必填商品名称$pay->price=$data['price'];//必填,价格$pay->expenses=$data['expenses'];//必填,运费$pay->express=$data['express'];//必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)$pay->payment=$data['payment'];//必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)$pay->message=$data['message'];//订单描述$pay->show_url=$data['show_url'];//商品展示地址$pay->receive_name=$data['receive_name'];//收货人姓名$pay->receive_address=$data['receive_address'];//收货地址$pay->receive_zip=$data['receive_zip'];//邮编$pay->receive_phone=$data['receive_phone'];//收货人座机$pay->receive_mobile=$data['receive_mobile'];//收货人手机$pay->waitword=$data['waitword'];//收货人手机return$pay->AliPay();}

第二个检查订单状态函数:

functioncheckpayorder($data=''){$alipay_config['partner']=C('ALIPAY_PARTNER');$alipay_config['seller_email']=C('ALIPAY_SELLER_EMAIL');$alipay_config['key']=C('ALIPAY_KEY');$alipay_config['sign_type']=strtoupper('MD5');$alipay_config['input_charset']=strtolower('utf-8');$alipay_config['transport']='http';Vendor('PayBuy.AliPay');$alipayNotify=newAlipayNotify($alipay_config);$verify_result=$alipayNotify->verifyReturn();if($verify_result){$out_trade_no=$data['out_trade_no'];$trade_no=$data['trade_no'];$trade_status=$data['trade_status'];return$data['trade_status'];}else{return"error";}}

第三函数集:(这几个函数是支付宝自带函数,请直接复制粘贴到 function.php 内)

/*支付宝接口函数开始*/functioncreateLinkstring($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;}functioncreateLinkstringUrlencode($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;}functionparaFilter($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;}functionargSort($para){ksort($para);reset($para);return$para;}functionlogResult($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);}functiongetHttpResponsePOST($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;}functiongetHttpResponseGET($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;}functioncharsetEncode($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);}elsedie("sorry,youhavenolibssupportforcharsetchange.");return$output;}functioncharsetDecode($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);}elsedie("sorry,youhavenolibssupportforcharsetchanges.");return$output;}functionmd5Sign($prestr,$key){$prestr=$prestr.$key;returnmd5($prestr);}functionmd5Verify($prestr,$sign,$key){$prestr=$prestr.$key;$mysgin=md5($prestr);if($mysgin==$sign){returntrue;}else{returnfalse;}}/*支付宝接口函数结束*/

完成以上步骤之后恭喜你,你可以在网站任何位置通过pay($data)来调用支付宝付款了!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。