财付通php接口.docx
- 文档编号:6998171
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:12
- 大小:17.89KB
财付通php接口.docx
《财付通php接口.docx》由会员分享,可在线阅读,更多相关《财付通php接口.docx(12页珍藏版)》请在冰豆网上搜索。
财付通php接口
ml财付通是腾讯推出的一项类似支付宝的在线交易工具,分为两种:
一种是财付通即时到帐交易,另外一种是财付通担保交易,即时到帐交易网上有很多接口,下面我谈谈财付通担保交易,基本程序如下图所示:
1:
tenpay_config.php程序代码:
//此文件为财付通支付配置文件
//☆★☆★☆★☆★☆★☆★财付通测试开关0关闭测试1开启测试☆★☆★☆★☆★☆★☆★
$beta_switch="0";
//☆★☆★☆★☆★☆★☆★系统配置☆★☆★☆★☆★☆★☆★
//以下每一项都必须要配置,并准确
$version="2";
//版本号2
$cmdno="12";
//任务代码,定值:
12
$encode_type="1";
//编码标准
$chnid="3692020";
//平台提供者,***商的财付通账号
$mch_type="1";
//交易类型:
1、实物交易,2、虚拟交
易。
//☆★☆★☆★☆★☆★☆★财付通支付配置项。
☆★☆★☆★☆★☆★☆★
//以下每一项都必须要配置,并准确
$seller="573432430";
//卖家帐号(我这里是乱配的,你需要填写正确的)
$sp_key="520530";
//密钥(我这里是乱配的,你需要填写正确的)
$domain="";
//商户网站域名
$tenpay_dir="/tenpay";
//财付通安装目录
$site_name="顺心门业";
//商户网站名称
$attach="tencent_magichu";
//支付附加数据,非中文标准字符
$imgtitle="财付通支付";
//图片说明
$imgsrc=tenpay_dir&"/image/tenpay_buy.gif";
//图片地址
$pay_url="cgi";
//财付通支付网关地址
$need_buyerinfo="2";
$mch_returl="";//通知URL
$show_url=$domain.$tenpay_dir."/tenpay_show.php";//返回URL
?
>
2:
md5_request.php程序代码:
php
//include("tenpay_util.php");
classtenpay_online_payment
{
//检查并组合支付参数串
functionAddParameter($buffer,$parameterName,$parameterValue)
{
if($parameterValue=="")
return$buffer;
if(empty($buffer))
$buffer=$parameterName."=".$parameterValue;
else
$buffer=$buffer."&".$parameterName."=".$parameterValue;
return$buffer;
}
//产生支付链接
functiontenpay_interface_pay($mch_name,$mch_price,$transport_desc,$transport_fee,$mch_desc,$mch_vno)
{
include_once("tenpay_config.php");
if(empty($mch_price))
{
$retcode="09001";
$retmsg="缺少mch_price";
}
if($transport_desc=="")
{
$retcode="06002";
$retmsg="缺少transport_desc,将被默认设置不需要物流***";
$transport_desc="无物流***";
}
if($transport_fee=="")
{
if(retcode=="06002")
{
$transport_fee="0";
}
else
{
$retcode="09002";
$retmsg="缺少transport_fee,将被默认设置不需要物流***";
}
}
if(empty($mch_desc))
{
$retcode="06003";
$retmsg="缺少交易描述***,将被默认设置为网站地址加交易购物";
$mch_desc=$domain."交易购物";
}
if(empty($mch_vno))
{
$retcode="09003";
$retmsg="缺少商家订单号";
}
if(empty($mch_name))
{
$retcode="06005";
$retmsg="缺少商品名称,将被默认设置为网站地址加订单号";
$mch_name=$site_name."订单:
".$mch_vno;
}
if(empty($mch_returl))
{
$retcode="06006";
$retmsg="缺少回调url,将被默认设置为/tenpay/notify_handler.php";
$mch_returl=$domain.$tenpay_dir."/tenpay_notify.php";
}
if(empty($show_url))
{
$retcode="06007";
$retmsg="缺少回显url,将被默认设置为/tenpay/tenpay_show.php";
$show_url=$domain.$tenpay_dir."/tenpay_show.php";
}
//判断测试开关,如果开启测试,支付金额为1分
if($beta_switch=="1")
{
echo"enterbeta_switch";
$mch_price="1";
$transport_fee="0";
$buffer=$this->AddParameter($buffer,"attach",$attach);
$buffer=$this->AddParameter($buffer,"chnid",$chnid);
$buffer=$this->AddParameter($buffer,"cmdno","12");
$buffer=$this->AddParameter($buffer,"encode_type",$encode_type);
$buffer=$this->AddParameter($buffer,"mch_desc",$mch_desc);
$buffer=$this->AddParameter($buffer,"mch_name",$mch_name);
$buffer=$this->AddParameter($buffer,"mch_price",$mch_price);
$buffer=$this->AddParameter($buffer,"mch_returl",$mch_returl);
$buffer=$this->AddParameter($buffer,"mch_type",$mch_type);
$buffer=$this->AddParameter($buffer,"mch_vno",$mch_vno);
$buffer=$this->AddParameter($buffer,"need_buyerinfo",$need_buyerinfo);
$buffer=$this->AddParameter($buffer,"seller",$seller);
$buffer=$this->AddParameter($buffer,"show_url",$how_url);
$buffer=$this->AddParameter($buffer,"transport_desc",$transport_desc);
$buffer=$this->AddParameter($buffer,"transport_fee",$transport_fee);
$buffer=$this->AddParameter($buffer,"version",$version);
$md5_sign=strtoupper(md5($buffer."&key=".$sp_key));
$redurl=$pay_url."?
".$buffer."&sign=".$md5_sign;
echo$retcode."
".$retmsg."
";
echo$redurl;
return$redurl;
}
else
{
if($retcode<"09000")
{
$buffer=$this->AddParameter($buffer,"attach",$attach);
$buffer=$this->AddParameter($buffer,"chnid",$chnid);
$buffer=$this->AddParameter($buffer,"cmdno","12");
$buffer=$this->AddParameter($buffer,"encode_type",$encode_type);
$buffer=$this->AddParameter($buffer,"mch_desc",$mch_desc);
$buffer=$this->AddParameter($buffer,"mch_name",$mch_name);
$buffer=$this->AddParameter($buffer,"mch_price",$mch_price);
$buffer=$this->AddParameter($buffer,"mch_returl",$mch_returl);
$buffer=$this->AddParameter($buffer,"mch_type",$mch_type);
$buffer=$this->AddParameter($buffer,"mch_vno",$mch_vno);
$buffer=$this->AddParameter($buffer,"need_buyerinfo",$need_buyerinfo);
$buffer=$this->AddParameter($buffer,"seller",$seller);
$buffer=$this->AddParameter($buffer,"show_url",$show_url);
$buffer=$this->AddParameter($buffer,"transport_desc",$transport_desc);
$buffer=$this->AddParameter($buffer,"transport_fee",$transport_fee);
$buffer=$this->AddParameter($buffer,"version",$version);
$md5_sign=strtoupper(md5($buffer."&key=".$sp_key));
$redurl=$pay_url."?
".$buffer."&sign=".$md5_sign;
return$redurl;
}
}
}
}
?
>
3:
tenpay_show.php程序代码:
include_once("tenpay_config.php");
require_once("md5_request.php");
$tenpay=newtenpay_online_payment;
import_request_variables("gpc","frm_");
$cmdno=$frm_cmdno;
$version=$frm_version;
$retcode=$frm_retcode;
$status=$frm_status;
$seller=$frm_seller;
$total_fee=$frm_total_fee;
$trade_price=$frm_trade_price;
$transport_fee=$frm_transport_fee;
$buyer_id=$frm_buyer_id;
$chnid=$frm_chnid;
$cft_tid=$frm_cft_tid;
$smch_vno=$frm_mch_vno;
$attach=$frm_attach;
$version=$frm_version;
$sign=$frm_sign;
$iRetOK=0;//成功
$iInvalidSpid=1;//商户号错误
$iInvalidSign=2;//签名错误
$iTenpayErr=3;//财付通返往返支付失败
$buffer=$tenpay->AddParameter($buffer,"attach",$attach);
$buffer=$tenpay->AddParameter($buffer,"buyer_id",$buyer_id);
$buffer=$tenpay->AddParameter($buffer,"cft_tid",$cft_tid);
$buffer=$tenpay->AddParameter($buffer,"chnid",$chnid);
$buffer=$tenpay->AddParameter($buffer,"cmdno",$cmdno);
$buffer=$tenpay->AddParameter($buffer,"mch_vno",$mch_vno);
$buffer=$tenpay->AddParameter($buffer,"retcode",$retcode);
$buffer=$tenpay->AddParameter($buffer,"seller",$seller);
$buffer=$tenpay->AddParameter($buffer,"status",$status);
$buffer=$tenpay->AddParameter($buffer,"total_fee",$total_fee);
$buffer=$tenpay->AddParameter($buffer,"trade_price",$trade_price);
$buffer=$tenpay->AddParameter($buffer,"transport_fee",$transport_fee);
$buffer=$tenpay->AddParameter($buffer,"version",$version);
$strLocalSign=strtoupper(md5($buffer."&key=".$sp_key));
if($strLocalSign==$sign)
{
//验证MD5签名成功
if($retcode=="0")
{
//支付成功,在这里处理业务逻辑注意判断订单是否重复的逻辑,注意订单金额为分
//echo"
if($status=="3")
{
//支付成功,在这里处理业务逻辑注意判断订单是否重复的逻辑,注意订单金额为分
echo"支付成功";
}
else
{
//支付失败,请根据retcode进行错误逻辑处理
}
}
}
else
{
//签名失败,请进行非法操作的逻辑处理
}
?
>
4:
tenpay_notify.php程序代码:
include_once("tenpay_config.php");
require_once("md5_request.php");
$tenpay=newtenpay_online_payment;
import_request_variables("gpc","frm_");
$cmdno=$frm_cmdno;
$retcode=$frm_retcode;
$status=$frm_status;
$seller=$frm_seller;
$total_fee=$frm_total_fee;
$trade_price=$frm_trade_price;
$transport_fee=$frm_transport_fee;
$buyer_id=$frm_buyer_id;
$chnid=$frm_chnid;
$cft_tid=$frm_cft_tid;
$mch_vno=$frm_mch_vno;
$attach=$frm_attach;
$version=$frm_version;
$sign=$frm_sign;$iRetOK=0;//成功
$iInvalidSpid=1;//商户号错误
$iInvalidSign=2;//签名错误
$iTenpayErr=3;//财付通返往返支付失败
$buffer=$tenpay->AddParameter($buffer,"attach",$attach);
$buffer=$tenpay->AddParameter($buffer,"buyer_id",$buyer_id);
$buffer=$tenpay->AddParameter($buffer,"cft_tid",$cft_tid);
$buffer=$tenpay->AddParameter($buffer,"chnid",$chnid);
$buffer=$tenpay->AddParameter($buffer,"cmdno",$cmdno);
$buffer=$tenpay->AddParameter($buffer,"mch_vno",$mch_vno);
$buffer=$tenpay->AddParameter($buffer,"retcode",$retcode);
$buffer=$tenpay->AddParameter($buffer,"seller",$seller);
$buffer=$tenpay->AddParameter($buffer,"status",$status);
$buffer=$tenpay->AddParameter($buffer,"total_fee",$total_fee);
$buffer=$tenpay->AddParameter($buffer,"trade_price",$trade_price);
$buffer=$tenpay->AddParameter($buffer,"transport_fee",$transport_fee);
$buffer=$tenpay->AddParameter($buffer,"version",$version);
$strLocalSign=strtoupper(md5($buffer."&key=".$sp_key));
if($strLocalSign==$sign)
{
//验证MD5签名成功
if($retcode=="0")
{
//支付成功,在这里处理业务逻辑注意判断订单是否重复的逻辑,注意订单金额为分
echo"
echo$status;
switch(($status)){
case1:
//交易创建
break;
case2:
//收获地址填写完毕
break;
case3:
//买家付款成功,注意判断订单是否重复的逻辑
echo"testpaysuccess";
break;
case4:
//卖家发货成功
break;
case5:
//买家收货确认,交易成功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 财付通 php 接口
![提示](https://static.bdocx.com/images/bang_tan.gif)