小微商户进件之上传图片

在开发微信接口项目中,作者遇到了小微商户图片上传的问题。使用TP5.0框架,起初尝试原生PHP方法,但遇到困难。通过调试发现,`media`参数需要上传文件本身而不是文件路径。最终,通过`CURLFile`解决了问题,成功上传图片。此过程适用于PHP7以上版本。
摘要由CSDN通过智能技术生成

最近公司在开发一个项目,是从外面接回来的系统,涉及微信开发这块,由于系统已经集成了部分的微信接口,所以没有使用EasyWechat,自己手写小微商户进件功能,今天写了上传图片功能,说说我遇到的坑吧

图片上传接口
https://api.mch.weixin.qq.com/secapi/mch/uploadmedia

请求参数
图片上传接口参数
用的是tp5.0框架,上传图片一开始用的是

Request::instance()->file();

不过不大清楚用法,打印出的数据无法获取,因此调试阶段直接采用原生写法

$file = $_FILES;

这里个人感觉最大的坑是media参数,一直不太懂,按照文档的请求示例

请求示例:
curl --cert ./apiclient_cert.pem --key ./apiclient_key.pem -F 'mch_id=1000000000' -F 'media_hash=709d1e858d2ef9d0501cc053668b2872' -F 'sign=D675A1E471DBF7C0B1AC5883B5BDA9EF' -F 'media=@test.jpg' https://api.mch.weixin.qq.com/secapi/mch/uploadmedia

我觉得media应该是要上传的文件前面加’@'

$data['media'] = '@'.$path;

结果返回Empty reply from server,百度找答案,看到一个网友说要上传的不是文件地址,是文件本身,于是按照该网友的写法

$data['media'] = fopen($path,<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值