thinkphp5.0整合支付寶支付,thinkphp5.0整合微信支付,行動app支付
thinkphp5.0整合支付寶行動支付代碼功能實作
app接入支付寶支付時,如果用戶手機沒有安裝支付寶客戶端,則會呼叫支付寶的行動支付h5頁。
如果安裝了支付寶支付,則會喚醒支付寶客戶端進(jìn)行支付,用戶提現(xiàn)最佳。
支付寶文檔地址:
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.Y4jDIe&treeId=59&articleId=103563&docType=1
??服務(wù)端進(jìn)行組合,最後傳回給客戶端一個處理後的字串。
產(chǎn)生的標(biāo)準(zhǔn)的字串有提供:
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'],//付款類型],//參數(shù)編碼字元集<br> );<br>????????//將post接收到的陣列所有元素,依照「參數(shù)=參數(shù)值」的模式以「&」字元拼接成字串。 <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??客戶端,建議在客戶端使用私鑰對應(yīng)的公鑰做一次驗簽,保證不是他人傳輸。 <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方法判斷是否是支付寶發(fā)來的非同步通知。 <br>????????{<br>????????????if($alipayNotify->getSignVeryfy???????????//-請依照您的業(yè)務(wù)邏輯來編寫程式(以下程式碼僅供參考)-<br>?????????????????????????$out_trade_no?=?$_POST['out_trade_no'];<br><br>????????????????????????號碼<br>????????????????$trade_no?=?$_POST['trade_no'];<br>?????????$trade_status?=?$_POST['trade_status'];<br><br>???????????//判斷該筆訂單是否已在商家網(wǎng)站中已處理過處理<br>???????????????????//如上所處理,並依訂單編號(out_trade_no)在商家網(wǎng)站的訂單中程序<br>????????????????????//若有使用,並未執(zhí)行商家的業(yè)務(wù)程序<br>??????//退款日期超過退款期限後(如三個月可退款),支付寶系統(tǒng)發(fā)送此交易狀態(tài)通知<br>????????????????????//請務(wù)必中使用的<br>????????????????}<br>?????????????????????????????????$order_info?=?Db::name("order")->where("order_sn='{$out_trade_no}'")- >find();<br>????????????????????if($order_info['status']?==?0){??//更新付款狀態(tài)及付款時間<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>我寫的就是一個標(biāo)準(zhǔn)的下訂單的流程,主要是<br>要能喚醒支付寶客戶端,喚醒支付寶是第一步,說明協(xié)議,帳號,密鑰方式都一致。 <br>第二步是要支付成功後接受支付寶的通知,更細(xì)自己服務(wù)端的資料庫。 <br>防止重複更新訂單和用戶資金帳戶。 <br>
程式碼我已經(jīng)貼上去了,把我整合好的原始碼包直接放到extend目錄即可,在controller裡面直接呼叫即可。
注意設(shè)定檔要寫對,尤其是公鑰和私鑰的產(chǎn)生方式,注意上傳到支付寶平臺中心。
技術(shù)交流群:495654168
Alipay.zip ( 140.02 KB 下載:24 次 )

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

《Go語言程式設(shè)計實例:Web開發(fā)中的程式碼範(fàn)例》隨著網(wǎng)路的快速發(fā)展,Web開發(fā)已成為各行業(yè)中不可或缺的一部分。作為一門功能強大且效能優(yōu)越的程式語言,Go語言在Web開發(fā)中越來越受到開發(fā)者們的青睞。本文將透過具體的程式碼範(fàn)例,介紹如何利用Go語言進(jìn)行Web開發(fā),讓讀者更能理解並運用Go語言來建立自己的Web應(yīng)用。 1.簡單的HTTP伺服器首先,讓我們從一個

華為雲(yún)端邊緣運算對接指南:Java程式碼範(fàn)例快速實現(xiàn)介面隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和邊緣運算的興起,越來越多的企業(yè)開始關(guān)注邊緣運算的應(yīng)用。華為雲(yún)端提供了邊緣運算服務(wù),為企業(yè)提供了高可靠的運算資源和便利的開發(fā)環(huán)境,使得邊緣運算應(yīng)用更容易實現(xiàn)。本文將介紹如何透過Java程式碼快速實現(xiàn)華為雲(yún)端邊緣運算的介面。首先,我們需要準(zhǔn)備好開發(fā)環(huán)境。確保你已經(jīng)安裝了Java開發(fā)工具包(

Java冒泡排序最簡單的程式碼範(fàn)例冒泡排序是一種常見的排序演算法,它的基本想法是透過相鄰元素的比較和交換來將待排序序列逐步調(diào)整為有序序列。以下是一個簡單的Java程式碼範(fàn)例,示範(fàn)如何實作冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

了解Python程式設(shè)計的入門程式碼範(fàn)例Python是一種簡單易學(xué),功能強大的程式語言。對於初學(xué)者來說,了解Python程式設(shè)計的入門級程式碼範(fàn)例是非常重要的。本文將為您提供一些具體的程式碼範(fàn)例,幫助您快速入門。列印HelloWorldprint("HelloWorld")這是Python中最簡單的程式碼範(fàn)例。 print()函數(shù)用於將指定的內(nèi)容輸出

如何使用PHP編寫庫存管理系統(tǒng)中的庫存分倉管理功能碼庫存管理是許多企業(yè)中不可或缺的一部分。對於擁有多個倉庫的企業(yè)來說,庫存分倉管理功能尤其重要。透過合理管理和追蹤庫存,企業(yè)可以實現(xiàn)不同倉庫之間的庫存調(diào)撥,優(yōu)化營運成本,改善協(xié)同效率。本文將介紹如何使用PHP編寫庫存分倉管理功能的程式碼,並為您提供相關(guān)的程式碼範(fàn)例。一、建立資料庫在開始編寫庫存分倉管理功能的程式碼之

PHP變數(shù)儲存程式運行期間的值,對於建立動態(tài)且互動的WEB應(yīng)用程式至關(guān)重要。本文將深入探討php變量,並透過10個真實的範(fàn)例展示它們的實際應(yīng)用。 1.儲存使用者輸入$username=$_POST["username"];$passWord=$_POST["password"];此範(fàn)例從表單提交中提取使用者名稱和密碼,並將其儲存在變數(shù)中以供進(jìn)一步處理。 2.設(shè)定配置值$database_host="localhost";$database_username="username";$database_pa

Java選擇排序法程式碼編寫指南及範(fàn)例選擇排序是一種簡單直觀的排序演算法,其想法是每次從未排序的元素中選擇最?。ɑ蜃畲螅┑脑剡M(jìn)行交換,直到所有元素排序完成。本文將提供選擇排序的程式碼編寫指南,並附上具體的Java範(fàn)例程式碼。演算法原理選擇排序的基本原理是將待排序數(shù)組分為已排序和未排序兩部分,每次從未排序部分選擇最小(或最大)的元素,將其放到已排序部分的末尾。重複上述

標(biāo)題:從入門到精通:Go語言中常用資料結(jié)構(gòu)的程式碼實作資料結(jié)構(gòu)在程式設(shè)計中起著至關(guān)重要的作用,它是程式設(shè)計的基礎(chǔ)。在Go語言中,有許多常用的資料結(jié)構(gòu),掌握這些資料結(jié)構(gòu)的實作方式對於成為優(yōu)秀的程式設(shè)計師至關(guān)重要。本文將介紹Go語言中常用的資料結(jié)構(gòu),並給出對應(yīng)的程式碼範(fàn)例,幫助讀者從入門到精通這些資料結(jié)構(gòu)。 1.數(shù)組(Array)數(shù)組是一種基本的資料結(jié)構(gòu),是一組相同類型
