演示查看:http://www.erdangjiade.com/ph...php为客户开发网站时需要使用各大平台的支付功能,我会下面免费分享给大家,本类为成熟类,网上下载,经过修改测试(可直接使用,附上使用方法,需要的请带走it.),如有需要安装的demo,请登录“二当家”查看:http://www.erdangjiade.com/ph...“同学们”或者“没有的童鞋们”yetworked”可以无条件享受本站所有素材资源。目前包括支付宝PC版、支付宝wap版、palpay、易宝、银联、快钱、财付通等,这些常用的支付平台,支付方式均为即时到账,不包括保付。支付配置ThinkPayApplicationCommonConfconfig.phparray(/paymentsettings/'payment'=>array('tenpay'=>array(//加密密钥,开财付通账户后给'key'=>'e82573dc7e6136ba414f2e2affbe39fa',//合作伙伴ID,财付通有这个配置,开通财付通账户后,给'partner'=>'1900000113'),'alipay'=>array(//接收账户邮箱'email'=>'chenf003@yahoo.cn',//加密密钥,支付宝开户后给'key'=>'aaa',//合作伙伴ID,支付宝有这个配置,开易宝账户后给'partner'=>'2088101000137799'),'aliwappay'=>array(//收款账户email'email'=>'chenf003@yahoo.cn',//加密密钥,开通支付宝账户后给的'key'=>'aaa',//合作伙伴ID,支付宝有这个配置,开通易宝账户后给'partner'=>'2088101000137799'),'palpay'=>array('business'=>'zyj@qq.com'),'yeepay'=>array('key'=>'69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4'Pl','partner=>'10001126856'),'快钱'=>array('key'=>'1234567897654321','partner'=>'1000300079901'),'unionpay'=>array('key'=>'88888888','伙伴'=>'105550149170027')));支付生成顺序ThinkPayThinkPHPLibraryThinkPay.class.phpfunctionbuildRequestForm(PayPayVo$vo){$this->payer->check();//生成本地记录数据$check=M("Pay")->add(array('out_trade_no'=>$vo->getOrderNo(),'money'=>$vo->getFee(),'status'=>0,'callback'=>$vo->getCallback(),'url'=>$vo->getUrl(),'param'=>serialize($vo->getParam()),'create_time'=>time(),'update_time'=>time()));if($check!==false){返回$this->payer->buildRequestForm($vo);}else{E(M("Pay")->getDbError());}}支付订单表/**数据库CREATETABLEthink_pay(out_trade_novarchar(100)NOTNULL,moneydecimal(10,2)NOTNULL,statustinyint(1)NOTNULLDEFAULT'0',callbackvarchar(255)NOTNULL,urlvarchar(255)NOTNULL,paramtextNOTNULL,create_timeint(11)NOTNULL,update_timeint(11)NOTNULL,PRIMARYKEY(out_trade_no))ENGINE=MyISAMDEFAULTCHARSET=utf8;*/alipay配置ThinkPayThinkPHPLibraryThinkPayDriverAlipay.class.phpprotected$gateway='https://mapi.alipay.com/gatew...';protected$verify_url='http://notify.alipay.com/trad...';protected$config=array('email'=>'','key'=>'','partner'=>'');md5加密publicfunctionbuildRequestForm(ThinkPayPayVo$vo){$param=array('service'=>'create_direct_pay_by_user','payment_type'=>'1','_input_charset'=>'utf-8','seller_email'=>$this->config['email'],'partner'=>$this->config['partner'],'notify_url'=>$this->config['notify_url'],'return_url'=>$this->config['return_url'],'out_trade_no'=>$vo->getOrderNo(),'subject'=>$vo->gettitle(),'body'=>$vo->getBody(),'total_fee'=>$vo->getFee());ksort($param);reset($param);$arg='';foreach($paramas$key=>$value){if($value){$arg.="$key=$value&";}}$param['sign']=md5(substr($arg,0,-1).$this->config['key']);$param['sign_type']='MD5';$sHtml=$this->_buildForm($param,$this->gateway,'get');return$sHtml;}支付成功后返回地址ThinkPayApplicationHomeControllerPublicController.class.phppublicfunctionnotify(){$apitype=I('get.apitype');$pay=newThinkPay($apitype,C('payment.'.$apitype));if(IS_POST&&!empty($_POST)){$notify=$_POST;}elseif(IS_GET&&!empty($_GET)){$notify=$_GET;unset($notify['method']);unset($notify['apitype']);}else{exit('AccessDenied');}//验证if($pay->verifyNotify($notify)){//获取订阅单信息$info=$pay->getInfo();if($info)['status']){$payinfo=M("Pay")->field(true)->where(array('out_trade_no'=>$info['out_trade_no']))->find();if($payinfo['status']==0&&$payinfo['callback']){session("pay_verify",true);$check=R($payinfo['callback'],array('money'=>$payinfo['money'],'param'=>unserialize($payinfo['param'])));if($check!==false){M("Pay")->where(array('out_trade_no'=>$info['out_trade_no']))->setField(array('update_time'=>time(),'status'=>1));}}if(I('get.method')=="返回"){redirect($payinfo['url']);}else{$pay->notifySuccess();}}else{$this->error("支付失败!");}}else{E("访问被拒绝");}}
