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>
38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
# 美团联盟 CPS 开放接口(meituan)
|
||
|
||
> 文件:`app/integrations/meituan.py` | 关联接口:[meituan-coupons](../api/meituan-coupons.md) · [meituan-feed](../api/meituan-feed.md) · [meituan-referral-link](../api/meituan-referral-link.md) | [← 集成索引](./README.md)
|
||
|
||
## 作用
|
||
调美团联盟 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 文档「备注」。
|