代码调整

This commit is contained in:
李子铭 2025-03-05 15:54:57 +08:00
parent fc6f3533ab
commit d9adae9639
3 changed files with 13 additions and 2 deletions

View File

@ -58,8 +58,8 @@ func TestOrder(t *testing.T) {
Extra: []byte(`{}`), Extra: []byte(`{}`),
}, },
} }
t.Logf("%s\n", request.String()) //t.Logf("%s\n", request.String())
return //return
t.Run("TestOrder", func(t *testing.T) { t.Run("TestOrder", func(t *testing.T) {
got, err := srv.Order(context.Background(), request) got, err := srv.Order(context.Background(), request)
if err != nil { if err != nil {

View File

@ -33,21 +33,25 @@ func newClient(ctx context.Context, c *Server) (*core.Client, error) {
if err != nil { if err != nil {
return nil, proto.ErrorConfigFail(fmt.Sprintf("MchID[%s] get current dir error:%v", c.MchID, err)) return nil, proto.ErrorConfigFail(fmt.Sprintf("MchID[%s] get current dir error:%v", c.MchID, err))
} }
filePath := fmt.Sprintf("%s/%s/%s/%s", dir, "cert", "wechat", c.MchID) filePath := fmt.Sprintf("%s/%s/%s/%s", dir, "cert", "wechat", c.MchID)
if !putils.FileExists(filePath) { if !putils.FileExists(filePath) {
return nil, proto.ErrorConfigFail(fmt.Sprintf("MchID[%s]微信密钥证书信息不存在,请联系技术人员处理", c.MchID)) return nil, proto.ErrorConfigFail(fmt.Sprintf("MchID[%s]微信密钥证书信息不存在,请联系技术人员处理", c.MchID))
} }
// 商户相关配置,商户API私钥 // 商户相关配置,商户API私钥
mchPrivateKey, err := utils.LoadPrivateKeyWithPath(fmt.Sprintf("%s/%s", filePath, "wechat_private_key.pem")) mchPrivateKey, err := utils.LoadPrivateKeyWithPath(fmt.Sprintf("%s/%s", filePath, "wechat_private_key.pem"))
if err != nil { if err != nil {
return nil, proto.ErrorConfigFail(fmt.Sprintf("MchID[%s] load merchant private key error:%v", c.MchID, err)) return nil, proto.ErrorConfigFail(fmt.Sprintf("MchID[%s] load merchant private key error:%v", c.MchID, err))
} }
var client *core.Client var client *core.Client
// 微信支付平台配置 // 微信支付平台配置
wechatPayCertificate, err := utils.LoadCertificateWithPath(fmt.Sprintf("%s/%s", filePath, "wechat_cert.pem")) wechatPayCertificate, err := utils.LoadCertificateWithPath(fmt.Sprintf("%s/%s", filePath, "wechat_cert.pem"))
if err != nil { if err != nil {
return nil, proto.ErrorConfigFail(fmt.Sprintf("平台证书有误:%v", err)) return nil, proto.ErrorConfigFail(fmt.Sprintf("平台证书有误:%v", err))
} }
client, err = core.NewClient( client, err = core.NewClient(
ctx, ctx,
option.WithMerchantCredential( option.WithMerchantCredential(
@ -60,5 +64,6 @@ func newClient(ctx context.Context, c *Server) (*core.Client, error) {
if err != nil { if err != nil {
return nil, proto.ErrorConfigFail(fmt.Sprintf("创建 Client 失败:%v", err)) return nil, proto.ErrorConfigFail(fmt.Sprintf("创建 Client 失败:%v", err))
} }
return client, nil return client, nil
} }

View File

@ -26,24 +26,30 @@ func init() {
func GetClient(ctx context.Context, c *Server) (*core.Client, error) { func GetClient(ctx context.Context, c *Server) (*core.Client, error) {
instance.mutex.Lock() instance.mutex.Lock()
defer instance.mutex.Unlock() defer instance.mutex.Unlock()
if instance.clients[c.MchID] != nil { if instance.clients[c.MchID] != nil {
return instance.clients[c.MchID], nil return instance.clients[c.MchID], nil
} }
var err error var err error
instance.once.Do(func() { instance.once.Do(func() {
instance.clients[c.MchID], err = newClient(ctx, c) instance.clients[c.MchID], err = newClient(ctx, c)
}) })
if err != nil { if err != nil {
return nil, err return nil, err
} }
return instance.clients[c.MchID], nil return instance.clients[c.MchID], nil
} }
func (s *Server) Verify(ctx context.Context, message, signature string) error { func (s *Server) Verify(ctx context.Context, message, signature string) error {
var verifier auth.Verifier var verifier auth.Verifier
verifier = verifiers.NewSHA256WithRSAVerifier(nil) verifier = verifiers.NewSHA256WithRSAVerifier(nil)
if err := verifier.Verify(ctx, s.MchCertificateSerialNumber, message, signature); err != nil { if err := verifier.Verify(ctx, s.MchCertificateSerialNumber, message, signature); err != nil {
return proto.ErrorSignFail(err.Error()) return proto.ErrorSignFail(err.Error())
} }
return nil return nil
} }