织梦dedecms集成财付通支付接口

2021-07-04 作者:未知   |   浏览(
用DEDE做了个旅游网站,顾客需要财付通支付,上网找了下 不是要买就是要钱,只有自己写了。
代码:
复制代码代码如下:
?php
if) exit;
/**
*财付通接口类
*/
class tenpay
{
var $dsql;
var $mid;
var $reqURL_onLine = http://www.tenpay.com;
var $return_url=/plus/carbuyaction.php?dopost=return; //返回处置地址
/**
* 架构函数
*
* @access public
* @param
*
* @return void
*/
function tenpay
{
global $dsql;
$this-dsql = $dsql;
}
function __construct
{
$this-tenpay;
}
/**
* 设定接口会送地址
*
* 比如: $this-SetReturnUrl
*
* @param string $returnurl 会送地址
* @returnvoid
*/
function SetReturnUrl
{
if )
{
$this-return_url = $returnurl;
}
}
/**
* 生成支付代码
* @paramarray$order 订单信息
* @paramarray$payment支付方法信息
*/
function GetCode
{
global $cfg_basehost,$cfg_cmspath;
//对于二级目录的处置
if) $cfg_basehost = $cfg_basehost./.$cfg_cmspath;
$partner = $payment[tenpay_account];
$out_trade_no = $order[out_trade_no];
$total_fee = floatval * 100;
$body = $order[out_trade_no];
$attach = ;
$bank_type = DEFAULT;
/* 买卖种类:2、虚拟买卖,1、实物买卖 */
$trans_type = 1;
$trade_mode=empty ? 1 : $payment[tenpay_pay_method];
$parameter = array, //订单生成时间date
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;
reset;
$param = ;
$sign = ;
foreach
{
$param .= $key= .urlencode. ;
if {
$sign .= $key=$val;
}
}
$param = substr;
$sign .= key=.$payment[tenpay_key];
$sign = strtolower);
$button = p style=text-align:center;a href=https://gw.tenpay.com/gateway/pay.htm?.$param. sign=.$sign.button立即便用财付通支付/button/a/p;
return $button;
/* 清空购物车 */
require_once DEDEINC./shopcar.class.php;
$cart = new MemberShops;
$cart-clearItem;
$cart-MakeOrders;
return $button;
}
/**
* 响应操作
*/
function respond
{
/* 引入配置文件 */
$code = preg_replace;
require_once DEDEDATA./payment/.$code..php;
$attach = $_GET[attach];
$trade_state= $_GET[trade_state];
$total_fee = $_GET[total_fee];
$out_trade_no = trim;
if) {
//检查支付金额是不是相符
$row = $this-dsql-GetOne;
if
{
return $msg = 支付失败,支付金额与产品总价不相符!;
}
$this-mid = $row[userid];
/* 检查数字签名是不是正确 */
ksort;
reset;
$sign = ;
foreach
{
if {
$sign .= $key=$val;
}
}
$sign .= key=.$payment[tenpay_key];
if)==strtolower)
{
if
{
/* 改变订单状况 */
if)
return $msg = 支付成功!
a href=/返回主页/a a href=/member会员中心/a;
else return $msg = 支付失败!
a href=/返回主页/a a href=/member会员中心/a;
}
}
else{
//return $msg = 支付失败!
a href=/返回主页/a a href=/member会员中心/a;
}
}
/*处置物品买卖*/
function success_db
{
$time=time;
$mid=$this-mid;
//获得订单信息,检查订单的有效性
$row = $this-dsql-GetOne;
if
{
return TRUE;
}
/* 改变订单状况_支付成功 */
$sql = UPDATE `ym_shops_orders` SET `state`=1 WHERE `oid`=$order_sn AND `userid`=.$this-mid.;
if)
{
$this-log_result; //将验证结果存入文件
return TRUE;
} else {
$this-log_result ;//将验证结果存入文件
return FALSE;
}
}
function log_result {
global $cfg_cmspath;
$fp = fopen./../../data/payment/log.txt,a);
flock ;
fwrite).\r\n);
flock;
fclose;
}
}