dedecms集成财付通支付接口_PHP
用织梦做了个旅游网站,客户要求财付通支付,上网找了下 不是要买就是要钱,只有自己写了。
代码:
代码如下:
if(!defined('DEDEINC')) exit('Request Error!');
/**
*财付通接口类
*/
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($cfg_basehost."/tuangou/control/index.php?ac=pay&orderid=".$p2_Order)
*
* @param string $returnurl 会送地址
* @return void
*/
function SetReturnUrl($returnurl='')
{
if (!empty($returnurl))
{
$this->return_url = $returnurl;
}
}
/**
* 生成支付代码
* @param array $order 订单信息
* @param array $payment 支付方式信息
*/
function GetCode($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 ($parameter AS $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 = '
return $button;
/* 清空购物车 */
require_once DEDEINC.'/shopcar.class.php';
$cart = new MemberShops();
$cart->clearItem();
$cart->MakeOrders();
return $button;
}
/**
* 响应操作
*/
function respond()
{
/* 引入配置文件 */
$code = preg_replace( "#[^0-9a-z-]#i", "", $_GET['code'] );
require_once DEDEDATA.'/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 * FROM dede_shops_orders WHERE oid = '{$order_sn}'");
if ($row['priceCount'] != $_GET['total_fee'])
{
return $msg = "支付失败,支付金额与商品总价不相符!";
}
$this->mid = $row['userid'];
/* 检查数字签名是否正确 */
ksort($_GET);
reset($_GET);
$sign = '';
foreach ($_GET AS $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 = "支付成功!
返回主页 会员中心";
else return $msg = "支付失败!
返回主页 会员中心";
}
}
else{
//return $msg = "支付失败!
返回主页 会员中心";
}
}
/*处理物品交易*/
function success_db($order_sn)
{
$time=time();
$mid=$this->mid;
//获取订单信息,检查订单的有效性
$row = $this->dsql->GetOne("SELECT state,priceCount FROM dede_shops_orders WHERE oid='$order_sn' ");
if($row['state'] > 0)
{
return TRUE;
}
/* 改变订单状态_支付成功 */
$sql = "UPDATE `dede_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); //将验证结果存入文件
return TRUE;
} else {
$this->log_result ("verify_failed,订单号:".$order_sn);//将验证结果存入文件
return FALSE;
}
}
function log_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);
}
}

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Empire CMS template download location: Official template download: https://www.phome.net/template/ Third-party template website: https://www.dedecms.com/diy/https://www.0978.com.cn /https://www.jiaocheng.com/Installation method: Download template Unzip template Upload template Select template

Dedecms is an open source Chinese CMS system that provides content management, template system and security protection. The specific usage includes the following steps: 1. Install Dedecms. 2. Configure the database. 3. Log in to the management interface. 4. Create content. 5. Set up the template. 6. Manage users. 7. Maintain the system.

Accurate and reliable dedecms conversion tool evaluation report With the rapid development of the Internet era, website construction has become one of the necessary tools for many companies and individuals. In website construction, using a content management system (CMS) can manage website content and functions more conveniently and efficiently. Among them, dedecms, as a well-known CMS system, is widely used in various website construction projects. However, sometimes we are faced with the need to convert the dedecms website to other formats, in which case we need to use a conversion tool

How to upload local videos using Dedecms? Prepare the video file in a format that is supported by Dedecms. Log in to the Dedecms management backend and create a new video category. Upload video files on the video management page, fill in the relevant information and select the video category. To embed a video while editing an article, enter the file name of the uploaded video and adjust its dimensions.

Template replacement can be implemented in Dedecms through the following steps: modify the global.cfg file and set the required language pack. Modify the taglib.inc.php hook file and add support for language suffix template files. Create a new template file with a language suffix and modify the required content. Clear Dedecms cache.

Learning dedecms encoding conversion function is not complicated. Simple code examples can help you quickly master this skill. In dedecms, the encoding conversion function is usually used to deal with problems such as Chinese garbled characters and special characters to ensure the normal operation of the system and the accuracy of data. The following will introduce in detail how to use the encoding conversion function of dedecms, allowing you to easily cope with various encoding-related needs. 1.UTF-8 to GBK In dedecms, if you need to convert UTF-8 encoded string to G

DedeCMS is an open source content management system that has some potential vulnerabilities and security risks: 1. SQL injection vulnerability. Attackers can perform unauthorized operations or obtain sensitive data by constructing malicious SQL query statements; 2. File Upload vulnerability, attackers can upload files containing malicious code to the server to execute arbitrary code or obtain server permissions; 3. Sensitive information leakage; 4. Unauthenticated vulnerability exploitation.

dedecms is an open source PHP content management system, specially designed for Chinese websites, with the following functions and features: User-friendly interface Powerful editor Flexible template system Multi-language support Built-in search engine optimization (SEO) Powerful user management system The advantages of the plug-in system dedecms include open source and free, high scalability, active community, easy to use and highly customizable.
