thinkphp5.0整合支付寶支付,thinkphp5.0整合微信支付,行動app支付
thinkphp5.0整合支付寶行動支付代碼功能實作
app接入支付寶支付時,如果用戶手機沒有安裝支付寶客戶端,則會呼叫支付寶的行動支付h5頁。
如果安裝了支付寶支付,則會喚醒支付寶客戶端進行支付,用戶提現最佳。
支付寶文檔地址:
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.Y4jDIe&treeId=59&articleId=103563&docType=1
🎟服務端進行組合,最後傳回給客戶端一個處理後的字串。
產生的標準的字串有提供:
partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject="A&body="測試測試測試檢測測試ify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&sign="lBBK%2F0w5LOajrMrr74EI30m dw% 2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZ2FuGkpG%2BwYQYI51%2BhA3YBbvZZ134KbvZ17 代碼部分:
//支付寶支付
function this->is_login();
require_once EXTEND_PATH.'Alipay/alipaycore.php';
$order_id = input("request.order_id"); if($order_id = = 0){<br> ajaxmsg('非法資料',0);<br> }<br> ")->find();<br> //建立請求<br> $out_trade_no = $order_info['order_sn'];<br> $ <br> $body = '訂單付款'; / /商品詳情<br> $alipay_config = Config::get('alipay_config');<br> //請求項, 'partner'=>$alipay_config['partner'],/ /合作者身分ID<br> 'seller_id'=>$alipay_config['seller_id'],<br> 'subject'=>'訂單支付',//商品名稱<br> 'body'=>$body,//商品詳情<br> ) $alipay_config['notify_url'],//伺服器非同步通知頁路徑<br> 'service'=>$ alipay_config['service'],//介面名稱<br> 'payment_type'=>$alipay_config['payment_type'],//付款類型],//參數編碼字元集<br> );<br> //將post接收到的陣列所有元素,依照「參數=參數值」的模式以「&」字元拼接成字串。 <br> $data = createLinkstring($parameter);<br><br> //列印待簽章字串。工程目錄下的log資料夾中的log.txt。 <br> logResult($data);<br><br> //將待簽章字串使用aSign($data, $alipay_config[ 'private_key']));<br><br> //將簽章所得到的sign及簽章型別sign_type拼接在待簽章字串後方。 <br> $data = $data.'&sign='.'"'.$rsa_sign.'"'.'&sign_type='.'"'.$alipay 客戶端,建議在客戶端使用私鑰對應的公鑰做一次驗簽,保證不是他人傳輸。 <br> //echo $data;<br> $list['form'] = $data;<br> <br> //支付寶支付通知<br> public function alipay_notify_url ()<br> {<br> $alipay_config = Config::get('alipay_config');
notify($alipay_config); if($alipayNotify->getResponse($_POST[ 'notify_id']))//判斷成功之後使用getResponse方法判斷是否是支付寶發來的非同步通知。 <br> {<br> if($alipayNotify->getSignVeryfy //-請依照您的業務邏輯來編寫程式(以下程式碼僅供參考)-<br> $out_trade_no = $_POST['out_trade_no'];<br><br> 號碼<br> $trade_no = $_POST['trade_no'];<br> $trade_status = $_POST['trade_status'];<br><br> //判斷該筆訂單是否已在商家網站中已處理過處理<br> //如上所處理,並依訂單編號(out_trade_no)在商家網站的訂單中程序<br> //若有使用,並未執行商家的業務程序<br> //退款日期超過退款期限後(如三個月可退款),支付寶系統發送此交易狀態通知<br> //請務必中使用的<br> }<br> $order_info = Db::name("order")->where("order_sn='{$out_trade_no}'")- >find();<br> if($order_info['status'] == 0){ //更新付款狀態及付款時間<br> ['id']}")->save(<br> array(<br> 'pay_ways'=>2,<br> "pay_sn"=>$trade_no,<br> 'pay_time'=>time(),<br> 'stauts'=>1<br> ));<br> $this->fenxiao_account($out_trade <br> }<br> echo "success"; //請不要修改或刪除<br> }<br> else //驗證簽名失敗<br> {<br> echo "sign fail";<br> }<br> }<br> else //驗證是否來自支付寶的通知失敗<br> {<br> echo "response fail";<br> }<br> } <br>我寫的就是一個標準的下訂單的流程,主要是<br>要能喚醒支付寶客戶端,喚醒支付寶是第一步,說明協議,帳號,密鑰方式都一致。 <br>第二步是要支付成功後接受支付寶的通知,更細自己服務端的資料庫。 <br>防止重複更新訂單和用戶資金帳戶。 <br>
程式碼我已經貼上去了,把我整合好的原始碼包直接放到extend目錄即可,在controller裡面直接呼叫即可。
注意設定檔要寫對,尤其是公鑰和私鑰的產生方式,注意上傳到支付寶平台中心。
技術交流群:495654168
Alipay.zip ( 140.02 KB 下載:24 次 )

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用