一、相关链接
因为只有注册公司以后才能申请支付功能,所以支付宝给了一个沙箱环境供我们测试
1. 文档
https://opendocs.alipay.com/common/02kkv7
2. 项目地址
https://github.com/smartwalle/alipay
3. 开发步骤
- 设置公钥和私钥
- 设置回调
二、设置公钥私钥 回调url
1. 设置公私钥
https://opendocs.alipay.com/common/02kipl
生成的公私钥用来给支付宝解密 生成公钥给我们解密,
非对称加解密流程:
即使自己的私钥泄露被伪造了A请求也不会信任这个请求的,因为支付宝的私钥和自己的私钥不匹配
直接填写即可 - 支付宝的安全dddd
2. go生成订单
github项目:https://github.com/smartwalle/alipay
这个项目也支持其他支付方式
go代码演示:
package main
import (
"fmt"
"github.com/smartwalle/alipay/v3"
"net/url"
)
func main() {
appID := ""//你的appID
privateKey := ""//你的私钥
aliPhublicKey := ""//支付宝的公钥
var client, err = alipay.New(appID, privateKey, false)
if err != nil {
panic(err)
}
err = client.LoadAliPayPublicKey(aliPhublicKey)
if err != nil {
panic(err)
}
//var p = alipay.TradeWapPay{}
var p=alipay.TradePagePay{}
p.NotifyURL = "https://www.baidu.com"//支付宝回调
p.ReturnURL = "https://www.baidu.com"//支付后调转页面
p.Subject = "Jzin-订单支付" //标题
p.OutTradeNo = "jzin" //传递一个唯一单号
p.TotalAmount = "10.00"//金额
//p.ProductCode = "QUICK_WAP_WAY"
p.ProductCode = "FAST_INSTANT_TRADE_PAY"//网页支付
var url2 *url.URL
url2, err = client.TradePagePay(p)
if err != nil {
fmt.Println(err)
}
var payURL = url2.String()
fmt.Println(payURL)
// 这个 payURL 即是用于支付的 URL,可将输出的内容复制,到浏览器中访问该 URL 即可打开支付页面。
}
运行后直接访问 可以用沙箱给的账号进行测试: