This commit is contained in:
苏尹岚
2020-11-17 11:11:22 +08:00
parent 6c8d05e3c2
commit 9e178e0673
2 changed files with 9 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ import (
"crypto/md5" "crypto/md5"
"crypto/sha256" "crypto/sha256"
"crypto/tls" "crypto/tls"
"crypto/x509"
"encoding/xml" "encoding/xml"
"fmt" "fmt"
"net/http" "net/http"
@@ -396,7 +397,7 @@ func New(appID, appKey, mchID string, config ...*platformapi.APIConfig) *API {
} }
} }
func NewWithCertificate(appID, appKey, mchID string, certPEMBlock, keyPEMBlock interface{}, config ...*platformapi.APIConfig) (a *API) { func NewWithCertificate(appID, appKey, mchID string, certPEMBlock, keyPEMBlock, rootCa interface{}, config ...*platformapi.APIConfig) (a *API) {
var certs tls.Certificate var certs tls.Certificate
var err error var err error
if binCertPEMBlock, ok := certPEMBlock.([]byte); ok { if binCertPEMBlock, ok := certPEMBlock.([]byte); ok {
@@ -405,9 +406,12 @@ func NewWithCertificate(appID, appKey, mchID string, certPEMBlock, keyPEMBlock i
certs, err = tls.LoadX509KeyPair(certPEMBlock.(string), keyPEMBlock.(string)) certs, err = tls.LoadX509KeyPair(certPEMBlock.(string), keyPEMBlock.(string))
} }
if err == nil { if err == nil {
pool := x509.NewCertPool()
pool.AppendCertsFromPEM(rootCa.([]byte))
a = New(appID, appKey, mchID, config...) a = New(appID, appKey, mchID, config...)
a.client.Transport = &http.Transport{ a.client.Transport = &http.Transport{
TLSClientConfig: &tls.Config{ TLSClientConfig: &tls.Config{
RootCAs: pool,
Certificates: []tls.Certificate{certs}, Certificates: []tls.Certificate{certs},
}, },
} }

View File

@@ -23,7 +23,7 @@ func init() {
baseapi.Init(sugarLogger) baseapi.Init(sugarLogger)
certPEMBlock, _ := ioutil.ReadFile("1390686702_20190115_cert/apiclient_cert.pem") certPEMBlock, _ := ioutil.ReadFile("1390686702_20190115_cert/apiclient_cert.pem")
keyPEMBlock, _ := ioutil.ReadFile("1390686702_20190115_cert/apiclient_key.pem") keyPEMBlock, _ := ioutil.ReadFile("1390686702_20190115_cert/apiclient_key.pem")
api = NewWithCertificate("wx4b5930c13f8b1170", "XKJPOIHJ233adf01KJIXlIeQDSDKFJAD", "1390686702", certPEMBlock, keyPEMBlock) api = NewWithCertificate("wx70d0943e61e0d15c", "XKJPOIHJ233adf01KJIXlIeQDSDKFJAD", "1603491062", certPEMBlock, keyPEMBlock, nil)
// api = New("wx4b5930c13f8b1170", "XKJPOIHJ233adf01KJIXlIeQDSDKFJAD", "1390686702") // api = New("wx4b5930c13f8b1170", "XKJPOIHJ233adf01KJIXlIeQDSDKFJAD", "1390686702")
} }
@@ -131,11 +131,11 @@ func TestTransfers(t *testing.T) {
orderNo := utils.GetUUID() orderNo := utils.GetUUID()
result, err := api.Transfers(&TransfersParam{ result, err := api.Transfers(&TransfersParam{
PartnerTradeNo: orderNo, PartnerTradeNo: orderNo,
OpenID: "ojWb10M_8kV8NT0aZJa6A5umG1c8", OpenID: "o2dL05DjZggIr2nStjgHWa9oqQBc",
CheckName: "NO_CHECK", CheckName: "NO_CHECK",
Amount: 100, Amount: 1,
Desc: "测试", Desc: "测试",
SpbillCreateIP: "114.114.114.114", SpbillCreateIP: "171.217.98.243",
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)