Golang實(shí)現(xiàn)支付寶沙箱支付的方法步驟
首先我使用的是 gin 作為我的后端框架,我們先設(shè)定好幾個(gè)接口。
func main() { r := gin.Default() r.GET("/pay", tools.WebPageAlipay) r.GET("/return", tools.AliPayNotify) r.Run(":8100") }
github.com/smartwalle/alipay 這個(gè)第三方庫來作為定義了很多支付寶接口,我們直接使用這個(gè)庫來繼續(xù)我們的開發(fā)。
首先初始化
var ( appID = "你的支付寶ID" privateKey = "你的支付寶私鑰" client, _ = alipay.New(appID, privateKey, false) ) func init() { client.LoadAliPayPublicKey("你的支付寶公鑰") }
將在支付寶開放平臺沙箱中申請的密鑰和公鑰填入對應(yīng)位置
使用 Web 掃碼支付接口
// WebPageAlipay 網(wǎng)頁掃碼支付 func WebPageAlipay(c *gin.Context) { ...... var p = alipay.TradePagePay{} p.ReturnURL = "http://127.0.0.1:8080/return" //訂單付款后跳轉(zhuǎn)的網(wǎng)址頁面 p.Subject = fmt.Sprintf("訂單號:%s", orderSn) //付款標(biāo)題 p.OutTradeNo = orderSn //商家訂單號 p.TotalAmount = price //價(jià)格 p.ProductCode = "FAST_INSTANT_TRADE_PAY" var url, err = client.TradePagePay(p) if err != nil { fmt.Println(err) } var payURL = url.String() //掃碼支付的網(wǎng)頁鏈接,返回前端后打開 }
在支付成功后,支付頁面會(huì)自動(dòng)跳轉(zhuǎn)到 p.ReturnURL 中設(shè)置的地址(我這里設(shè)置的前端地址,跳轉(zhuǎn)到前端地址后,前端向后端請求 /return ,完整獲取頁面的查詢參數(shù)并全部拼接到后端 /return 中),后端獲取查詢參數(shù)做簽名驗(yàn)證
// AliPayNotify 接受通知接口 func AliPayNotify(c *gin.Context) { //獲取url并轉(zhuǎn)成*URL x, _ := url.Parse(c.Request.URL.String()) //驗(yàn)證是否成功支付 ok, err := client.VerifySign(x.Query()) }
到此這篇關(guān)于Golang實(shí)現(xiàn)支付寶沙箱支付的方法步驟的文章就介紹到這了,更多相關(guān)Golang 支付寶沙箱支付內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go語言實(shí)現(xiàn)一個(gè)簡單生產(chǎn)者消費(fèi)者模型
本文主要介紹了Go語言實(shí)現(xiàn)一個(gè)簡單生產(chǎn)者消費(fèi)者模型,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12利用golang實(shí)現(xiàn)封裝trycatch異常處理實(shí)例代碼
Go語言追求簡潔優(yōu)雅,所以go語言不支持傳統(tǒng)的 try…catch…finally 這種異常,最近發(fā)現(xiàn)了不錯(cuò)的trycatch包,下面這篇文章主要跟大家分享了關(guān)于利用golang實(shí)現(xiàn)封裝trycatch異常處理的實(shí)例代碼,需要的朋友可以參考下。2017-07-07Go語言實(shí)戰(zhàn)之實(shí)現(xiàn)一個(gè)簡單分布式系統(tǒng)
如今很多云原生系統(tǒng)、分布式系統(tǒng),例如?Kubernetes,都是用?Go?語言寫的,這是因?yàn)?Go?語言天然支持異步編程。本篇文章將介紹如何用?Go?語言編寫一個(gè)簡單的分布式系統(tǒng),需要的小伙伴開業(yè)跟隨小編一起學(xué)習(xí)一下2022-10-10go語言實(shí)現(xiàn)同步操作項(xiàng)目示例
本文主要介紹了go語言實(shí)現(xiàn)同步操作項(xiàng)目示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05go panic時(shí)如何讓函數(shù)返回?cái)?shù)據(jù)?
今天小編就為大家分享一篇關(guān)于go panic時(shí)如何讓函數(shù)返回?cái)?shù)據(jù)?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04go的websocket實(shí)現(xiàn)原理與用法詳解
這篇文章主要介紹了go的websocket實(shí)現(xiàn)原理與用法,詳細(xì)分析了websocket的功能、原理及Go語言實(shí)現(xiàn)websocket的相關(guān)技巧,需要的朋友可以參考下2016-07-07Windows下CMD執(zhí)行Go出現(xiàn)中文亂碼的解決方法
本文主要介紹了Windows下CMD執(zhí)行Go出現(xiàn)中文亂碼的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02golang?cache帶索引超時(shí)緩存庫實(shí)戰(zhàn)示例
這篇文章主要為大家介紹了golang?cache帶索引超時(shí)緩存庫實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09