laravel框架 APP 支付宝支付
生活随笔
收集整理的這篇文章主要介紹了
laravel框架 APP 支付宝支付
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先去 支付寶 下載sdk
我下載的SDK放在第三方vendor中如下:
放入地址以后給alipay權限:
sudo chmod -R 777 alipay
放入vendor以后在composer.json 加入以下內容:
在composer加入classmap以后執行如下代碼
composer dump-autoload
完成以后在app 同級目錄 config 下面創建配置文件我的是alipay.php
配置文件中的內容如下:
(自己配置回調地址路由)代碼如下:
$API = config('config.alipayApp'); // 調用支付寶配置文件$Client = new \AopClient(); // 實例化類$Client->alipayrsaPublicKey = $API['alipay_public_key'];$parm = $_POST;Redis::setex('alipayRedis',3600,serialize($parm));// 驗證簽名$flag = $Client->rsaCheckV1($parm,NULL,"RSA2");if($flag){if ($parm['trade_status'] == 'TRADE_SUCCESS' || $parm['trade_status'] == 'TRADE_FINISHED') {// 此處為自己業務邏緝處理DB::table('bk_goods_info')->insert(['order_no'=>$parm['out_trade_no'], // 交易訂單號'pay_platform'=>1, // 支付類型 1:支付寶 2:微信'platform_status'=>'成功' // 是否支付]);GoodsOrderModel::where(['order_no'=>$parm['out_trade_no']])->update(['status'=>20, // 訂單狀態:0-已取消,10-未付款,20-已付款,40-已發貨,50-交易成功,60-交易關閉'payment_time'=>time(), // 付款時間'postage'=>0, // 運費,單位是元]);echo 'success';}}支付接口代碼:
public function alipay(){ // $orderId = request()->input('orderId'); // $subject = request()->input('subject'); // $expire = config('config.alipayApp.timeout_express'); // $body = request()->input('body'); // $total_amount = request()->input('total_amount'); // "{\"body\":\"{$body}\"," //支付商品描述 // . "\"subject\":\"{$subject}\"," //支付商品的標題 // . "\"out_trade_no\":\"{$orderId}\"," //商戶網站唯一訂單號 // . "\"timeout_express\":\"{$expire}m\"," //該筆訂單允許的最晚付款時間,逾期將關閉交易。取值范圍:1m~15d。m-分鐘,h-小時,d-天,1c-當天(1c-當天的情況下,無論交易何時創建,都在0點關閉)。 該參數數值不接受小數點, 如 1.5h,可轉換為 90m。 // //注:若為空,則默認為15d。 // . "\"total_amount\":\"{$total_amount}\"," //訂單總金額,單位為元,精確到小數點后兩位,取值范圍[0.01,100000000] // . "\"product_code\":\"QUICK_MSECURITY_PAY\"" // . "}"try{$aop = new \AopClient();$aop->gatewayUrl = config('config.alipayApp.gatewayUrl'); // 支付寶網關$aop->appId = config('config.alipayApp.app_id'); // app_id$aop->rsaPrivateKey = config('config.alipayApp.merchant_private_key'); // 私鑰$aop->alipayrsaPublicKey = config('config.alipayApp.alipay_public_key'); // 公鑰$aop->format= 'json';//固定$aop->charset = config('config.alipayApp.charset'); // 編碼$aop->signType = config('config.alipayApp.sign_type'); // 簽名類型$request = new \AlipayTradeAppPayRequest();//SDK已經封裝掉了公共參數,這里只需要傳入業務參數$bizcontent = "{\"body\":\"我是測試數據\",". "\"subject\": \"App支付測試\",". "\"out_trade_no\": \"" . time() . "123456\",". "\"timeout_express\": \"30m\",". "\"total_amount\": \"0.01\",". "\"product_code\":\"QUICK_MSECURITY_PAY\"". "}";$request->setNotifyUrl(config('config.alipayApp.notify_url'));$request->setBizContent($bizcontent);//這里和普通的接口調用不同,使用的是sdkExecute$response = $aop->sdkExecute($request);//htmlspecialchars是為了輸出到頁面時防止被瀏覽器將關鍵參數html轉義,實際打印到日志以及http傳輸不會有這個問題 // return htmlspecialchars($response);//就是orderString 可以直接給客戶端請求,無需再做處理。return $response;}catch(Exception $e){//失敗返回falsereturn false;}laravel框架支付功能就完成啦。。。
(純屬愛好就當作日記 把遇到的問題記錄一下 有問題請留言)
總結
以上是生活随笔為你收集整理的laravel框架 APP 支付宝支付的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 04-移动适配
- 下一篇: 小学教师资格证计算机知识,小学老师教师资