diff --git a/wxpay.go b/wxpay.go index b8c8f51..5f50f72 100644 --- a/wxpay.go +++ b/wxpay.go @@ -18,23 +18,27 @@ type wxpay struct { Handler *notify.Handler } type WxpayConfig struct { - MchID string // 商户号 - MchCertificateSerialNumber string // 商户证书序列号 - MchAPIv3Key string // 商户APIv3密钥 - PrivateKey string // 私钥 - PrivateCert string // 私钥证书 + MchID string // 商户号 + MchAPIv3Key string // 商户APIv3密钥 + PrivateKey string // 私钥 + PrivateCert string // 私钥证书 } // InitWxpay @Title 初始化微信支付 func InitWxpay(config WxpayConfig) error { - // 加载私钥证书 + // 加载私钥 privateKey, err := rsa.ParsePrivateKey(config.PrivateKey, rsa.PKCS8) if err != nil { return errors.New("私钥错误") } + // 加载私钥证书 + certificate, err := rsa.ParseCertificate(config.PrivateCert) + if err != nil { + return errors.New("证书错误") + } // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力 opts := []core.ClientOption{ - option.WithWechatPayAutoAuthCipher(config.MchID, config.MchCertificateSerialNumber, privateKey, config.MchAPIv3Key), + option.WithWechatPayAutoAuthCipher(config.MchID, certificate.SerialNumber.String(), privateKey, config.MchAPIv3Key), } Wxpay.Client, err = core.NewClient(context.Background(), opts...) if err != nil {