中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在PHP項目中接入支付寶接口失效如何解決

發布時間:2020-12-14 15:27:06 來源:億速云 閱讀:305 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關在PHP項目中接入支付寶接口失效如何解決,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1.首先要有一個創建一個應用

2.下載SDK&Dome

選擇的是MD5簽名方式,下面紅框內就是做好的php Demo

在PHP項目中接入支付寶接口失效如何解決

  • lib文件很重要,是整個接口的核心類文件;

  • alipay.config.php是相關參數的配置文件

  • alipayapi.php 是支付寶接口入口文件

  • notify_url.php 是服務器異步通知頁面文件;

  • return_url.php 是頁面跳轉同步通知文件;

3.打開alipay.config.php

在PHP項目中接入支付寶接口失效如何解決

4.配置完成后這個小例子就能直接訪問了

 在PHP項目中接入支付寶接口失效如何解決
在PHP項目中接入支付寶接口失效如何解決 
通過這個例子,我們就能靈活運用了 開發文檔: 

https://doc.open.alipay.com/docs/doc.htm?treeId=203&articleId=105288&docType=1

嵌入thinkphp3.2.3 我保留了

在PHP項目中接入支付寶接口失效如何解決

重新命名為 

在PHP項目中接入支付寶接口失效如何解決

分別給這五個文件加上命名空間

在PHP項目中接入支付寶接口失效如何解決

這四個文件的命名空間改為

在PHP項目中接入支付寶接口失效如何解決

Alipay.class.php 有改動

?php
namespace Extend\Alipay;
class Alipay {
  public function pay($alipay_config,$args){
    /**************************請求參數**************************/
    //支付類型
  $payment_type = "1";
  //必填,不能修改
  //服務器異步通知頁面路徑
  $notify_url = $args['notify_url'];
  //需http://格式的完整路徑,不能加?id=123這類自定義參數
  //頁面跳轉同步通知頁面路徑
  $return_url = $args['return_url'];
  //需http://格式的完整路徑,不能加?id=123這類自定義參數,不能寫成http://localhost/
    //商戶訂單號
  $out_trade_no = $args['out_trade_no'];
  //商戶網站訂單系統中唯一訂單號,必填
  //訂單名稱
  $subject = "測試";
  //必填
  //付款金額
  $total_fee = $args['total'];
  //必填
  //訂單描述
  $body = "test";
  //需以http://開頭的完整路徑,例如:http://www.商戶網址.com/myorder.html
  //防釣魚時間戳
  $anti_phishing_key = "";
  //若要使用請調用類文件submit中的query_timestamp函數
  //客戶端的IP地址
  $exter_invoke_ip = "";
  //非局域網的外網IP地址,如:221.0.0.1
  /************************************************************/
  //構造要請求的參數數組,無需改動
  $parameter = array(
    "service" => "create_direct_pay_by_user",
    "partner" => trim($alipay_config['partner']),
    "seller_id" => trim($alipay_config['seller_id']),
    "payment_type" => $payment_type,
    "notify_url"  => $notify_url,
    "return_url"  => $return_url,
    "out_trade_no" => $out_trade_no,
    "subject"    => $subject,
    "total_fee"   => $total_fee,
    "body" => $body,
    "show_url"   => $show_url,
    "anti_phishing_key"   => $anti_phishing_key,
    "exter_invoke_ip"    => $exter_invoke_ip,
    "_input_charset"    => trim(strtolower($alipay_config['input_charset']))
  );
  //建立請求
  $alipaySubmit = new lib\AlipaySubmit($alipay_config);
    $html_text = $alipaySubmit->buildRequestForm($parameter,"get", "確認");
    echo $html_text;
  }
}

在config.php配置文件里配置參數

在PHP項目中接入支付寶接口失效如何解決

然后新建控制器TextController.class.php

<?php
namespace Home\Controller;
use Think\Controller;
use \Extend\Alipay as Alipays;
class TextController extends Controller {
  public function index(){
    $this->display();
  }
  public function dobuy(){
    $out_trade_no = date('YmdHis');
    $baseurl = 'http://'.$_SERVER['HTTP_HOST'];
    $args = array(
      'out_trade_no'=>$out_trade_no,
      'notify_url'=> $baseurl.'/index.php/Home/Text/notifyurl.html',
      'return_url'=> $baseurl.'/index.php/Home/Text/returnurl.html',
      'total'=> $_POST['WIDtotal_fee'],
      );
    $s = new Alipays\Alipay();
    $s->pay(C('alipay'),$args);
  }
  // 同步跳轉
  public function returnurl(){
    $alipay_config = C('alipay');
    //計算得出通知驗證結果
    $alipayNotify = new Alipays\lib\AlipayNotify($alipay_config);
    $verify_result = $alipayNotify->verifyReturn();
    if($verify_result) {//驗證成功
      //商戶訂單號
      $out_trade_no = $_GET['out_trade_no'];
      //支付寶交易號
      $trade_no = $_GET['trade_no'];
      //交易狀態
      $trade_status = $_GET['trade_status'];
      if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
        //交易成功        
      }else {
       echo "trade_status=".$_GET['trade_status'];
      }  
      echo "驗證成功<br />";
      }else {
      //驗證失敗
      //如要調試,請看alipay_notify.php頁面的verifyReturn函數
      echo "驗證失敗";
    }
  }
  // 異步跳轉
  public function notifyurl(){
    $alipay_config = C('alipay');
    //計算得出通知驗證結果
    $alipayNotify = new Alipays\AlipayNotify($alipay_config);
    $verify_result = $alipayNotify->verifyNotify();
    if($verify_result) {//驗證成功
      $out_trade_no = $_POST['out_trade_no'];
      //支付寶交易號
      $trade_no = $_POST['trade_no'];
      //交易狀態
      $trade_status = $_POST['trade_status'];
      if($_POST['trade_status'] == 'TRADE_FINISHED'||$_POST['trade_status'] == 'TRADE_SUCCESS') {
       //交易成功
      }
      echo "success";   //請不要修改或刪除
      
    }
    else {
      //驗證失敗
      echo "fail";
      //調試用,寫文本函數記錄程序運行情況是否正常
      //logResult("這里寫入想要調試的代碼變量值,或其他運行的結果記錄");
    }
  }
}

上述就是小編為大家分享的在PHP項目中接入支付寶接口失效如何解決了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰顺县| 娄底市| 德清县| 延长县| 昭苏县| 青神县| 峨眉山市| 铜梁县| 锡林浩特市| 恩施市| 农安县| 盘山县| 忻州市| 崇义县| 蒲城县| 朝阳县| 恩平市| 迭部县| 突泉县| 大名县| 丹江口市| 两当县| 扎鲁特旗| 梅河口市| 曲阜市| 黔东| 峨眉山市| 钦州市| 会理县| 柏乡县| 涿鹿县| 综艺| 万州区| 民权县| 新宾| 新野县| 长武县| 新巴尔虎左旗| 神池县| 夏邑县| 务川|