찾다
백엔드 개발PHP 튜토리얼Dedecms Tenpay 인터페이스

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, //거래 설명 $_SERVER['REMOTE_ADDR'], //거래 IP
'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 = '



$ 반환 버튼
/* 장바구니 비우기*/
Require_ONCE DEDEINC '/Shopcar.Class.php' 🎜> $cart->clearItem(); > ()
{
/* 구성 파일 가져오기*/
$code = preg_replace( "#[^0-9a-z-]#i", "", $_GET['code'] ) ;
require_once DEDEDATA.'/결제/'.$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)) {
                                                                                                                ;dsql->GetOne("SELECT * FROM #@__shops_orders WHERE oid = '{$order_sn}'");
      if ($row['priceCount'] != $_GET['total_fee'])
{
Return $ msg = "결제 실패, 결제 금액이 제품의 총 가격과 일치하지 않습니다!";
}
$ this- & gt; mid = $ row ['userid'];
/* 디지털 서명이 올바른지 확인* /

ksort ($ _ get)
Reset ($ _ get)

$ sign = ''; AS $key => $val)
                                                                                     > ~
if(strtolower(md5($sign))==strtolower($_GET['sign']))

{

if($trade_state==0)

{
/* 주문 상태 변경*/
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
과대 광고 : 오늘 PHP의 역할을 평가합니다과대 광고 : 오늘 PHP의 역할을 평가합니다Apr 12, 2025 am 12:17 AM

PHP는 현대적인 프로그래밍, 특히 웹 개발 분야에서 강력하고 널리 사용되는 도구로 남아 있습니다. 1) PHP는 사용하기 쉽고 데이터베이스와 완벽하게 통합되며 많은 개발자에게 가장 먼저 선택됩니다. 2) 동적 컨텐츠 생성 및 객체 지향 프로그래밍을 지원하여 웹 사이트를 신속하게 작성하고 유지 관리하는 데 적합합니다. 3) 데이터베이스 쿼리를 캐싱하고 최적화함으로써 PHP의 성능을 향상시킬 수 있으며, 광범위한 커뮤니티와 풍부한 생태계는 오늘날의 기술 스택에 여전히 중요합니다.

PHP의 약한 참고 자료는 무엇이며 언제 유용합니까?PHP의 약한 참고 자료는 무엇이며 언제 유용합니까?Apr 12, 2025 am 12:13 AM

PHP에서는 약한 참조가 약한 회의 클래스를 통해 구현되며 쓰레기 수집가가 물체를 되 찾는 것을 방해하지 않습니다. 약한 참조는 캐싱 시스템 및 이벤트 리스너와 같은 시나리오에 적합합니다. 물체의 생존을 보장 할 수 없으며 쓰레기 수집이 지연 될 수 있음에 주목해야합니다.

PHP의 __invoke 마법 방법을 설명하십시오.PHP의 __invoke 마법 방법을 설명하십시오.Apr 12, 2025 am 12:07 AM

\ _ \ _ 호출 메소드를 사용하면 객체를 함수처럼 호출 할 수 있습니다. 1. 객체를 호출 할 수 있도록 메소드를 호출하는 \ _ \ _ 정의하십시오. 2. $ obj (...) 구문을 사용할 때 PHP는 \ _ \ _ invoke 메소드를 실행합니다. 3. 로깅 및 계산기, 코드 유연성 및 가독성 향상과 같은 시나리오에 적합합니다.

동시성에 대해 PHP 8.1의 섬유를 설명하십시오.동시성에 대해 PHP 8.1의 섬유를 설명하십시오.Apr 12, 2025 am 12:05 AM

섬유는 PHP8.1에 도입되어 동시 처리 기능을 향상시켰다. 1) 섬유는 코 루틴과 유사한 가벼운 동시성 모델입니다. 2) 개발자는 작업의 실행 흐름을 수동으로 제어 할 수 있으며 I/O 집약적 작업을 처리하는 데 적합합니다. 3) 섬유를 사용하면보다 효율적이고 반응이 좋은 코드를 작성할 수 있습니다.

PHP 커뮤니티 : 자원, 지원 및 개발PHP 커뮤니티 : 자원, 지원 및 개발Apr 12, 2025 am 12:04 AM

PHP 커뮤니티는 개발자 성장을 돕기 위해 풍부한 자원과 지원을 제공합니다. 1) 자료에는 공식 문서, 튜토리얼, 블로그 및 Laravel 및 Symfony와 같은 오픈 소스 프로젝트가 포함됩니다. 2) 지원은 StackoverFlow, Reddit 및 Slack 채널을 통해 얻을 수 있습니다. 3) RFC에 따라 개발 동향을 배울 수 있습니다. 4) 적극적인 참여, 코드에 대한 기여 및 학습 공유를 통해 커뮤니티에 통합 될 수 있습니다.

PHP vs. Python : 차이점 이해PHP vs. Python : 차이점 이해Apr 11, 2025 am 12:15 AM

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP : 죽어 가거나 단순히 적응하고 있습니까?PHP : 죽어 가거나 단순히 적응하고 있습니까?Apr 11, 2025 am 12:13 AM

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

PHP의 미래 : 적응 및 혁신PHP의 미래 : 적응 및 혁신Apr 11, 2025 am 12:01 AM

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전