Dreamweaver를 사용하여 여행 웹사이트를 만들었습니다. URL: http://www.redtourism.cn/ 고객이 Tenpay를 통해 결제를 요청했기 때문에 온라인으로 검색해 보니 구매하고 싶거나 돈을 요구하고 있는 것으로 나타났습니다. 그래서 직접 써야 했어요.
코드:
if(!definated('DEDEINC')) exit('요청 오류!');
/**
*Yibao 인터페이스 클래스
*/
클래스 텐페이
{
var $dsql;
var $mid;
var $reqURL_onLine = "http://www.tenpay.com";
var $return_url='/plus/carbuyaction .php?dopost=return'; //返回处理地址
/**
* 생성자
*
* @access public
* @param
*
* @return void
*/
function tenpay()
{
전역 $dsql;
$this->dsql = $dsql;
}
함수 __construct()
{
$this->tenpay();
}
/**
* 설정 인터페이스는 주소를 전송합니다
*
* 예: $this->SetReturnUrl($cfg_basehost."/tuangou/control/index.php?ac=pay&orderid=".$p2_Order )
*
* @param string $returnurl이 주소를 보냅니다
* @return void
*/
함수 SetReturnUrl ($returnurl='')
{
if (!empty($returnurl))
{
$this->return_url = $returnurl;
}
}
/**
* 결제코드 생성
* @param array $order 주문정보
* @param array $결제 결제수단정보
*/
function GetCode($order, $지불)
{
global $cfg_basehost,$cfg_cmspath;
//对于二级目录的处理
if (!empty($cfg_cmspath)) $cfg_basehost = $cfg_basehost.'/'.$cfg_cmspath;
$partner = $지불['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($결제['tenpay_pay_method']) ? '1' : $결제['tenpay_pay_method'];
$parameter = array(
'파트너' => $partner,
'out_trade_no' => //订单号
'total_fee' => $total_fee, //总金额
'notify_url' => $this->return_url."&code=".$결제['code'], //返回地址
'return_url' => $cfg_basehost.$this->return_url."&code=".$결제['code'], //알림 주소
'body' => $body, //거래 설명 'fee_type' => '1', ' //제품명
//시스템 선택적 매개변수
'sign_type' => 'md5', 'input_charset'= & gt; // 비즈니스 선택적 매개변수
'Attach' = & gt; $ Attach, // 원본 데이터는 기본값을 반환합니다. 'product_fee' => //상품 수수료
'time_start' => 날짜("YmdHis"), //주문 생성 시간 날짜("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 = '
ksort ($ _ get)
Reset ($ _ get)
$ sign = ''; AS $key => $val)
> ~
if(strtolower(md5($sign))==strtolower($_GET['sign']))
{
{ }
/* 주문 상태 변경*/
if($this->success _db($out_trade_no))
msg = "결제 성공!
홈페이지로 돌아가기 회원 센터";
그렇지 않으면 돌아가기 $msg = "결제 실패!
홈페이지로 돌아가기 회원 센터
";
}
그밖에{
//return $msg = "결제 실패!
홈페이지로 돌아가기 회원 센터 a> ;";
}
/*아이템 거래 처리*/
function Success_db($order_sn)
{
$time=time();
$mid= $this->mid;
//주문 정보 가져오기, 주문 유효성 확인
$row = $this->dsql->GetOne("SELECT state,priceCount FROM #@__shops_orders WHERE oid= '$ order_sn'');
* 주문 상태 변경 성공*/
~ ."'";
if($this->dsql->ExecuteNoneQuery($sql))
{
$this->log_result("verify_success, 주문 번호:". $order_sn) //확인 결과를 파일에 저장
~ 결과는 파일에 저장됩니다
FALSE를 반환합니다.
}
}
function log_result($word) {
global $cfg_cmspath;
$fp = fopen (dirname(__FILE__) ."/../../data/pay /log.txt","a");
Flock($fp, LOCK_EX) ;
fwrite($fp,$word.", 실행 날짜: ".strftime("%Y-%m-% d %H:%I:%S",time())."rn");
Flock($fp, LOCK_UN);
fclose($ fp);
}
}
위 내용은 관련 내용을 포함하여 Dedecms Tenpay 인터페이스를 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.