本文由 BI8EJM 原創,轉載請注明出處!
第一步
下載 Alipay 的PHP SDK :https://docs.open.alipay.com/54/103419/
第二步
解壓下載都到的壓縮包:
解壓后得到的文件內容如圖
第三步、上傳得到的目錄中的 aop 文件夾到 thinkphp 6.0 的 extend 目錄,如下圖:
第四步、修改 AopClient.php 文件,加入命名空間 aop 具體修改如下圖
在第二行位置,也就是最開始的位置,加入代碼:
namespace aop;
第五步、修改 PC 支付文件 AlipayTradePagePayRequest.php 同樣是加入命名空間 namespace aop\request ,具體如下:
在第二行位置,也就是最開始的位置,加入代碼:
namespace aop\request;
第六步、使用PC支付接口,生成支付鏈接
PS:接口方法這不是統一定義、而是在購買控制器中直接定義的,如要統一可以創建公共控制器或其他方法統一。
1.在 確認訂單的控制器 ,我這里是 Buy 中引入支付方法。
use aop\AopClient; use aop\request\AlipayTradePagePayRequest;
2.創建私有方法 $alipay_config ,替換下面紅色的內容部分,為你的信息,具體信息在你的支付寶開發者平台獲取,地址:https://openhome.alipay.com/platform/appManage.htm#/apps
private $alipay_config = array( 'app_id' => '你的app_id', 'notify_url'=>"https://xxx.com/xxx/ 這是你的異步通知地址", 'merchant_private_key' => '你的私鑰', 'gatewayUrl' => "https://openapi.alipay.com/gateway.do", 'public_key' => "你的公鑰", );
3.配置、引入 aop
$aop = new AopClient(); $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $aop->appId = $this->alipay_config['appid']; $aop->method = 'alipayTradePagePay'; $aop->charset = 'utf-8'; $aop->signType = 'RSA2'; $aop->alipayrsaPublicKey = $this->alipay_config['public_key']; $aop->rsaPrivateKey = $this->alipay_config['private_key'];
4.生成 biz_content 內容,具體內容可根據自己需求增刪,具體文檔參考:https://docs.open.alipay.com/api_1/alipay.trade.page.pay/
參數解釋:
out_trade_no :訂單號,阿里要求是唯一的。
product_code :銷售產品碼,與支付寶簽約的產品碼名稱。注:目前僅支持 FAST_INSTANT_TRADE_PAY
total_amount :支付金額
subject :訂單名稱
timeout_express : 支付過期時間,訂單創建后多久過期,這里 設置 30m 意思是,訂單創建后 30 分鍾后過期,過期了這個就不能支付了,這里只是alipay這里不能支付,不要搞暈了。
$biz_content = json_encode([ 'out_trade_no'=> rand(11111111,99999999), 'product_code'=> 'FAST_INSTANT_TRADE_PAY', 'total_amount'=> 99.9, 'subject'=> 'BI8EJM Alipay 測試', 'timeout_express'=>'30m', ]);
5. 引入 PC 支付 並顯示 支付鏈接
$payRequest= new AlipayTradePagePayRequest(); $payRequest->setReturnUrl(url('index/index')); $payRequest->setNotifyUrl($this->alipay_config['notify_url']); $payRequest->setBizContent($biz_content); $response = $aop->sdkExecute($payRequest);
echo '<a href="'.'https://openapi.alipay.com/gateway.do?'.$response.'">
至此,支付鏈接生成就完畢了。
第七步、測試打開支付鏈接
點擊:立即支付 成功跳轉到支付頁面
第八步、異曲同工。
這里僅僅展示了 PC 的支付,說好的手機支付呢?手機支付一樣,你只需要在手機支付接口文件中,指定命名空間,然后引入手機支付方法即可,希望你能順利完成。