Heim > Artikel > Backend-Entwicklung > dedecms Tenpay-Schnittstelle
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 = '
= "$ key = $ val &";
if(strtolower(md5($sign))==strtolower($_GET['sign']))
{
if($trade_state==0)
{
/* Bestellstatus ändern*/
if($this->success _db($out_trade_no))
sonst zurück $msg = "Zahlung fehlgeschlagen! }
Zurück zur Startseite Member Center";
}
sonst{
//return $msg = „Zahlung fehlgeschlagen!
Zurück zur Startseite Mitgliedercenter a> ;";
}
/*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.