laravel 對接支付寶

2021-09-11 05:35:08 字數 3143 閱讀 3460

omnipay-alipay

這個就不說了, 不明白如何下手的夥伴讓運營去和支付寶客服聯絡吧

將以下**新增到 composer.json

}
執行composer命令更新依賴

$ curl -s  | php

$ php composer.phar update

該庫提供了 6 種不同的介面,各種介面有不同的配置和用法,我用過alipay_express 和 alipay_wapexpress,下面會有這兩種支付的步驟。

支付 控制器中:

use omnipay\omnipay;

//呼叫支付閘道器, 這一步其實就是配置引數,可以寫成通用函式

$gateway = omnipay::create('alipay_express'); //建立閘道器類

$gateway->setpartner('8888666622221111'); //合作者id

$gateway->setkey('your**key**here'); //支付key

$gateway->setselleremail('[email protected]'); 收款賬戶email

$gateway->setreturnurl(''); //返回url, 使用者支付後會跳轉到這個位址, 可以定義支付成功或者支付失敗等頁面返回增加使用者體驗

$gateway->setnotifyurl(''); //通知url,每次支付完成後, 支付寶伺服器會向這個位址發請求,返回支付狀態

//設定訂單

$options = [

'out_trade_no' => date('ymdhis') . mt_rand(1000,9999), //你自己**的唯一訂單號

'subject' => 'test', //訂單標題

'total_fee' => '0.01', //訂單**

//這裡也可以帶上其他引數,支付完之後支付寶會返回該引數和對應的值,不過設定了之後後面處理支付狀態需要多一步操作。我一般會設定'paytype' => 'alipay',

];

//跳轉支付

$response = $gateway->purchase($options)->send();

$response->redirect();

處理支付狀態

這個可以寫在支付是指定的returnurl或者notifyurl對應到控制器裡面

use omnipay\omnipay;

$gateway = omnipay::create('alipay_express');

$gateway->setpartner('8888666622221111');

$gateway->setkey('your**key**here');

$gateway->setselleremail('[email protected]');

$options = [ 'request_params' => $_request, ]; //這條語句前提是你在前面支付的時候沒有帶其他到引數,如果帶了, 需要將其他引數unset, 比如我一般會帶上乙個&paytype=alipay用來標識是支付寶支付, 所以我就需要在這條語句前先執行unset($_request['paytype']);

if ( $response->issuccessful() && $response->istradestatusok() ) else

測試支付 控制器中:
//和上面基本沒什麼差別 , 差別就是需要帶上你的伺服器使用openssl生成的rsa私鑰和支付寶的公鑰, 

//另外在此之前需要先上傳你的rsa公鑰到支付寶,[上傳rsa公鑰](

use omnipay\omnipay;

//呼叫支付閘道器, 這一步其實就是配置引數,可以寫成通用函式

$gateway = omnipay::create('alipay_express');

$gateway->setpartner('8888666622221111'); //合作者id

$gateway->setkey('your**key**here'); //支付key

$gateway->setselleremail('[email protected]'); 收款賬戶email

// private key : [rsa私鑰及公鑰生成](

//alipay public key : 支付寶公鑰,

//找到合作夥伴金鑰管理->檢視支付寶公鑰。

//**注:php和.net使用demo中已有的alipay_public_key.pem金鑰檔案。**

$gateway->setprivatekey('這裡是一大串rsa鑰匙');

$gateway->setalipaypublickey('這裡是一大串支付寶的公鑰');

$gateway->setreturnurl(''); //返回url, 使用者支付後會跳轉到這個位址, 可以定義支付成功或者支付失敗等頁面返回增加使用者體驗

$gateway->setnotifyurl(''); //通知url,每次支付完成後, 支付寶伺服器會向這個位址發請求,返回支付狀態

//設定訂單

$options = [

'out_trade_no' => date('ymdhis') . mt_rand(1000,9999), //你自己**的唯一訂單號

'subject' => 'test', //訂單標題

'total_fee' => '0.01', //訂單**

];

//跳轉支付

$response = $gateway->purchase($options)->send();

$response->redirect();

處理支付狀態

和alipay_express的沒有區別

測試只用手機測試過, 跳轉到支付寶手機網頁支付的頁面。

其他php框架或者原生php的處理是類似的,希望此篇文章對你以後的開發有幫助。

posted @

2019-02-21 19:23

棲息地 閱讀(

...)

編輯收藏

golang對接支付寶支付

沙箱環境 金鑰 文件已經很詳細了,附鏈結 使用的第三方庫 簡單實現 網頁支付 應用公鑰 alipublickey 應用私鑰 privatekey func init 手機客戶端支付 func wapalipay binary,url.marshalbinary fmt.println string ...

支付寶香港對接

支付寶香港api對接,非常的簡單,由於文件是跟對接人溝通的,我就不發出來了,先看看效果。圖一支付成功。圖二支付失敗,原因15分鐘不掃碼就過期。重新在生成merchant reference 唯一id 上 如下 internal class hash256 else return builder.to...

Flutter對接支付寶介面

flutter支付寶介面的對接教程 支付寶開發平台應用申請 flutter呼叫tobias tobias的使用過程還是比較簡單的,只需要我們提供個乙個支付資訊的字串,其他的操作都由tobias完成。一般來說支付資訊都是由伺服器端提供的,如上述 所示就是從伺服器端取得的支付資訊。現在網上的一些教程一般...