日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

laravel支付宝sdk接入

發布時間:2025/3/11 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel支付宝sdk接入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自己學習使的 僅供參考

一、打開螞蟻金服開放平臺 找到研發服務->沙箱應用
設置沙箱應用保證可以使用

二、找到sdkdemo下載放到本地環境并改名為alipay配置里面的config 注釋有詳細的講解仔細看
三、(這里是我的習慣)放到laravel的app下
四、去config下面新建一個alipay.php將本地修改好的config放到中間

五、復制alipay/pagepay里面的pagepay.php代碼到自己的支付方法里面需要修改(發生錯誤的順序沒分先后)
1、出現一個AopCline的一個each的錯誤(這個一般是laravel5.以上才會發生)
修改為

foreach ($para_temp as $key=>$val) {if (false === $this->checkEmpty($val)) {//$val = $this->characet($val, $this->postCharset);$val = str_replace("'","&apos;",$val);//$val = str_replace("\"","&quot;",$val);$sHtml.= "<input type='hidden' name='".$key."' value='".$val."'/>";}}

2.出現一個encrypt或者decrypt沖突的錯誤(因為laravel自帶encrypt和decrypt方法)修改alipay/aop/AopEncrypt.php的方法名即可 如:

*** 加密方法* @param string $str* @return string*/function alipay_encrypt($str,$screct_key){//AES, 128 模式加密數據 CBC$screct_key = base64_decode($screct_key);$str = trim($str);$str = addPKCS7Padding($str);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);return base64_encode($encrypt_str); }/*** 解密方法* @param string $str* @return string*/function alipay_decrypt($str,$screct_key){//AES, 128 模式加密數據 CBC$str = base64_decode($str);$screct_key = base64_decode($screct_key);$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_CBC),1);$encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_CBC);$encrypt_str = trim($encrypt_str);$encrypt_str = stripPKSC7Padding($encrypt_str);return $encrypt_str;}

3.會出現一個AlipayTradePagePayContentBuilder()錯誤 找到這個位置前面加個\

到這里基本就結束了 附上自己測試代碼

//支付方法public function pay($order_id){require_once app_path("Packages/alipay/pagepay/service/AlipayTradeService.php");require_once app_path("Packages/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php");$config = config("alipay");//商戶訂單號,商戶網站訂單系統中唯一訂單號,必填$out_trade_no = date('YmdHis').rand(50,200).Str::random(10);//訂單名稱,必填$subject = trim("go團隊測試");//付款金額,必填$total_amount = rand(10,100);//商品描述,可空$body = "";//構造參數$payRequestBuilder = new \AlipayTradePagePayContentBuilder();$payRequestBuilder->setBody($body);$payRequestBuilder->setSubject($subject);$payRequestBuilder->setTotalAmount($total_amount);$payRequestBuilder->setOutTradeNo($out_trade_no);$aop = new \AlipayTradeService($config);/*** pagePay 電腦網站支付請求* @param $builder 業務參數,使用buildmodel中的對象生成。* @param $return_url 同步跳轉地址,公網可以訪問* @param $notify_url 異步通知地址,公網可以訪問* @return $response 支付寶返回的信息*/$response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);//輸出表單var_dump($response);}

4、同步跳轉

//同步跳轉public function success(){//引入配置文件$config = config('alipay');//引入ALipayTradeService文件require_once app_path("Packages/alipay/pagepay/service/AlipayTradeService.php");//接到支付寶同步跳轉所返回的所有值 都將驗簽使用$arr = $_GET;//實例化AlipayTradeService 前面加個\ 傳配置文件過去$alipaySevice = new \AlipayTradeService($config);//調用驗簽方法 這里特別說明一下 如果驗簽失敗。請去AlipayTradeService文件中找到check方法做一下修改$ischeck = $alipaySevice->check($arr);//判斷驗簽是否成功if($ischeck){//成功跳轉到訂單成功頁面 用于提示用戶return view("order.success");}else{//驗簽失敗echo "fail";}}

總結

以上是生活随笔為你收集整理的laravel支付宝sdk接入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。