dedecms Tenpay interface, dedecms Tenpay_PHP tutorial
dedecms Tenpay interface, dedecms Tenpay
Used Dream Weaver to build a travel website, URL: http://www.redtourism.cn/ The customer requested Tenpay I tried to pay through it, and after searching online, I either wanted to buy it or pay for it, so I just wrote it myself.
Code:
if(!defined('DEDEINC')) exit('Request Error!');
/**
*Tenpay interface class
*/
class tenpay
{
var $dsql;
var $mid;
var $reqURL_onLine = "http://www.tenpay.com";
var $return_url='/plus/carbuyaction.php?dopost=return'; //返回处理地址
/**
* Constructor
*
* @access public
* @param
*
* @return void
*/
function tenpay()
{
global $dsql;
$this->dsql = $dsql;
}
function __construct()
{
$this->tenpay();
}
/**
* The setting interface will send the address
*
* For example: $this->SetReturnUrl($cfg_basehost."/tuangou/control/index.php?ac=pay&orderid=".$p2_Order)
*
* @param string $returnurl will send the address
* @return void
*/
function SetReturnUrl($returnurl='')
{
if (!empty($returnurl))
{
$this->return_url = $returnurl;
}
}
/**
* Generate payment code
* @param array $order Order information
* @param array $payment Payment method information
*/
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'], //Reminder address
'body' => $body, //Transaction description 'Bank_type' = & GT; $ Bank_type, // The default Tenpay of the transaction type
// User IP
'spban_create_ip' = & gt; $ _Server ['remote_addr'], // transaction ip
'fee_type' => '1', ' //Product name
'sign_type' => 'MD5', The default version number is 1.0
'input_charset' => 'UTF-8', /System encoding 'GBK'
'sign_key_index' 'attach' => $attach, // The original data is the same as the default
'product_fee' = & gt; '', // commodity costs
'transport_fee' = & gt; '0', // logistics costs
'time_start' = & gt; date; ("YmdHis"), //Order generation date("YmdHis")
'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;
}
/**
* Response operation
*/
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 = "支付失败!
返回主页 会员中心";
}
}
/*Process item transactions*/
function success_db($order_sn)
{
$time=time();
$mid= $this->mid;
//Get order information, check order validity
$row = $this->dsql->GetOne("SELECT state,priceCount FROM dede_shops_orders WHERE oid='$ order_sn' ");
Change order status_payment successful* /
$sql = "UPDATE `dede_shops_orders` SET `state`='1' WHERE `oid`='$order_sn' AND `userid`='".$this->mid."'" ;
if($this->dsql->ExecuteNoneQuery($sql))
{
; //Save the verification results to the file
return TRUE;
return FALSE;
$fp = fopen(dirname( __FILE__)."/../../data/payment/log.txt","a");
flock($fp, LOCK_EX);
fwrite($fp,$word.", execute Date: ".strftime("%Y-%m-%d %H:%I:%S",time())."rn");
flock($fp, LOCK_UN);
fclose ($fp);
}
}
http://www.bkjia.com/PHPjc/933470.html
www.bkjia.com
true
http: //www.bkjia.com/PHPjc/933470.html
TechArticle
dedecms Tenpay interface, dedecms Tenpay Universal Dreamweaver has made a travel website, URL: http:// www.redtourism.cn/ The customer asked for payment via Tenpay, and after searching online, he either wanted to buy something or wanted money...

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

Introduction to PHP interface and how it is defined. PHP is an open source scripting language widely used in Web development. It is flexible, simple, and powerful. In PHP, an interface is a tool that defines common methods between multiple classes, achieving polymorphism and making code more flexible and reusable. This article will introduce the concept of PHP interfaces and how to define them, and provide specific code examples to demonstrate their usage. 1. PHP interface concept Interface plays an important role in object-oriented programming, defining the class application

How to implement HTTP streaming in C++? Create an SSL stream socket using Boost.Asio and the asiohttps client library. Connect to the server and send an HTTP request. Receive HTTP response headers and print them. Receives the HTTP response body and prints it.

Teach you how to use PHP to remove the suffix of the URL path. In website development, you often encounter the need to remove the suffix of the URL path to achieve a more beautiful and standardized URL. Today we will learn how to use PHP to remove the suffix of the URL path, let us explore this issue together. First, we need to clarify what effect we want to achieve. Usually, the URL path suffix refers to the file extension in the URL, such as .php, .html, etc. Our goal is to automatically go to the URL when the user accesses the URL with the suffix

As a new operating system launched by Huawei, Hongmeng system has caused quite a stir in the industry. As a new attempt by Huawei after the US ban, Hongmeng system has high hopes and expectations. Recently, I was fortunate enough to get a Huawei mobile phone equipped with Hongmeng system. After a period of use and actual testing, I will share some functional testing and usage experience of Hongmeng system. First, let’s take a look at the interface and functions of Hongmeng system. The Hongmeng system adopts Huawei's own design style as a whole, which is simple, clear and smooth in operation. On the desktop, various

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

Java allows inner classes to be defined within interfaces and abstract classes, providing flexibility for code reuse and modularization. Inner classes in interfaces can implement specific functions, while inner classes in abstract classes can define general functions, and subclasses provide concrete implementations.

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.

In Golang (Go language), although there is no concept similar to classes in traditional object-oriented programming languages, similar functions can be achieved through structures and methods. In Golang, we can define a structure to encapsulate data, and define methods for the structure to manipulate data. This method can realize the basic functions of classes in object-oriented programming. First, let's look at a simple example, defining a structure named Person, containing two fields: name and age, and the Person structure
