3d1e8969e6
- 新增 docs/integrations/(README + jiguang/sms/meituan/pangle/wxpay 各一篇): 记录各 SDK 集成的签名/验签/加解密/协议细节与踩坑(对齐 app/integrations 分层) - docs/api 接口文档变薄: 受影响接口头部加「集成实现」链接,把验签/RSA/CPS 签名 等重逻辑描述移到集成文档;ad-pangle-callback 验签段精简为指针 - docs/api/README 补架构说明(api 薄 / 重逻辑在 integrations) - 后端技术实现.md 目录树补全(福利/钱包/签到/省钱/发奖端点 + crud/integrations 现状), pangle/wxpay 标注移入 integrations - ad_reward_golive_checklist 路径同步 core→integrations Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
美团联盟 CPS 开放接口(meituan)
文件:
app/integrations/meituan.py| 关联接口:meituan-coupons · meituan-feed · meituan-referral-link | ← 集成索引
作用
调美团联盟 CPS 开放接口:查券(列表/搜索)+ 换推广链。
函数 / 异常
| 函数 | 说明 |
|---|---|
query_coupon(...) |
券查询/搜索 → /cps_open/common/api/v1/query_coupon |
get_referral_link(...) |
换推广链 → /cps_open/common/api/v1/get_referral_link |
异常 MeituanCpsError |
HTTP 错误 / 业务 code != 0,api 层翻成 502 |
签名机制(关键)
类阿里云网关 S-Ca 头,但 stringToSign 只有 4 段:
METHOD\n + Content-MD5\n + Headers(按 key 升序 "k:v\n") + Url
没有 Accept / Content-Type / Date 行(加了就签名失败)。签名 = HMAC-SHA256(stringToSign, AppSecret) 的 base64。参与签名的头:S-Ca-Timestamp,S-Ca-App(在 S-Ca-Signature-Headers 里声明)。
入参换算 / 坑
- 经纬度 × 1_000_000 取整传给美团。
- 榜单字段是
listTopiId(美团接口的拼写,少个c,别"纠正"成listTopicId)。 - 有
searchText时走搜索、sort_field默认 6(离我最近);否则按listTopiId出榜单。 - 换链
sid不传则用MT_CPS_DEFAULT_SID;linkTypeList默认[1,3]。
配置
| 配置项 | 说明 |
|---|---|
MT_CPS_APP_KEY / MT_CPS_APP_SECRET |
CPS 网关 AppKey / AppSecret |
MT_CPS_HOST |
网关 host |
MT_CPS_DEFAULT_SID |
默认推广位 sid(渠道) |
MT_CPS_TIMEOUT_SEC |
请求超时 |
备注
美团接口当前无鉴权,且换链的 sid 允许客户端传值覆盖默认渠道——见对应 api 文档「备注」。