plugin wx getSrv sync

This commit is contained in:
李子铭 2024-07-16 13:44:11 +08:00
parent 8e2fac56ba
commit 95f3f9918e
2 changed files with 23 additions and 1 deletions

View File

@ -7,9 +7,31 @@ import (
"github.com/wechatpay-apiv3/wechatpay-go/core/option"
"github.com/wechatpay-apiv3/wechatpay-go/services/cashcoupons"
"github.com/wechatpay-apiv3/wechatpay-go/utils"
"sync"
)
var instance *cashcoupons.CouponApiService
var once sync.Once
var onceError error
var onceErrorMutex sync.Mutex
func getSrv(ctx context.Context, config *Config) (*cashcoupons.CouponApiService, error) {
onceErrorMutex.Lock()
defer onceErrorMutex.Unlock()
if onceError != nil {
instance = nil
onceError = nil
}
once.Do(func() {
instance, onceError = newInstance(ctx, config)
})
return instance, onceError
}
func newInstance(ctx context.Context, config *Config) (*cashcoupons.CouponApiService, error) {
mchPrivateKey, err := utils.LoadPrivateKeyWithPath(config.PrivateKeyPath)
if err != nil {
return nil, fmt.Errorf("load merchant private key error:%v", err)

View File

@ -63,7 +63,7 @@ func TestQuery(t *testing.T) {
return
}
fmt.Printf("%+v \n", got)
//assert.Equal(t, int(proto.Status_SUCCESS), int(got.Result.Status))
assert.Equal(t, int(proto.Status_SUCCESS), int(got.Result.Status))
})
}