Heim >Backend-Entwicklung >PHP-Tutorial >dedecms Tenpay-Schnittstelle

dedecms Tenpay-Schnittstelle

WBOY
WBOYOriginal
2016-08-08 09:32:01943Durchsuche

Ich habe DreamWeaver verwendet, um eine Reise-Website zu erstellen. Die URL lautet: http://www.redtourism.cn/. Der Kunde verlangte eine Zahlung über Tenpay, also suchte ich online und stellte fest, dass ich sie entweder kaufen wollte oder Geld brauchte , also musste ich es selbst schreiben.

Code:

if(!defined('DEDEINC')) exit('Request Error!');
/**
*Yibao-Schnittstellenklasse
*/
class tenpay
{
    var $dsql;
    var $mid;
 
    var $reqURL_onLine = "http://www.tenpay.com";
    
    var $return_url='/plus/carbuyaction .php?dopost=return'; //返回处理地址
        
    /**
* Konstruktor
*
* @access public
* @param
*
* @return void
*/
    function tenpay()
    {
        global $dsql;
        $this->dsql =. $ds ql;
    ‏‎ ($returnurl='')
    {
        if (!empty($returnurl))
        {
            $this->return_url = $returnurl;
        }
    }
    /**
* Die Einstellungsschnittstelle sendet die Adresse
*
* Zum Beispiel: $this->SetReturnUrl($cfg_basehost."/tuangou/control/index.php?ac=pay&orderid=".$p2_Order )
*
* @param string $returnurl sendet die Adresse
* @return void
*/
    function GetCode($order, $ payment)
    {
        global $cfg_basehost,$cfg_cmspath;
       . //对于二级目录的处理
       wenn (!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,                           //总金额
                   => $cfg_ basehost.$this->return_url."&code=".$zahlung['code'],  //返回地址
'return_url' => $cfg_basehost.$this->return_url."&code=".$zahlung['code'], //Erinnerungsadresse
'body' => : => $_SERVER['REMOTE_ADDR'], //Transaktions-IP
'fee_type' => //Produktname
//Optionale Systemparameter
'sign_type' => ; 'Md5', // Verschlüsselungsmethode
'Service_version' = & gt; Code 'gbk'
'sign_key_index' = & gt; // Schlüsselseriennummer
// optionale Geschäftsparameter
'Attach' = & gt; die Standardeinstellung 'product_fee' => '', //Produktgebühr
'time_start' => date("YmdHis"), //Auftragsgenerierung time 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;
/* Warenkorb leeren*/
Require_ONCE DEDEINC' 🎜> $cart->clearItem();
()
{
/* Konfigurationsdatei importieren*/
$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) {
// Prüfen, ob der Zahlungsbetrag im Einklang steht                                                                           { Return $ msg = „Zahlung fehlgeschlagen, der Zahlungsbetrag entspricht nicht dem Gesamtpreis des Produkts!“;
}
$ this-& gt; mid = $ row ['userid'];
/* Überprüfen Sie, ob die digitale Signatur korrekt ist* /
ksort ($ _ get);

reset ($ _ get); Als $ key = & gt; $ val)

= "$ key = $ val &";
if(strtolower(md5($sign))==strtolower($_GET['sign']))

{
if($trade_state==0)
{
/* Bestellstatus ändern*/
if($this->success _db($out_trade_no))

                                                                msg = "Zahlung erfolgreich!
Zurück zur Startseite Member Center";

sonst zurück $msg = "Zahlung fehlgeschlagen!
Zurück zur Startseite Member Center";
}

sonst{

//return $msg = „Zahlung fehlgeschlagen!
Zurück zur Startseite Mitgliedercenter

}
}

/*Artikeltransaktionen verarbeiten*/
function success_db($order_sn)
{
$time=time();
$mid= $this->mid;
//Bestellinformationen abrufen, Bestellgültigkeit prüfen
$row = $this->dsql->GetOne("SELECT state,priceCount FROM #@__shops_orders WHERE oid= '$ order_sn' ");
                                                                                                                                         * Bestellstatus ändern_Zahlung*/
                                                                                                                                                                    ​."'";
if($this->dsql->ExecuteNoneQuery($sql))
{

$this->log_result("verify_success, order number:". $order_sn); //Speichern Sie die Verifizierungsergebnisse in der Datei
                                                                                                                                                                                                          Die Ergebnisse werden in der Datei gespeichert
return FALSE;
}
}

function log_result($word) {
global $cfg_cmspath;
$fp = fopen (dirname(__FILE__) ."/../../data/paid /log.txt","a");
flock($fp, LOCK_EX) ;
fwrite($fp,$word.", Ausführungsdatum: ".strftime("%Y-%m-% d %H:%I:%S",time())."rn");
flock($fp, LOCK_UN);
fclose($ fp);
}
}

Das Obige stellt die Tenpay-Schnittstelle von dedecms vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.