Jerry vor 6 Jahren
Ursprung
Commit
43be3fa6e2
5 geänderte Dateien mit 43 neuen und 3 gelöschten Zeilen
  1. 6 3
      README.md
  2. 10 0
      alipay_client_test.go
  3. 23 0
      examples/alipay/alipay_ServiceApi.go
  4. 1 0
      go.mod
  5. 3 0
      go.sum

+ 6 - 3
README.md

@@ -81,6 +81,7 @@
 
 ### 支付宝公共API
 
+* gopay.GetCertSN() => 获取证书SN号(app_cert_sn、alipay_root_cert_sn、alipay_cert_sn)
 * gopay.AliPaySystemOauthToken() => 换取授权访问令牌(得到access_token,user_id等信息)
 * gopay.FormatPrivateKey() => 格式化应用私钥
 * gopay.FormatAliPayPublicKey() => 格式化支付宝公钥
@@ -160,12 +161,14 @@ client := gopay.NewAliPayClient("2016091200494382", privateKey, false)
 
 //设置支付宝请求 公共参数
 //    注意:具体设置哪些参数,根据不同的方法而不同,此处列举出所以设置参数
-client.SetCharset("utf-8").                 //设置字符编码,不设置默认 utf-8
+client.SetAliPayRootCertSN().               //设置支付宝根证书SN,通过 gopay.GetCertSN() 获取
+    SetAppCertSN().                         //设置应用公钥证书SN,通过 gopay.GetCertSN() 获取
+    SetCharset("utf-8").                    //设置字符编码,不设置默认 utf-8
 	SetSignType("RSA2").                    //设置签名类型,不设置默认 RSA2
 	SetReturnUrl("https://www.gopay.ink").  //设置返回URL
 	SetNotifyUrl("https://www.gopay.ink").  //设置异步通知URL
-	SetAppAuthToken("").                    //设置第三方应用授权
-	SetAuthToken("")                        //设置个人信息授权
+	SetAppAuthToken().                      //设置第三方应用授权
+	SetAuthToken()                          //设置个人信息授权
 ```
 
 ## 2、初始化并赋值BodyMap(client的方法所需的入参)

+ 10 - 0
alipay_client_test.go

@@ -68,5 +68,15 @@ func TestSubString(t *testing.T) {
 	fmt.Println("indexEnd:", indexEnd)
 
 	fmt.Println("sub:", str[index+2:indexEnd])
+}
+
+func TestGetCertSN(t *testing.T) {
 
+	//sn, err := GetCertSN("alipay_cert/alipayCertPublicKey_RSA2.crt")
+	//sn, err := GetCertSN("alipay_cert/appCertPublicKey.crt")
+	//sn, err := GetCertSN("alipay_cert/alipayRootCert.crt")
+	//if err != nil {
+	//	fmt.Println("err:", err)
+	//}
+	//fmt.Println("sn:", sn)
 }

+ 23 - 0
examples/alipay/alipay_ServiceApi.go

@@ -64,3 +64,26 @@ func ParseAliPayNotifyResultAndVerifyAliPaySign(req *http.Request) {
 	}
 	log.Println("支付宝验签是否通过:", ok)
 }
+
+func GetCertSN() {
+	sn, err := gopay.GetCertSN("alipay_cert/appCertPublicKey.crt")
+	if err != nil {
+		fmt.Println("err:", err)
+		return
+	}
+	fmt.Println("sn:", sn)
+
+	sn, err = gopay.GetCertSN("alipay_cert/alipayRootCert.crt")
+	if err != nil {
+		fmt.Println("err:", err)
+		return
+	}
+	fmt.Println("sn:", sn)
+
+	sn, err = gopay.GetCertSN("alipay_cert/alipayCertPublicKey_RSA2.crt")
+	if err != nil {
+		fmt.Println("err:", err)
+		return
+	}
+	fmt.Println("sn:", sn)
+}

+ 1 - 0
go.mod

@@ -6,6 +6,7 @@ require (
 	github.com/moul/http2curl v1.0.0 // indirect
 	github.com/parnurzeal/gorequest v0.2.15
 	github.com/pkg/errors v0.8.1 // indirect
+	github.com/tjfoc/gmsm v1.0.1
 	golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 // indirect
 )
 

+ 3 - 0
go.sum

@@ -1,3 +1,4 @@
+github.com/golang/crypto v0.0.0-20190701094942-4def268fd1a4 h1:SqpWDZAu6UkmbvUTCtyNpBZLY8110TJ7bgxIki3pZw0=
 github.com/golang/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 github.com/golang/net v0.0.0-20190628185345-da137c7871d7 h1:55FXsNCsu933N8BMLPyCb+rcAaKCx3iHcHpZhgGSQGU=
 github.com/golang/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -11,3 +12,5 @@ github.com/parnurzeal/gorequest v0.2.15 h1:oPjDCsF5IkD4gUk6vIgsxYNaSgvAnIh1EJeRO
 github.com/parnurzeal/gorequest v0.2.15/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE=
 github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/tjfoc/gmsm v1.0.1 h1:R11HlqhXkDospckjZEihx9SW/2VW0RgdwrykyWMFOQU=
+github.com/tjfoc/gmsm v1.0.1/go.mod h1:XxO4hdhhrzAd+G4CjDqaOkd0hUzmtPR/d3EiBBMn/wc=