"自定义请求"如何上传文件
aidevjoe opened this issue · 11 comments
aidevjoe commented
请教一下,使用"自定义请求"参数涉及到文件时,一直报错"PARAM_ILLEGAL | 入参不合法"
支付宝文档
实现
func UploadImage(file *multipart.FileHeader, app ApplicationType) (*ImageUploadResponse, error) {
client, err := client(app)
if err != nil {
return nil, err
}
fileExt := path.Ext(file.Filename)
// 读取文件。
f, openError := file.Open()
if openError != nil {
return nil, errors.New("function file.Open() Failed, err:" + openError.Error())
}
defer f.Close()
fileContents, err := ioutil.ReadAll(f)
if err != nil {
return nil, err
}
p := alipay.NewPayload("alipay.merchant.image.upload")
p.Set("image_type", strings.TrimLeft(strings.ToLower(fileExt), "."))
p.Set("image_content", fileContents)
var result ImageUploadResponse
err = client.Request(p, &result)
if err != nil {
return nil, err
}
if !result.IsSuccess() {
return nil, errors.New(result.SubMsg)
}
return &result, nil
}
smartwalle commented
可以使用 v3.2.13 版本,参照 https://github.com/smartwalle/alipay#%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0
aidevjoe commented
使用商家上传接口还是无法上传,但是示例中的上传接口可以。发现上传成功后文件ID是通用的,也算解决了。感谢🙏
smartwalle commented
我测试 https://opendocs.alipay.com/mini/02ctgk?pathHash=c08922b1 这个接口是可以的,你再确认一下是不是权限的问题。
smartwalle commented
aidevjoe commented
应该不是权限问题,「交易支付投诉处理」API中除了上传图片接口失败,其他都可以,所以可以排除权限问题
smartwalle commented
我小程序没有这个权限,没有网页应用可以测试。你的返回结果是什么?
aidevjoe commented
之前版本和最新版本都是返回 PARAM_ILLEGAL | 入参不合法
aidevjoe commented
smartwalle commented
企业账号才有,我是个人账号,你添加这个权限试试
aidevjoe commented
已经勾选了,不然其他接口也调用不了。截图中是另外一个应用。
smartwalle commented
md,我找到原因了,biz_content 这个字段,其它接口没有值的时候可以传 {},就这个接口不行。