43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package pay
|
||
|
||
import (
|
||
"github.com/go-pay/gopay"
|
||
"github.com/go-pay/gopay/alipay"
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
)
|
||
|
||
type AliPay struct {
|
||
Client *alipay.Client
|
||
}
|
||
|
||
func Alipay() *AliPay {
|
||
var pay = &AliPay{}
|
||
var err error
|
||
|
||
cfg, err := g.Cfg().Get(ctx, "pay.alipay")
|
||
cfgMap := cfg.MapStrStr()
|
||
appId := cfgMap["appid"]
|
||
privateKey := cfgMap["privateKey"]
|
||
isProd, _ := g.Cfg().Get(ctx, "pay.alipay.isProd")
|
||
// 初始化支付宝客户端
|
||
// appid:应用ID
|
||
// privateKey:应用私钥,支持PKCS1和PKCS8
|
||
// isProd:是否是正式环境,沙箱环境请选择新版沙箱应用。
|
||
pay.Client, err = alipay.NewClient(appId, privateKey, isProd.Bool())
|
||
if err != nil {
|
||
g.Log().Error(ctx, err)
|
||
return nil
|
||
}
|
||
|
||
// 自定义配置http请求接收返回结果body大小,默认 10MB
|
||
//pay.Client.SetBodySize() // 没有特殊需求,可忽略此配置
|
||
|
||
// 打开Debug开关,输出日志,默认关闭
|
||
pay.Client.DebugSwitch = gopay.DebugOn
|
||
|
||
pay.Client.SetCharset(alipay.UTF8). // 设置字符编码,不设置默认 utf-8
|
||
SetSignType(alipay.RSA2) // 设置签名类型,不设置默认 RSA2
|
||
|
||
return pay
|
||
}
|