Skip to content

Go SDK

安装

bash
go get github.com/yolaipay/yopay-go
go
import yopay "github.com/yolaipay/yopay-go"

生产项目请提交更新后的 go.modgo.sum

当前稳定版本为 v0.3.0。如需固定依赖版本,请在项目的 go.mod 中维护版本号。

配置与下单

go
client, err := yopay.NewClient(yopay.Config{
    BaseURL:            "https://pay.example.com",
    MchID:              os.Getenv("YOPAY_MCH_ID"),
    SecretKey:          os.Getenv("YOPAY_SECRET_KEY"),
    PlatformPublicKey:  os.Getenv("YOPAY_PLATFORM_PUBLIC_KEY"),
    MerchantPrivateKey: os.Getenv("YOPAY_MERCHANT_PRIVATE_KEY"),
})
if err != nil {
    return err
}

order, err := client.Order(context.Background(), yopay.OrderRequest{
    MerchantOrderNo: "MO-202607160001",
    Amount:          "20.000",
    CurrencyCode:    "USD",
    Scene:           "qr",
    Payer: yopay.Payer{
        MerchantUserID: "payer-10001",
        AccountType:    3,
        AccountNo:      "openid-10001",
    },
})

支持下单、退款、提现/代付、关单、查询、账单和商户通知验签解密。

商户通知

传入实际收到的 path、headers 和原始 body;完成本地幂等处理后返回 HTTP 200{"code":0}

go
var notify yopay.PayNotify
err := client.VerifyAndDecryptNotify(r.URL.Path, r.Header, rawBody, &notify)

完整示例见 Go SDK GitHub 仓库