Skip to content

Commit 9d7c9f8

Browse files
authored
v1.5.76 (#240)
* v1.5.76
1 parent dcdabbe commit 9d7c9f8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+976
-835
lines changed

alipay/ant.go

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@ func (a *Client) AntMerchantShopModify(ctx context.Context, bm gopay.BodyMap) (a
1616
return nil, err
1717
}
1818
aliRsp = new(AntMerchantShopModifyRsp)
19-
if err = json.Unmarshal(bs, aliRsp); err != nil {
20-
return nil, err
19+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
20+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
2121
}
22-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
23-
info := aliRsp.Response
24-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
22+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
23+
return aliRsp, err
2524
}
2625
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
2726
aliRsp.SignData = signData
@@ -40,12 +39,11 @@ func (a *Client) AntMerchantShopCreate(ctx context.Context, bm gopay.BodyMap) (a
4039
return nil, err
4140
}
4241
aliRsp = new(AntMerchantShopCreateRsp)
43-
if err = json.Unmarshal(bs, aliRsp); err != nil {
44-
return nil, err
42+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
43+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
4544
}
46-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
47-
info := aliRsp.Response
48-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
45+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
46+
return aliRsp, err
4947
}
5048
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
5149
aliRsp.SignData = signData
@@ -64,12 +62,11 @@ func (a *Client) AntMerchantShopConsult(ctx context.Context, bm gopay.BodyMap) (
6462
return nil, err
6563
}
6664
aliRsp = new(AntMerchantShopConsultRsp)
67-
if err = json.Unmarshal(bs, aliRsp); err != nil {
68-
return nil, err
65+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
66+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
6967
}
70-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
71-
info := aliRsp.Response
72-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
68+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
69+
return aliRsp, err
7370
}
7471
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
7572
aliRsp.SignData = signData
@@ -88,12 +85,11 @@ func (a *Client) AntMerchantOrderQuery(ctx context.Context, bm gopay.BodyMap) (a
8885
return nil, err
8986
}
9087
aliRsp = new(AntMerchantOrderQueryRsp)
91-
if err = json.Unmarshal(bs, aliRsp); err != nil {
92-
return nil, err
88+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
89+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
9390
}
94-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
95-
info := aliRsp.Response
96-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
91+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
92+
return aliRsp, err
9793
}
9894
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
9995
aliRsp.SignData = signData
@@ -108,12 +104,11 @@ func (a *Client) AntMerchantShopQuery(ctx context.Context, bm gopay.BodyMap) (al
108104
return nil, err
109105
}
110106
aliRsp = new(AntMerchantShopQueryRsp)
111-
if err = json.Unmarshal(bs, aliRsp); err != nil {
112-
return nil, err
107+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
108+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
113109
}
114-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
115-
info := aliRsp.Response
116-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
110+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
111+
return aliRsp, err
117112
}
118113
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
119114
aliRsp.SignData = signData
@@ -128,12 +123,11 @@ func (a *Client) AntMerchantShopClose(ctx context.Context, bm gopay.BodyMap) (al
128123
return nil, err
129124
}
130125
aliRsp = new(AntMerchantShopCloseRsp)
131-
if err = json.Unmarshal(bs, aliRsp); err != nil {
132-
return nil, err
126+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
127+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
133128
}
134-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
135-
info := aliRsp.Response
136-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
129+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
130+
return aliRsp, err
137131
}
138132
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
139133
aliRsp.SignData = signData

alipay/ant_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ func TestAntMerchantShopCreate(t *testing.T) {
3636

3737
aliRsp, err := client.AntMerchantShopCreate(ctx, bm)
3838
if err != nil {
39+
if bizErr, ok := IsBizError(err); ok {
40+
xlog.Errorf("%+v", bizErr)
41+
// do something
42+
return
43+
}
3944
xlog.Errorf("client.AntMerchantShopCreate(%+v),error:%+v", bm, err)
4045
return
4146
}
File renamed without changes.

alipay/cert/cert.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package cert
22

33
var (
4-
Appid = "2021000117673683"
4+
Appid = ""
55

66
// 私钥
77
PrivateKey = "MIIEowIBAAKCAQEAnG3YbVuCU0QptQAzHnscy1W3a5pehEoGjPdhvpUu2DRtybapSw16d3rVTnMUdZctvMSmU0fXfuOjPFvzuhJGwkwJBnGqPONAt1ourlUzEzl3sIRbcyXMxVFXOcV2DsKFcCATGLhWev48jNfoLNP0AD3H63g70NuLg/Cx1v6fWE8mZBSSINNNK2xDyP/rDRKbCGBKXxYKD6tJXNpc7GOaT8G6IDQTfHzDQSAoMzcW3SultLcp6UdyLP+pibovW410IAL1vCrD6nmunT1eXKzZFHbKPsGC9OVxyYbJIPu6e/K24LcD5s51OP9bmKjlGsj0TeVW1vBnQrfPiyJ1+mxz8QIDAQABAoIBAHJrgpBTDBvd0uf7MmkMQj6U/yos6w+2md4IoS1nL7Gjf964xlIIlNjKNzY/xOpSX3khGkv2U7ETzvW6iKdE8Q7z0PIuuAf7bf3vcA/CcC6SrXKnDcFHF+YInlW6kqUvMa2XOICvbUpfpmibEM+hZWu7xPz+oDogLIegymRpMKLFcl50vd/mpChJifN7k3/4pC/n8SlAB3K1xakRWvsfEyj2DgzSB/CDCSOsVi1J1P9YfZ1dU0E3GOIRFtrbrtagBaOPeYiS1qSkwlCyy9UXo3RAsooSjbUZtU+IhuqOFXIySG9gV6gMLFzsaGoRRPCnI9yS/cosSHXo8CTDW8urBqUCgYEA6Dn3wI/nTGceUfD+yaqSV159pwWptSRfhbY5iduJCsbEkI3MhP6WW0vHPL5inixm1Gz2c8/0Xr+5fiwK73vPApQu8tj33wjUYOLsZdi2gXEHyi1e341UwIBUubTO13ZlUtAt9pMaYBusAbGV6JXF5/KJzZ5SnnENWuMBo2OlwqcCgYEArHFuqFiNQ9eGpwv8B802BEVU0HKNxkkKBc11MDLoqF4VXWEUp4eenMVFYrVNyrTfeKszcf2bM7gSMpYc89Nsq7njVQxkaJfS8p/cEV1cGYJrNbEHbSofUfhezfiL1oztFMMnrRNtkP/SSLLn8tPIEnZgCTZXSd4K6aTV/EPN36cCgYEArTQPBSBPczy18Ie+gMsnuuJO9XPTz7cBR8lRwPBslg0KLoaUM91uZ0ltoHCfPToAuA9NAbPon4J/5wsSXOwKyfGb0qTguwjq3hhiGNQ5yvFyzehpCnNu8uTETH3+h9VWXR3IKlAtK+F3uQuqs36BzS2oeiPLm0DWpSMK5cI8r6ECgYAVKxOHbN9ifZmU9f6pQoKoAY7Iy9cliR/G2JLTKNywlmQPA3TSn+5Tlk/PLyxufseT+4gkLRqZPbZWKWFCeSi05+vFK/FDeae2ivMr2ocMxpq8i4+60dnoaRHSPPmFi+UqkE5Vi7X+f7jjnbqlb2P3CDr/xoDum2hBiC+QeQ5TrwKBgEHBg3tMAdDkoC3S6gCxqG2g2nGRJufomFC6a6Nuoi91pn50fP9yode3wO7j/Cc669iA5sWliaPd57ol7mTOcDTQgrkoTJsC0KunJ4141ysU99HSPRdm5ykAfumOoVcN9Vdy8yEeq9zxVk2NGaKy8p+tpnz6N8DDg/8p8tRXuuqU"

alipay/client.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,20 @@ type Client struct {
3535

3636
// 初始化支付宝客户端
3737
// 注意:如果使用支付宝公钥证书验签,请设置 支付宝根证书SN(client.SetAlipayRootCertSN())、应用公钥证书SN(client.SetAppCertSN())
38-
// appId:应用ID
38+
// appid:应用ID
3939
// privateKey:应用私钥,支持PKCS1和PKCS8
4040
// isProd:是否是正式环境
41-
func NewClient(appId, privateKey string, isProd bool) (client *Client, err error) {
41+
func NewClient(appid, privateKey string, isProd bool) (client *Client, err error) {
42+
if appid == util.NULL || privateKey == util.NULL {
43+
return nil, gopay.MissAlipayInitParamErr
44+
}
4245
key := xrsa.FormatAlipayPrivateKey(privateKey)
4346
priKey, err := xpem.DecodePrivateKey([]byte(key))
4447
if err != nil {
4548
return nil, err
4649
}
4750
client = &Client{
48-
AppId: appId,
51+
AppId: appid,
4952
Charset: UTF8,
5053
SignType: RSA2,
5154
IsProd: isProd,

alipay/client_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ var (
2222
func TestMain(m *testing.M) {
2323

2424
// 初始化支付宝客户端
25-
// appId:应用ID
25+
// appid:应用ID
2626
// privateKey:应用私钥,支持PKCS1和PKCS8
2727
// isProd:是否是正式环境
2828
client, err = NewClient(cert.Appid, cert.PrivateKey, false)
2929
if err != nil {
3030
xlog.Error(err)
3131
return
3232
}
33-
// 打开Debug开关,输出日志
34-
client.DebugSwitch = gopay.DebugOn
33+
// Debug开关,输出/关闭日志
34+
client.DebugSwitch = gopay.DebugOff
3535

3636
// 配置公共参数
3737
client.SetCharset("utf-8").

alipay/common_api.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func systemOauthToken(ctx context.Context, appId string, privateKey *rsa.Private
185185
// signType:签名方式 alipay.RSA 或 alipay.RSA2,默认 RSA2
186186
// bizContent:验签时该参数不做任何处理,{任意值},此参数具体看文档
187187
// 文档:https://opendocs.alipay.com/apis/api_9/monitor.heartbeat.syn
188-
func MonitorHeartbeatSyn(ctx context.Context, appId string, privateKey, signType, bizContent string) (rsp *MonitorHeartbeatSynResponse, err error) {
188+
func MonitorHeartbeatSyn(ctx context.Context, appId string, privateKey, signType, bizContent string) (aliRsp *MonitorHeartbeatSynResponse, err error) {
189189
key := xrsa.FormatAlipayPrivateKey(privateKey)
190190
priKey, err := xpem.DecodePrivateKey([]byte(key))
191191
if err != nil {
@@ -216,9 +216,12 @@ func MonitorHeartbeatSyn(ctx context.Context, appId string, privateKey, signType
216216
if err != nil {
217217
return nil, err
218218
}
219-
rsp = new(MonitorHeartbeatSynResponse)
220-
if err = json.Unmarshal(bs, rsp); err != nil {
221-
return nil, err
219+
aliRsp = new(MonitorHeartbeatSynResponse)
220+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
221+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
222+
}
223+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
224+
return aliRsp, err
222225
}
223-
return rsp, nil
226+
return aliRsp, nil
224227
}

alipay/customs.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,11 @@ func (a *Client) TradeCustomsDeclare(ctx context.Context, bm gopay.BodyMap) (ali
2222
return nil, err
2323
}
2424
aliRsp = new(TradeCustomsDeclareRsp)
25-
if err = json.Unmarshal(bs, aliRsp); err != nil {
26-
return nil, err
25+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
26+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
2727
}
28-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
29-
info := aliRsp.Response
30-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
28+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
29+
return aliRsp, err
3130
}
3231
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
3332
aliRsp.SignData = signData

alipay/data_api.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ func (a *Client) DataBillBalanceQuery(ctx context.Context, bm gopay.BodyMap) (al
1818
return nil, err
1919
}
2020
aliRsp = new(DataBillBalanceQueryResponse)
21-
if err = json.Unmarshal(bs, aliRsp); err != nil {
22-
return nil, err
21+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
22+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
2323
}
24-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
25-
info := aliRsp.Response
26-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
24+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
25+
return aliRsp, err
2726
}
2827
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
2928
aliRsp.SignData = signData
@@ -42,12 +41,11 @@ func (a *Client) DataBillDownloadUrlQuery(ctx context.Context, bm gopay.BodyMap)
4241
return nil, err
4342
}
4443
aliRsp = new(DataBillDownloadUrlQueryResponse)
45-
if err = json.Unmarshal(bs, aliRsp); err != nil {
46-
return nil, err
44+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
45+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
4746
}
48-
if aliRsp.Response != nil && aliRsp.Response.Code != "10000" {
49-
info := aliRsp.Response
50-
return aliRsp, fmt.Errorf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, info.Code, info.Msg, info.SubCode, info.SubMsg)
47+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
48+
return aliRsp, err
5149
}
5250
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
5351
aliRsp.SignData = signData

alipay/error.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package alipay
22

3-
import "fmt"
3+
import (
4+
"fmt"
5+
)
46

57
// BizErr 用于判断支付宝的业务逻辑是否有错误
68
type BizErr struct {
7-
Code string
8-
Msg string
9-
SubCode string
10-
SubMsg string
9+
Code string `json:"code"`
10+
Msg string `json:"msg"`
11+
SubCode string `json:"sub_code"`
12+
SubMsg string `json:"sub_msg"`
1113
}
1214

1315
// bizErrCheck 检查业务码是否为10000 否则返回一个BizErr
@@ -24,12 +26,12 @@ func bizErrCheck(errRsp ErrorResponse) error {
2426
}
2527

2628
func (e *BizErr) Error() string {
27-
return fmt.Sprintf(`{"code": "%s","msg": "%s","sub_code": "%s","sub_msg": "%s"}`, e.Code, e.Msg, e.SubCode, e.SubMsg)
29+
return fmt.Sprintf(`{"code":"%s","msg":"%s","sub_code":"%s","sub_msg":"%s"}`, e.Code, e.Msg, e.SubCode, e.SubMsg)
2830
}
2931

30-
func AsBizError(err error) *BizErr {
31-
if bizerr, ok := err.(*BizErr); ok && bizerr != nil {
32-
return bizerr
32+
func IsBizError(err error) (*BizErr, bool) {
33+
if bizErr, ok := err.(*BizErr); ok {
34+
return bizErr, true
3335
}
34-
return nil
36+
return nil, false
3537
}

0 commit comments

Comments
 (0)