美团配送php,PHP对接美团配送接口遇到的坑

本文记录了在PHP对接美团配送接口时遇到的问题,包括参数传递需转换为特定字符串格式,签名加密过程中中文编码问题,以及如何进行联调测试。通过解决这些问题,成功实现了接口的正确对接。
摘要由CSDN通过智能技术生成

最近对接美团配送,在初次调用接口的时候,就遇到了几个坑,尽管美团配送开发文档比较规范,可还是有不够详尽的地方,在对接的时候容易踩坑。

一、参数传递

在调用接口传参的时候,都使用post请求方式,我尝试了将参数以数组、json、XML的形式传递,皆返回错误信息:缺少xxx参数,我仔细检查,参数都有!

没办法对接到他们的技术,而且他们的客服又不懂,能查的资料又很少,费好大劲终于知道参数要自己拼接成类似于a=&c=3&b=1的字符串,然后传递过去。

二、签名加密

鉴于参数传递要拼接成key1=value1&key2=value2的形式,我就偷懒直接使用了http_build_query()函数来处理参数,结果一直报签名错误。

原因在于:http_build_query()方法会将中文进行urlencode编码,也就是自己在生成签名的时候,用的是中文,但是传递参数的时候中文就成了urlencode编码之后的字符串,很自然而然的对不上。

原始数据:

$product = [

'id' => 1,

'title' => '茅台飞天52°',

'product_class_title' => '酒水/饮料',

'price' => 9.01,

];

http_build_query()函数处理后数据:

id=1&title=%E8%8C%85%E5%8F%B0%E9%A3%9E%E5%A4%A952%C2%B0&product_class_title=%E9%85%92%E6%B0%B4%2F%E9%A5%AE%E6%96%99&price=9.01

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值