Golang 2022 实现支付宝、微信支付功能
Gopay
微信、支付宝、PayPal、Apple 的 Go 版本 SDK。【极简、易用的聚合支付 SDK】
github:https://github.com/go-pay/gopay
1 | go get -u github.com/go-pay/gopay |
支付宝
密钥和授权回调地址
获取密钥
得到以下:
- 应用公钥证书 appCertPublicKey.crt
- 应用私钥 (非 Java 语言)
- 支付宝公钥证书 alipayCertPublicKey_RSA2.crt
- 支付宝公钥证书 alipayRootCert.crt
将证书中的内容复制到文件中或着已证书文件的形式加载1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22package cert
var (
Appid = "2021000116674577"
// 应用私钥
AppPrivateKey = "MIIEpAIBAAKCAQEAoX6ZLfwZz3NDkwjaVhai18yVxQaUgA47aZuOe2AtG2hfeQ1LJ9GN7aTPAGdnuXMaRj9RRKllRw+vJq2FmAKo........"
// 支付宝公钥证书
AlipayPublicContentRSA2 = []byte(`-----BEGIN CERTIFICATE-----
MIIDszCCApu...................
`)
// 支付宝根证书
AlipayRootContent = []byte(`-----BEGIN CERTIFICATE----
.....................................................
-----END CERTIFICATE-----`)
// 应用公钥证书
AppPublicContent = []byte(`-----BEGIN CERTIFICATE-----.................................`)
)
以文件的方式加载1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32package cert
import (
"io/ioutil"
"os"
)
var (
Appid string
// 应用私钥
AppPrivateKey string
// 支付宝公钥证书
AlipayPublicContentRSA2 []byte
// 支付宝根证书
AlipayRootContent []byte
// 应用公钥证书
AppPublicContent []byte
)
func Init() {
RSA2, _ := os.Open("alipayCertPublicKey_RSA2.crt")
rootKey, _ := os.Open("alipayRootCert.crt")
appPublicKey, _ := os.Open("appCertPublicKey.crt")
AlipayPublicContentRSA2, _ = ioutil.ReadAll(RSA2)
AlipayRootContent, _ = ioutil.ReadAll(rootKey)
AppPublicContent, _ = ioutil.ReadAll(appPublicKey)
AppPrivateKey = "MIIEpAIBAAKCAQEAoX6Z==................."
Appid = "2021000116674577"
}
回调地址
注意这里一定要是公网地址!
如果你是本地开发可以使用外网穿透实现 https://i.cpolar.com/m/4M81
电脑网站支付
https://github.com/go-pay/gopay/blob/main/doc/alipay.md
https://opendocs.alipay.com/apis/api_1/alipay.trade.page.pay?scene=22
1 | package pay |
如果出现以下情况,请尝试清空浏览器缓存或更换浏览器访问