位置: IT常识 - 正文
推荐整理分享织梦dedecms集成腾讯财付通支付接口(织梦cms可以商用吗),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:织梦cms可以商用吗,织梦cms为什么不维护了,织梦系统网站搭建教程,织梦cms官网,织梦cms怎么样,织梦cms可以商用吗,织梦cms官网,织梦cms怎么样,内容如对您有帮助,希望把文章链接给更多的朋友!
用织梦做了个装饰网站,客户要求财付通支付,上网找了下,不是要买就是要钱,只有自己写了。
代码如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195<?phpif(!defined('DEDEINC'))exit('RequestError!');/***财付通接口类*/classtenpay{var$dsql;var$mid;var$reqURL_onLine="http://www.tenpay.com";var$return_url='/plus/carbuyaction.php?dopost=return';//返回处理地址/***构造函数**@accesspublic*@param**@returnvoid*/functiontenpay(){global$dsql;$this->dsql=$dsql;}function__construct(){$this->tenpay();}/***设定接口会送地址**例如:$this->SetReturnUrl($cfg_basehost."/tuangou/control/index.php?ac=pay&orderid=".$p2_Order)**@paramstring$returnurl会送地址*@returnvoid*/functionSetReturnUrl($returnurl=''){if(!empty($returnurl)){$this->return_url=$returnurl;}}/***生成支付代码*@paramarray$order订单信息*@paramarray$payment支付方式信息*/functionGetCode($order,$payment){global$cfg_basehost,$cfg_cmspath;//对于二级目录的处理if(!empty($cfg_cmspath))$cfg_basehost=$cfg_basehost.'/'.$cfg_cmspath;$partner=$payment['tenpay_account'];$out_trade_no=$order['out_trade_no'];$total_fee=floatval($order['price'])*100;$body=$order['out_trade_no'];$attach='';$bank_type='DEFAULT';/*交易类型:2、虚拟交易,1、实物交易*/$trans_type=1;$trade_mode=empty($payment['tenpay_pay_method'])?'1':$payment['tenpay_pay_method'];$parameter=array('partner'=>$partner,'out_trade_no'=>$out_trade_no,//订单号'total_fee'=>$total_fee,//总金额'notify_url'=>$cfg_basehost.$this->return_url."&code=".$payment['code'],//返回地址'return_url'=>$cfg_basehost.$this->return_url."&code=".$payment['code'],//提醒地址'body'=>$body,//交易描述'bank_type'=>$bank_type,//交易类型默认财付通//用户ip'spbill_create_ip'=>$_SERVER['REMOTE_ADDR'],//交易ip'fee_type'=>'1',//币种1人民币'subject'=>$body,//商品名称//系统可选参数'sign_type'=>'MD5',//加密方式'service_version'=>'1.0',//接口版本号默认1.0'input_charset'=>'UTF-8',//系统编码'GBK''sign_key_index'=>'1',//密钥序号//业务可选参数'attach'=>$attach,//附加数据原样返回默认为空'product_fee'=>'',//商品费用'transport_fee'=>'0',//物流费用'time_start'=>date("YmdHis"),//订单生成时间date("YmdHis")'time_expire'=>'',//订单失效时间'buyer_id'=>'',//买方财付通帐号'goods_tag'=>'',//商品标记'trade_mode'=>$trade_mode,//交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))'transport_desc'=>'',//物流说明'trans_type'=>$trans_type,//交易类型'agentid'=>'',//平台ID'agent_type'=>'',//代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)'seller_id'=>''//卖家商户号);ksort($parameter);reset($parameter);$param='';$sign='';foreach($parameterAS$key=>$val){$param.="$key=".urlencode($val)."&";if(""!=$val&&"sign"!=$key){$sign.="$key=$val&";}}$param=substr($param,0,-1);$sign.="key=".$payment['tenpay_key'];$sign=strtolower(md5($sign));$button='<divstyle="text-align:center"><ahref="https://gw.tenpay.com/gateway/pay.htm?'.$param.'&sign='.$sign.'"><button>立即使用财付通支付</button></a></div>';return$button;/*清空购物车*/require_onceDEDEINC.'/shopcar.class.php';$cart=newMemberShops();$cart->clearItem();$cart->MakeOrders();return$button;}/***响应操作*/functionrespond(){/*引入配置文件*/$code=preg_replace("#[^0-9a-z-]#i","",$_GET['code']);require_onceDEDEDATA.'/payment/'.$code.'.php';$attach=$_GET['attach'];$trade_state=$_GET['trade_state'];$total_fee=$_GET['total_fee'];$out_trade_no=trim($_GET['out_trade_no']);if(preg_match("/S-P[0-9]+RN[0-9]/",$order_sn)){//检查支付金额是否相符$row=$this->dsql->GetOne("SELECT*FROMym_shops_ordersWHEREoid='{$order_sn}'");if($row['priceCount']!=$_GET['total_fee']){return$msg="支付失败,支付金额与商品总价不相符!";}$this->mid=$row['userid'];/*检查数字签名是否正确*/ksort($_GET);reset($_GET);$sign='';foreach($_GETAS$key=>$val){if(""!=$val&&"sign"!=$key&&$key!='code'){$sign.="$key=$val&";}}$sign.="key=".$payment['tenpay_key'];if(strtolower(md5($sign))==strtolower($_GET['sign'])){if($trade_state==0){/*改变订单状态*/if($this->success_db($out_trade_no))return$msg="支付成功!<br><ahref='/'>返回主页</a><ahref='/member'>会员中心</a>";elsereturn$msg="支付失败!<br><ahref='/'>返回主页</a><ahref='/member'>会员中心</a>";}}else{//return$msg="支付失败!<br><ahref='/'>返回主页</a><ahref='/member'>会员中心</a>";}}/*处理物品交易*/functionsuccess_db($order_sn){$time=time();$mid=$this->mid;//获取订单信息,检查订单的有效性$row=$this->dsql->GetOne("SELECTstate,priceCountFROMym_shops_ordersWHEREoid='$order_sn'");if($row['state']>0){returnTRUE;}/*改变订单状态_支付成功*/$sql="UPDATE`ym_shops_orders`SET`state`='1'WHERE`oid`='$order_sn'AND`userid`='".$this->mid."'";if($this->dsql->ExecuteNoneQuery($sql)){$this->log_result("verify_success,订单号:".$order_sn);//将验证结果存入文件returnTRUE;}else{$this->log_result("verify_failed,订单号:".$order_sn);//将验证结果存入文件returnFALSE;}}functionlog_result($word){global$cfg_cmspath;$fp=fopen(dirname(__FILE__)."/../../data/payment/log.txt","a");flock($fp,LOCK_EX);fwrite($fp,$word.",执行日期:".strftime("%Y-%m-%d%H:%I:%S",time())."\r\n");flock($fp,LOCK_UN);fclose($fp);}}免责
上一篇:python解释器的多种使用
下一篇:织梦dedecms 5.7自动给图片添加alt属性的教程(织梦cms官网)
友情链接: 武汉网站建设