代码调整

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(`{}`),
},
}
t.Logf("%s\n", request.String())
return
//t.Logf("%s\n", request.String())
//return
t.Run("TestOrder", func(t *testing.T) {
got, err := srv.Order(context.Background(), request)
if err != nil {

View File

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

View File

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