Skip to content
This repository was archived by the owner on Dec 10, 2021. It is now read-only.

lyp256/alipay

Repository files navigation

golang alipay 支付宝支付接口

已完成支付接口:

支持异步通知验签

支付宝应用创建及配置参见支付宝快速接入介绍,也可使用支付宝沙箱环境进行测试开发

安装

go get github.com/lyp256/alipay

使用

导入github.com/lyp256/alipay

import "github.com/lyp256/alipay"

创建一个alipay客户端

priByte, err := ioutil.ReadFile("pri.txt")
if err != nil {
log.Fatalln("私钥文件读取失败")
}
pubByte, err := ioutil.ReadFile("pub.txt")
if err != nil {
log.Fatalln("公钥文件读取失败")
}
payClick, _ = alipay.NewAlipay(priByte, pubByte, "APPID", "支付宝网关地址", alipay.ST_RSA2)
payClick.SetNotifyUrl("默认通知地址")

说明

所有请求分三步完成

  1. 创建业务:调用 alipay.NewWapPay,alipay.NewPagePay,alipay.NewQuery 等方法传入必要参数会返回业务 struct,调用业务 struct 的 SetXXX 方法(如:SetTimeExpire,SetBody 等)可改变业务参数.

  2. 创建请求:调用 alipay.WapPay,alipay.PagePay 等方法传入业务 struct 返回请求 struct, 调用该 struct 的 SetXXX 方法(如: SetReturnUrl,SetNotifyUrl 等)可以修改公共参数

  3. 调用请求 struct 的 Build() 方法返回请求链接

创建业务请求时传入必要参数

手机网站支付

// 创建一个手机支付订单
wapOrder, err := alipay.NewWapPay("唯一订单号", "标题", 9.9 /*价格*/)
if err!=nil{
fmt.Println(err)
}
// 设置支付超时时间
wapOrder.SetTimeExpire(time.Now().Unix() + 180)
// 设置回跳地址并生成支付链接
url, _ := pay.WapPay(o).SetReturnUrl("http://lyp256.cn").Build()
fmt.Println("手机网站支付链接:", url)

电脑网站支付

pageOrder, _ := alipay.NewPagePay("唯一订单号", "标题", 9.9)
url, _ := pay.PagePay(pageOrder).Build()
fmt.Println("电脑网站支付链接:", url)

查询订单

// 创建查询,两个订单号选择一个传入即可
query, _ := alipay.NewQuery("你自己创建订单时传入的订单号", "支付宝返回的订单号")
// 生成查询地址
url, _ := pay.QueryOrder(query).Build()
// 查询订单返回查询结果map,出错或者验签失败会返回空
resultMap, err:= pay.QueryOrderParams(query)
if err!=nil{
fmt.Println(err)
}
fmt.Println("查询地址:", url)
fmt.Println("查询结果:", resultMap)

异步通知处理

http.HandleFunc("/", func (writer http.ResponseWriter, request *http.Request) {
request.ParseForm()
err := pay.ValidateNotify(request.Form)
if err!=nil{
/*验证支付宝签名失败*/
}else{
/*验证支付宝签成功*/

// 业务处理代码
some code......
// 业务处理完成,返回success标识符.注意返回成功标志前后不可返回其他任意数据.
alipay.NotIfySuccess(writer)
}
})
http.ListenAndServe(":80", nil)

贡献

欢迎提问或 Pull Request 联系我lyp256@gmail.com

About

支付宝接口SDK

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages