dedecms Tenpay-Schnittstelle

WBOY
Freigeben: 2016-08-08 09:32:01
Original
936 Leute haben es durchsucht

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.


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage