目次
dedecms集成财付通支付接口,dedecms集成财付通
ホームページ php教程 php手册 dedecms集成财付通支付接口,dedecms集成财付通

dedecms集成财付通支付接口,dedecms集成财付通

Jun 13, 2016 am 09:17 AM
dedecms 支払いインターフェース テンパイ

dedecms集成财付通支付接口,dedecms集成财付通

用织梦做了个旅游网站,客户要求财付通支付,上网找了下 不是要买就是要钱,只有自己写了。

代码:

复制代码 代码如下:


if(!defined('DEDEINC')) exit('Request Error!');
/**
 *财付通接口类
 */
class tenpay
{
    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()
    {
        global $dsql;
        $this->dsql = $dsql;
    }
    function __construct()
    {
        $this->tenpay();
    }
    /**
     *  设定接口会送地址
     *
     *  例如: $this->SetReturnUrl($cfg_basehost."/tuangou/control/index.php?ac=pay&orderid=".$p2_Order)
     *
     * @param     string  $returnurl  会送地址
     * @return    void
     */
    function SetReturnUrl($returnurl='')
    {
        if (!empty($returnurl))
        {
            $this->return_url = $returnurl;
        }
    }
    /**
    * 生成支付代码
    * @param   array   $order      订单信息
    * @param   array   $payment    支付方式信息
    */
    function GetCode($order, $payment)
    {
        global $cfg_basehost,$cfg_cmspath;
        //对于二级目录的处理
        if(!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,                              //总金额
            'notify_url'           => $cfg_basehost.$this->return_url."&code=".$payment['code'],  //返回地址
            'return_url'           => $cfg_basehost.$this->return_url."&code=".$payment['code'], //提醒地址
            'body'                 => $body,                            //交易描述
            'bank_type'            => $bank_type,                       //交易类型  默认财付通
            //用户ip
            'spbill_create_ip'     => $_SERVER['REMOTE_ADDR'],          //交易ip
            'fee_type'             => '1',                        //币种  1 人民币
            'subject'              => $body,                            //商品名称
            //系统可选参数
            'sign_type'            => 'MD5',                            //加密方式
            'service_version'      => '1.0',                            //接口版本号 默认1.0
            'input_charset'        => 'UTF-8',                         //系统编码  'GBK'
            'sign_key_index'       => '1',                              //密钥序号
            //业务可选参数
            'attach'               => $attach,            //附加数据 原样返回  默认为空
            'product_fee'          => '',                 //商品费用
            'transport_fee'        => '0',                //物流费用
            'time_start'           => date("YmdHis"),     //订单生成时间   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;
    /* 清空购物车 */
        require_once DEDEINC.'/shopcar.class.php';
        $cart     = new MemberShops();
        $cart->clearItem();
        $cart->MakeOrders();
        return $button;
    }
    /**
    * 响应操作
    */
    function respond()
    {
        /* 引入配置文件 */
        $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)) {
            //检查支付金额是否相符
            $row = $this->dsql->GetOne("SELECT * FROM dede_shops_orders WHERE oid = '{$order_sn}'");
            if ($row['priceCount'] != $_GET['total_fee'])
            {
                return $msg = "支付失败,支付金额与商品总价不相符!";
            }
            $this->mid = $row['userid'];
          /* 检查数字签名是否正确 */
        ksort($_GET);
        reset($_GET);
       $sign = '';
        foreach ($_GET AS $key => $val)
        {
            if("" != $val && "sign" != $key && $key != 'code') {
                $sign  .= "$key=$val&";
            }
        }
           $sign .= "key=".$payment['tenpay_key'];
  if(strtolower(md5($sign))==strtolower($_GET['sign']))
{
            if($trade_state==0)
            {     
                     /* 改变订单状态 */
               if($this->success_db($out_trade_no)) 
               return $msg = "支付成功!
返回主页 会员中心";
               else  return $msg = "支付失败!
返回主页 会员中心";
            }  
}
else{
   //return $msg = "支付失败!
返回主页 会员中心";
  }
   }
    /*处理物品交易*/
    function success_db($order_sn)
    {
        $time=time();
        $mid=$this->mid;
        //获取订单信息,检查订单的有效性
        $row = $this->dsql->GetOne("SELECT state,priceCount FROM dede_shops_orders WHERE oid='$order_sn' ");
        if($row['state'] > 0)
        {
            return TRUE;
        } 
        /* 改变订单状态_支付成功 */
        $sql = "UPDATE `dede_shops_orders` SET `state`='1' WHERE `oid`='$order_sn' AND `userid`='".$this->mid."'";
        if($this->dsql->ExecuteNoneQuery($sql))
        {
            $this->log_result("verify_success,订单号:".$order_sn); //将验证结果存入文件
            return TRUE;
        } else {
            $this->log_result ("verify_failed,订单号:".$order_sn);//将验证结果存入文件
            return FALSE;
        }
    }
    function  log_result($word) {
        global $cfg_cmspath;
        $fp = fopen(dirname(__FILE__)."/../../data/payment/log.txt","a");
        flock($fp, LOCK_EX) ;
        fwrite($fp,$word.",执行日期:".strftime("%Y-%m-%d %H:%I:%S",time())."\r\n");
        flock($fp, LOCK_UN);
        fclose($fp);
    }
}
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

インペリアル cms リソース ネットワーク テンプレートはどこにありますか? インペリアル cms リソース ネットワーク テンプレートはどこにありますか? Apr 17, 2024 am 10:00 AM

Empire CMS テンプレートのダウンロード場所: 公式テンプレートのダウンロード: https://www.phome.net/template/ サードパーティのテンプレート Web サイト: https://www.dedecms.com/diy/https://www.0978.com。 cn /https://www.jiaocheng.com/インストール方法: テンプレートをダウンロード テンプレートを解凍 テンプレートをアップロード テンプレートを選択

dedecms でできる Web サイトは何ですか? dedecms でできる Web サイトは何ですか? Apr 16, 2024 pm 12:24 PM

Dedecms は、ニュース Web サイト、ブログ、電子商取引 Web サイト、フォーラムおよびコミュニティ Web サイト、教育 Web サイト、ポータル、その他のタイプの Web サイト (企業 Web サイト、個人 Web サイトなど) を含む、さまざまなタイプの Web サイトの作成に使用できるオープン ソース CMS です。ウェブサイト、フォトアルバムウェブサイト、ビデオ共有ウェブサイト)

dedecms がテンプレート置換を実装する方法 dedecms がテンプレート置換を実装する方法 Apr 16, 2024 pm 12:12 PM

テンプレートの置換は、次の手順で Dedecms に実装できます: global.cfg ファイルを変更し、必要な言語パックを設定します。 taglib.inc.php フック ファイルを変更し、言語サフィックス テンプレート ファイルのサポートを追加します。言語サフィックスを含む新しいテンプレート ファイルを作成し、必要な内容を変更します。 Dececms キャッシュをクリアします。

dedecmの使い方 dedecmの使い方 Apr 16, 2024 pm 12:15 PM

Dedecms は、コンテンツ管理、テンプレート システム、セキュリティ保護を提供するオープン ソースの中国製 CMS システムです。具体的な使用方法には次の手順が含まれます。 1. Dedecms をインストールします。 2. データベースを構成します。 3. 管理インターフェイスにログインします。 4. コンテンツを作成します。 5. テンプレートを設定します。 6. ユーザーを管理します。 7. システムを保守します。

ローカルビデオを dedecms にアップロードする方法 ローカルビデオを dedecms にアップロードする方法 Apr 16, 2024 pm 12:39 PM

Dedecms を使用してローカルビデオをアップロードするにはどうすればよいですか? Dedecms がサポートする形式のビデオ ファイルを準備します。 Dedecms 管理バックエンドにログインし、新しいビデオ カテゴリを作成します。動画管理ページで動画ファイルをアップロードし、関連情報を入力して動画カテゴリを選択します。記事の編集中にビデオを埋め込むには、アップロードしたビデオのファイル名を入力し、サイズを調整します。

正確で信頼性の高い dedecms 変換ツールの評価レポート 正確で信頼性の高い dedecms 変換ツールの評価レポート Mar 12, 2024 pm 07:03 PM

正確で信頼性の高い dedecms 変換ツール評価レポート インターネット時代の急速な発展に伴い、Web サイト構築は多くの企業や個人にとって必要なツールの 1 つになりました。 Web サイト構築において、コンテンツ管理システム (CMS) を使用すると、Web サイトのコンテンツと機能をより便利かつ効率的に管理できます。中でもdedecmsは有名なCMSシステムとして様々なWebサイト構築プロジェクトで広く利用されています。ただし、dedecms Web サイトを他の形式に変換する必要がある場合があります。その場合、変換ツールを使用する必要があります。

dedecmsエンコード変換関数を学ぶ簡単な方法 dedecmsエンコード変換関数を学ぶ簡単な方法 Mar 14, 2024 pm 02:09 PM

dedecms エンコード変換関数の学習は複雑ではなく、簡単なコード例を使用すると、このスキルをすぐに習得できます。 dedecms では、通常、システムの正常な動作とデータの正確性を確保するために、中国語の文字化けや特殊文字などの問題に対処するためにエンコード変換機能が使用されます。ここでは、エンコードに関するさまざまなニーズに簡単に対応できる dedecms のエンコード変換機能の使い方を詳しく紹介します。 1.UTF-8 から GBK UTF-8 でエンコードされた文字列を G に変換する必要がある場合、dedecms で

dedecmsにはどのような抜け穴があるのでしょうか? dedecmsにはどのような抜け穴があるのでしょうか? Aug 03, 2023 pm 03:56 PM

DedeCMS はオープン ソースのコンテンツ管理システムであり、潜在的な脆弱性とセキュリティ リスクがいくつかあります: 1. SQL インジェクションの脆弱性。攻撃者は悪意のある SQL クエリ ステートメントを構築することで、不正な操作を実行したり、機密データを取得したりできます。2. ファイル アップロードの脆弱性。攻撃者は、次の内容を含むファイルをアップロードできます。悪意のあるコードをサーバーに送信して任意のコードを実行したり、サーバーの権限を取得したりする; 3. 機密情報の漏洩; 4. 認証されていない脆弱性の悪用。

See all articles