Golang实现支付宝沙箱支付的方法步骤

 更新时间:2023年04月19日 15:38:26   作者:落雪bin飞  
本文主要介绍了Golang实现支付宝沙箱支付的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

首先我使用的是 gin 作为我的后端框架,我们先设定好几个接口。

func main() {
    r := gin.Default()
    r.GET("/pay", tools.WebPageAlipay)
    r.GET("/return", tools.AliPayNotify)
    r.Run(":8100")
}

github.com/smartwalle/alipay 这个第三方库来作为定义了很多支付宝接口,我们直接使用这个库来继续我们的开发。

首先初始化

var (
    appID = "你的支付宝ID"
    privateKey = "你的支付宝私钥"
    client, _  = alipay.New(appID, privateKey, false)
)
 
func init() {
    client.LoadAliPayPublicKey("你的支付宝公钥")
}

将在支付宝开放平台沙箱中申请的密钥和公钥填入对应位置

使用 Web 扫码支付接口

// WebPageAlipay 网页扫码支付
func WebPageAlipay(c *gin.Context) {
    ......
    var p = alipay.TradePagePay{}
    p.ReturnURL = "http://127.0.0.1:8080/return" //订单付款后跳转的网址页面
    p.Subject = fmt.Sprintf("订单号:%s", orderSn) //付款标题
    p.OutTradeNo = orderSn                     //商家订单号
    p.TotalAmount = price                      //价格
    p.ProductCode = "FAST_INSTANT_TRADE_PAY"
    
    var url, err = client.TradePagePay(p)
    if err != nil {
        fmt.Println(err)
    }
 
    var payURL = url.String() //扫码支付的网页链接,返回前端后打开
}

在支付成功后,支付页面会自动跳转到 p.ReturnURL 中设置的地址(我这里设置的前端地址,跳转到前端地址后,前端向后端请求 /return ,完整获取页面的查询参数并全部拼接到后端 /return 中),后端获取查询参数做签名验证

// AliPayNotify 接受通知接口
func AliPayNotify(c *gin.Context) {
    //获取url并转成*URL
    x, _ := url.Parse(c.Request.URL.String())
    //验证是否成功支付
    ok, err := client.VerifySign(x.Query())
}

到此这篇关于Golang实现支付宝沙箱支付的方法步骤的文章就介绍到这了,更多相关Golang 支付宝沙箱支付内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Golang中goto跳转语句的实现

    Golang中goto跳转语句的实现

    本文主要介绍了Golang中goto跳转语句的实现,包括标签的定义、跳转语句的使用、作用域限制、避免滥用的原因以及历史遗留代码中的使用情况,感兴趣的可以了解一下
    2025-03-03
  • Golang语言的多种变量声明方式与使用场景详解

    Golang语言的多种变量声明方式与使用场景详解

    Golang当中的变量类型和C/C++比较接近,一般用的比较多的也就是int,float和字符串,下面这篇文章主要给大家介绍了关于Golang语言的多种变量声明方式与使用场景的相关资料,需要的朋友可以参考下
    2022-02-02
  • golang简单读写文件示例

    golang简单读写文件示例

    这篇文章主要介绍了golang简单读写文件的方法,实例分析了Go简单文件读取与写入操作的相关技巧,需要的朋友可以参考下
    2016-07-07
  • golang简单tls协议用法完整示例

    golang简单tls协议用法完整示例

    这篇文章主要介绍了golang简单tls用法,分析了tls协议的使用步骤及客户端与服务器端的相关实现代码,需要的朋友可以参考下
    2016-07-07
  • Go Excelize API源码解读GetSheetViewOptions与SetPageLayout

    Go Excelize API源码解读GetSheetViewOptions与SetPageLayo

    这篇文章主要为大家介绍了Go Excelize API源码解读GetSheetViewOptions与SetPageLayout方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Go语言将string解析为time.Time时两种常见报错

    Go语言将string解析为time.Time时两种常见报错

    本文主要介绍了Go语言将string解析为time.Time时两种常见报错,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Go语言中切片使用的注意事项小结

    Go语言中切片使用的注意事项小结

    切片是引用类型,相信对大家来说都不陌生,下面这篇文章主要给大家总结介绍了关于Go语言中切片使用的一些注意事项,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-01-01
  • 详解Go语言变量作用域

    详解Go语言变量作用域

    这篇文章主要介绍了Go 语言变量作用域的相关资料,帮助大家更好的理解和学习使用go语言,感兴趣的朋友可以了解下
    2021-03-03
  • 一文详解Golang中的匿名变量

    一文详解Golang中的匿名变量

    匿名变量是一种特殊类型的变量,可以简化代码并提高可读性,本文将为大家详细介绍一下golang中匿名变量的定义、特性和使用方法,需要的可以参考下
    2023-09-09
  • 修改并编译golang源码的操作步骤

    修改并编译golang源码的操作步骤

    这篇文章主要介绍了修改并编译golang源码的操作步骤,本文给大家介绍的非常详细,需要的朋友可以参考下
    2021-07-07

最新评论