Skip to content

Commit 7454003

Browse files
committed
udpate
1 parent f1b0cc3 commit 7454003

7 files changed

+106
-5
lines changed

alipay/ant.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ func (a *Client) AntMerchantExpandIndirectImageUpload(ctx context.Context, bm go
147147
}
148148
bm.Set("image_content", file)
149149
var bs []byte
150-
if bs, err = a.FileUploadRequest(ctx, bm, file, "ant.merchant.expand.indirect.image.upload"); err != nil {
150+
if bs, err = a.FileUploadRequest(ctx, bm, "ant.merchant.expand.indirect.image.upload"); err != nil {
151151
return nil, err
152152
}
153153
aliRsp = new(AntMerchantExpandIndirectImageUploadRsp)

alipay/ant_test.go

+29
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package alipay
22

33
import (
4+
"io"
5+
"os"
46
"testing"
57

68
"github.com/go-pay/gopay"
@@ -112,3 +114,30 @@ func TestAntMerchantShopClose(t *testing.T) {
112114
}
113115
xlog.Debug("aliRsp:", *aliRsp)
114116
}
117+
118+
func TestAntMerchantExpandIndirectImageUpload(t *testing.T) {
119+
// 请求参数
120+
logo, err := os.Open("../logo.png")
121+
if err != nil {
122+
xlog.Errorf("os.Open(%s),error:%+v", "../logo.png", err)
123+
return
124+
}
125+
xlog.Warnf("fileName: %s", logo.Name())
126+
allBs, err := io.ReadAll(logo)
127+
if err != nil {
128+
xlog.Errorf("io.ReadAll(%s),error:%+v", logo.Name(), err)
129+
return
130+
}
131+
f := &gopay.File{
132+
Name: "logo",
133+
Content: allBs,
134+
}
135+
bm := make(gopay.BodyMap)
136+
bm.Set("image_type", "png")
137+
aliRsp, err := client.AntMerchantExpandIndirectImageUpload(ctx, bm, f)
138+
if err != nil {
139+
xlog.Errorf("client.AntMerchantExpandIndirectImageUpload(),error:%+v", err)
140+
return
141+
}
142+
xlog.Debug("aliRsp:", *aliRsp)
143+
}

alipay/goods_api.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func (a *Client) MerchantItemFileUpload(ctx context.Context, file *gopay.File) (
1919
bm.Set("file_content", file) //素材固定值
2020

2121
var bs []byte
22-
if bs, err = a.FileUploadRequest(ctx, bm, file, "alipay.merchant.item.file.upload"); err != nil {
22+
if bs, err = a.FileUploadRequest(ctx, bm, "alipay.merchant.item.file.upload"); err != nil {
2323
return nil, err
2424
}
2525
aliRsp = new(MerchantItemFileUploadRsp)

alipay/goods_api_test.go

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package alipay
2+
3+
import (
4+
"io"
5+
"os"
6+
"testing"
7+
8+
"github.com/go-pay/gopay"
9+
"github.com/go-pay/xlog"
10+
)
11+
12+
func TestMerchantItemFileUpload(t *testing.T) {
13+
// 请求参数
14+
logo, err := os.Open("../logo.png")
15+
if err != nil {
16+
xlog.Errorf("os.Open(%s),error:%+v", "../logo.png", err)
17+
return
18+
}
19+
xlog.Warnf("fileName: %s", logo.Name())
20+
allBs, err := io.ReadAll(logo)
21+
if err != nil {
22+
xlog.Errorf("io.ReadAll(%s),error:%+v", logo.Name(), err)
23+
return
24+
}
25+
f := &gopay.File{
26+
Name: "logo",
27+
Content: allBs,
28+
}
29+
aliRsp, err := client.MerchantItemFileUpload(ctx, f)
30+
if err != nil {
31+
xlog.Errorf("client.AntMerchantExpandIndirectImageUpload(),error:%+v", err)
32+
return
33+
}
34+
xlog.Debug("aliRsp:", *aliRsp)
35+
}

alipay/marketing_api_test.go

+30
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package alipay
22

33
import (
4+
"io"
5+
"os"
46
"testing"
57

68
"github.com/go-pay/gopay"
@@ -104,3 +106,31 @@ func TestMarketingCampaignCashDetailQuery(t *testing.T) {
104106
}
105107
xlog.Debug("aliRsp.Response:", aliRsp.Response)
106108
}
109+
110+
func TestMarketingMaterialImageUpload(t *testing.T) {
111+
// 请求参数
112+
logo, err := os.Open("../logo.png")
113+
if err != nil {
114+
xlog.Errorf("os.Open(%s),error:%+v", "../logo.png", err)
115+
return
116+
}
117+
xlog.Warnf("fileName: %s", logo.Name())
118+
allBs, err := io.ReadAll(logo)
119+
if err != nil {
120+
xlog.Errorf("io.ReadAll(%s),error:%+v", logo.Name(), err)
121+
return
122+
}
123+
f := &gopay.File{
124+
Name: "logo",
125+
Content: allBs,
126+
}
127+
bm := make(gopay.BodyMap)
128+
bm.Set("file_key", "PROMO_VOUCHER_IMAGE").
129+
Set("merchant_access_mode", "SELF_MODE")
130+
aliRsp, err := client.MarketingMaterialImageUpload(ctx, bm, f)
131+
if err != nil {
132+
xlog.Errorf("client.AntMerchantExpandIndirectImageUpload(),error:%+v", err)
133+
return
134+
}
135+
xlog.Debug("aliRsp:", *aliRsp)
136+
}

alipay/marketing_voucher.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func (a *Client) MarketingMaterialImageUpload(ctx context.Context, bm gopay.Body
2020
}
2121
bm.Set("file_content", file)
2222
var bs []byte
23-
if bs, err = a.FileUploadRequest(ctx, bm, file, "alipay.marketing.material.image.upload"); err != nil {
23+
if bs, err = a.FileUploadRequest(ctx, bm, "alipay.marketing.material.image.upload"); err != nil {
2424
return nil, err
2525
}
2626
aliRsp = new(MarketingMaterialImageUploadRsp)

alipay/request.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ func (a *Client) PageExecute(ctx context.Context, bm gopay.BodyMap, method strin
281281
}
282282

283283
// 文件上传
284-
func (a *Client) FileUploadRequest(ctx context.Context, bm gopay.BodyMap, file *gopay.File, method string) (bs []byte, err error) {
284+
func (a *Client) FileUploadRequest(ctx context.Context, bm gopay.BodyMap, method string) (bs []byte, err error) {
285285
var (
286286
aat string
287287
)
@@ -321,12 +321,19 @@ func (a *Client) FileUploadRequest(ctx context.Context, bm gopay.BodyMap, file *
321321
if aat != gopay.NULL {
322322
pubBody.Set("app_auth_token", aat)
323323
}
324+
// 文件也需要签名
325+
for k, v := range bm {
326+
pubBody.Set(k, v)
327+
}
324328
// sign
325329
sign, err := a.getRsaSign(pubBody, pubBody.GetString("sign_type"))
326330
if err != nil {
327331
return nil, fmt.Errorf("GetRsaSign Error: %w", err)
328332
}
329-
//pubBody.Set("file_content", file.Content)
333+
// 文件签名完移除query params
334+
for k, _ := range bm {
335+
pubBody.Remove(k)
336+
}
330337
pubBody.Set("sign", sign)
331338
if a.DebugSwitch == gopay.DebugOn {
332339
xlog.Debugf("Alipay_Request: %s", pubBody.JsonBody())

0 commit comments

Comments
 (0)