亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP接入支付寶接口失效流程詳解

 更新時間:2020年11月10日 15:22:50   作者:sangjinchao  
這篇文章主要介紹了PHP接入支付寶接口失效流程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

最近在寫個需要簡單支付的小項目,用到了支付寶接口,現(xiàn)已完成。把php接入支付寶的流程寫在這里供像我一樣的小白參考。

1.首先要有一個創(chuàng)建一個應用(選好自己想要的功能,關(guān)于支付的功能,貌似都需要簽約)


2.下載SDK&Dome網(wǎng)址

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.CBtzBF&treeId=203&articleId=105910&docType=1

 

我選擇的是MD5簽名方式,下面紅框內(nèi)就是做好的php Demo


  • lib文件很重要,是整個接口的核心類文件;
  • alipay.config.php是相關(guān)參數(shù)的配置文件
  • alipayapi.php 是支付寶接口入口文件
  • notify_url.php 是服務器異步通知頁面文件;
  • return_url.php 是頁面跳轉(zhuǎn)同步通知文件;

3.打開alipay.config.php


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

 
 
通過這個例子,我們就能靈活運用了 開發(fā)文檔: 

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

嵌入thinkphp3.2.3 我保留了


重新命名為 


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

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


Alipay.class.php 有改動

?php
namespace Extend\Alipay;
class Alipay {
  public function pay($alipay_config,$args){
    /**************************請求參數(shù)**************************/
    //支付類型
  $payment_type = "1";
  //必填,不能修改
  //服務器異步通知頁面路徑
  $notify_url = $args['notify_url'];
  //需http://格式的完整路徑,不能加?id=123這類自定義參數(shù)
  //頁面跳轉(zhuǎn)同步通知頁面路徑
  $return_url = $args['return_url'];
  //需http://格式的完整路徑,不能加?id=123這類自定義參數(shù),不能寫成http://localhost/
    //商戶訂單號
  $out_trade_no = $args['out_trade_no'];
  //商戶網(wǎng)站訂單系統(tǒng)中唯一訂單號,必填
  //訂單名稱
  $subject = "測試";
  //必填
  //付款金額
  $total_fee = $args['total'];
  //必填
  //訂單描述
  $body = "test";
  //需以http://開頭的完整路徑,例如:http://www.商戶網(wǎng)址.com/myorder.html
  //防釣魚時間戳
  $anti_phishing_key = "";
  //若要使用請調(diào)用類文件submit中的query_timestamp函數(shù)
  //客戶端的IP地址
  $exter_invoke_ip = "";
  //非局域網(wǎng)的外網(wǎng)IP地址,如:221.0.0.1
  /************************************************************/
  //構(gòu)造要請求的參數(shù)數(shù)組,無需改動
  $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配置文件里配置參數(shù)


然后新建控制器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);
  }
  // 同步跳轉(zhuǎn)
  public function returnurl(){
    $alipay_config = C('alipay');
    //計算得出通知驗證結(jié)果
    $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'];
      //交易狀態(tài)
      $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 {
      //驗證失敗
      //如要調(diào)試,請看alipay_notify.php頁面的verifyReturn函數(shù)
      echo "驗證失敗";
    }
  }
  // 異步跳轉(zhuǎn)
  public function notifyurl(){
    $alipay_config = C('alipay');
    //計算得出通知驗證結(jié)果
    $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'];
      //交易狀態(tài)
      $trade_status = $_POST['trade_status'];
      if($_POST['trade_status'] == 'TRADE_FINISHED'||$_POST['trade_status'] == 'TRADE_SUCCESS') {
       //交易成功
      }
      echo "success";   //請不要修改或刪除
      
    }
    else {
      //驗證失敗
      echo "fail";
      //調(diào)試用,寫文本函數(shù)記錄程序運行情況是否正常
      //logResult("這里寫入想要調(diào)試的代碼變量值,或其他運行的結(jié)果記錄");
    }
  }
}

然后


這樣就成功完成簡單的支付功能了

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • php下載遠程大文件(獲取遠程文件大小)的實例

    php下載遠程大文件(獲取遠程文件大小)的實例

    下面小編就為大家?guī)硪黄猵hp下載遠程大文件(獲取遠程文件大小)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • php同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼

    php同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄猵hp同時使用session和cookie來保存用戶登錄信息的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • PHPUnit安裝及使用示例

    PHPUnit安裝及使用示例

    PHPUnit是一個用PHP編程語言開發(fā)的開源軟件,是一個單元測試框架。PHPUnit由Sebastian Bergmann創(chuàng)建,源于Kent Beck的SUnit,是xUnit家族的框架之一。本文將介紹PHPUnit的安裝方法以及一則使用示例。
    2014-10-10
  • php批量刪除操作代碼分享

    php批量刪除操作代碼分享

    本文給大家分享的是使用php實現(xiàn)批量刪除MySQL數(shù)據(jù)庫內(nèi)的數(shù)據(jù),非常的簡單,有需要的小伙伴可以參考下
    2017-02-02
  • laravel Validator ajax返回錯誤信息的方法

    laravel Validator ajax返回錯誤信息的方法

    今天小編就為大家分享一篇laravel Validator ajax返回錯誤信息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Laravel框架生命周期與原理分析

    Laravel框架生命周期與原理分析

    這篇文章主要介紹了Laravel框架生命周期與原理,結(jié)合實例形式總結(jié)分析了Laravel框架針對用戶請求響應的完整運行周期、流程、原理,需要的朋友可以參考下
    2018-06-06
  • ThinkPHP3.2.1圖片驗證碼實現(xiàn)方法

    ThinkPHP3.2.1圖片驗證碼實現(xiàn)方法

    這篇文章主要介紹了ThinkPHP3.2.1圖片驗證碼實現(xiàn)方法,結(jié)合實例形式分析了thinkPHP3.2.1生成圖片驗證碼過程中遇到的問題及相應的解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • Laravel實現(xiàn)構(gòu)造函數(shù)自動依賴注入的方法

    Laravel實現(xiàn)構(gòu)造函數(shù)自動依賴注入的方法

    這篇文章主要介紹了Laravel實現(xiàn)構(gòu)造函數(shù)自動依賴注入的方法,涉及Laravel構(gòu)造函數(shù)自動初始化的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • php jsonp單引號轉(zhuǎn)義

    php jsonp單引號轉(zhuǎn)義

    JSONP(JSON with Padding)是一個非官方的協(xié)議,他的實現(xiàn)方式大致就是:讓客戶端決定要回調(diào)的Javascript函數(shù)名,在第三方服務端將 JSON 數(shù)據(jù)拼裝到回調(diào)函數(shù)名中,返回的就是參數(shù)為JSON數(shù)據(jù)的函數(shù)調(diào)用腳本,瀏覽器加載腳本并執(zhí)行達到獲取第三方數(shù)據(jù)的目的。
    2014-11-11
  • thinkPHP5.0框架簡單配置作用域的方法

    thinkPHP5.0框架簡單配置作用域的方法

    這篇文章主要介紹了thinkPHP5.0框架簡單配置作用域的方法,簡單分析了thinkPHP5.0作用域的功能與配置技巧,需要的朋友可以參考下
    2017-03-03

最新評論