代码调整
This commit is contained in:
parent
fc6f3533ab
commit
d9adae9639
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue