Table of Contents
dedecms Tenpay interface, dedecms Tenpay
Home Backend Development PHP Tutorial dedecms Tenpay interface, dedecms Tenpay_PHP tutorial

dedecms Tenpay interface, dedecms Tenpay_PHP tutorial

Jul 13, 2016 am 10:10 AM
dedecms http indivual interface travel website URL Tenpay

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...

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Two Point Museum: All Exhibits And Where To Find Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Introduction to PHP interfaces and how to define them Introduction to PHP interfaces and how to define them Mar 23, 2024 am 09:00 AM

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 using C++? How to implement HTTP streaming using C++? May 31, 2024 am 11:06 AM

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 Teach you how to use PHP to remove the suffix of the URL path Mar 21, 2024 pm 03:39 PM

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

Insight into Hongmeng system: actual function measurement and usage experience Insight into Hongmeng system: actual function measurement and usage experience Mar 23, 2024 am 10:45 AM

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

Where is the imperial cms resource network template? Where is the imperial cms resource network template? Apr 17, 2024 am 10:00 AM

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

Inner class implementation of interfaces and abstract classes in Java Inner class implementation of interfaces and abstract classes in Java Apr 30, 2024 pm 02:03 PM

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.

How to use dedecms How to use dedecms Apr 16, 2024 pm 12:15 PM

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.

Is there a class-like programming concept in Golang? Is there a class-like programming concept in Golang? Mar 19, 2024 am 10:12 AM

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

See all articles