diff --git a/platformapi/wxpay/wxpay.go b/platformapi/wxpay/wxpay.go index 8dcb64ee..afee6dd1 100644 --- a/platformapi/wxpay/wxpay.go +++ b/platformapi/wxpay/wxpay.go @@ -11,6 +11,7 @@ import ( "strings" "time" + "git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi/platformapi" "git.rosy.net.cn/baseapi/utils" "github.com/clbanning/mxj" @@ -224,8 +225,14 @@ func New(appID, appKey, mchID string, config ...*platformapi.APIConfig) *API { } } -func NewWithCertificate(appID, appKey, mchID string, certPEMBlock, keyPEMBlock []byte, config ...*platformapi.APIConfig) (a *API) { - certs, err := tls.X509KeyPair(certPEMBlock, keyPEMBlock) +func NewWithCertificate(appID, appKey, mchID string, certPEMBlock, keyPEMBlock interface{}, config ...*platformapi.APIConfig) (a *API) { + var certs tls.Certificate + var err error + if binCertPEMBlock, ok := certPEMBlock.([]byte); ok { + certs, err = tls.X509KeyPair(binCertPEMBlock, keyPEMBlock.([]byte)) + } else { + certs, err = tls.LoadX509KeyPair(certPEMBlock.(string), keyPEMBlock.(string)) + } if err == nil { a = New(appID, appKey, mchID, config...) a.client.Transport = &http.Transport{ @@ -233,6 +240,8 @@ func NewWithCertificate(appID, appKey, mchID string, certPEMBlock, keyPEMBlock [ Certificates: []tls.Certificate{certs}, }, } + } else { + baseapi.SugarLogger.Warnf("NewWithCertificate failed with err:%v", err) } return a }