thinkphp3 2接入支付寶支付介面(PC端)

2022-09-08 05:39:15 字數 2696 閱讀 1220

提取密碼:aryp

整個介面核心類檔案

alipay.config.php是相關引數的配置檔案

alipayapi.php 是支付寶介面入口檔案

notify_url.php 是伺服器非同步通知頁面檔案;

return_url.php 是頁面跳轉同步通知檔案;

第一步:

把界麵包放到專案中  在thinkphp的框架檔案下,找到library進入,再進入vendor,在vendor資料夾下,新建資料夾alipay,把支付寶作為第三方類庫引入。然後,複製支付寶介面檔案包中上面4個檔案。一共4個檔案放入專案alipay中

開啟submit.phpnotify.php把以下兩段**注釋掉;

require_once("alipay_core.function.php");

require_once("alipay_md5.function.php");

因為在專案中會通過vendor來引入4個核心檔案,所以,這裡不再需要匯入。

第二步:

'alipay_config'=>array(

'partner'        => '*****',//這裡是你在成功申請支付寶介面後獲取到的pid;

//收款支付寶賬號,一般情況下收款賬號就是簽約賬號

'seller_id'    => '*****', 

//安全檢驗碼,以數字和字母組成的32位字元

'key'            => '***',//這裡是你在成功申請支付寶介面後獲取到的key

//簽名方式 不需修改

//這裡是非同步通知頁面url,提交到專案的pay控制器的notifyurl方法;

'notify_url'=>'',

//這裡是頁面跳轉通知url,提交到專案的pay控制器的returnurl方法;

'return_url'=>'',

'sign_type'    => strtoupper('md5'),

//字元編碼格式 目前支援 gbk 或 utf-8

'input_charset'=> strtolower('utf-8'),

//ca證書路徑位址,用於curl中ssl校驗

//請保證cacert.pem檔案在當前資料夾目錄中

'cacert'    => vendor_path.'alipay/cacert.pem',

//訪問模式,根據自己的伺服器是否支援ssl訪問,若支援請選擇https;若不支援請選擇http

// 支付型別 ,無需修改

'payment_type' => "1",

// 產品型別,無需修改

'service' => "create_direct_pay_by_user",

//↑↑↑↑↑↑↑↑↑↑請在這裡配置您的基本資訊↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

// 防釣魚時間戳  若要使用請呼叫類檔案submit中的query_timestamp函式

'anti_phishing_key' => "",

'exter_invoke_ip' => "",

),//以上配置項,是從界麵包中alipay.config.php 檔案中複製過來,進行配置;

'alipay' =>array(

//支付成功跳轉到的頁面,我這裡跳轉到專案的user控制器,myorder方法,並傳參payed(已支付列表)

'successpage'=>'/index.php/',

//支付失敗跳轉到的頁面,我這裡跳轉到專案的user控制器,myorder方法,並傳參unpay(未支付列表)

'errorpage'=>'/index.php/home/test',

),2、新建乙個paycontroller控制器**如下:

3、上面有函式呼叫checkorderstatus函式判斷訂單是否支付,把這個函式寫到了專案的common/functions.php

以上就是pc支付寶介面所有**,其他業務邏輯根據自己需求進行修改!

四、總結幾點

1、界麵包中的檔案複製到vendor後,要符合tp規範的命名規則,為的是呼叫方便,當然你要改成其他名稱也可以;

2、把執行支付操作(doalipay),處理非同步返回結果(notifyurl),處理跳轉返回結果(returnurl)三個支付介面的核心頁面寫到乙個payaction控制器中。

3、提交支付的頁面中,可以在提交之前先把一些引數要傳遞的內容先通過隱藏域的方法組合好,比如金額先計算好,訂單名稱,訂單描述等先用字串組合好。然後提交表單,這樣,在doalipay方法中只要直接構造傳遞引數,直接進行提交就行過了。

4、支付返回後的處理因為要在非同步和跳轉兩個方法中都要進行相應的判斷和處理,所以,把這些判斷和處理寫到乙個自定義函式中,這樣只要呼叫函式即可,使得**更加清晰明了。

5、notify_url和return_url兩種模式的返回url必須使用http://******x這樣的絕對路徑,因為裡是從支付寶平台返回到你的專案頁面。不能使用相對路徑。本地可以自己配置站點網域名稱

支付寶接入

三 將上面的資料夾拖入工程,並新增相應的依賴庫 進行編譯,會出現以下問題 1 unknown type name nsstring 或者 unknown type name nsdata 等不識別常見類的問題。這是因為缺少foundation類庫和uikit類庫,支付寶demo中之所以沒有出現此錯誤...

APP接入支付寶支付

1.把支付寶的.aar檔案匯入到應用工程的libs目錄下 2.在工程主專案的build.gradle中,新增下面的內容,將libs目錄作為依賴倉庫 dependencies資源匯入就完成了 然後在清單檔案新增如下許可權 android.permission.internet android.perm...

Android 接入支付寶

這裡忽略申請支付賬戶方面的問題。2 建立應用 3 生成公鑰 和 私鑰 這是生成的鏈結 生成的公鑰和私鑰,都需要去掉 begin public key 和 end public key 並用編輯器把它弄成一行。上傳公鑰,這個是重點!4 怎麼上傳公鑰 這個重點,不然後面會出現 ali64 錯誤!4.1 ...