外卖霸王餐 CPS 接口对接(微客云・全流程落地版)
外卖霸王餐 CPS 核心是官方直连 + 鉴权签名 + 全链路闭环,用微客云可跳过官方复杂申请,直接获取稳定接口与技术支持,7 步快速跑通。
一、前置准备(缺一不可)
表格
| 准备项 | 具体内容 | 作用 |
|---|---|---|
| 微客云账号 | 企业认证(个体 / 企业均可),联系客服开通霸王餐 API 权限 | 获取 AppKey、AppSecret、PID 等核心凭证 |
| 主体资质 | 营业执照、法人身份证、企业微信小程序(已认证) | 对接官方联盟与小程序挂载,个人无法开通支付与 CPS |
| 开发环境 | 服务器(公网可访问)、开发工具(PHP/Java/Python)、HTTPS 域名 | 接口调用与回调通知,避免内网 / HTTP 被拦截 |
| 活动规则 | 确定模式(免费试吃 / 0 元抽奖 / 低价体验)、核销主体(骑手 / 门店 / 平台) | 匹配接口参数,避免活动与接口不兼容 |
二、核心对接流程(7 步可直接执行)
第 1 步:开通微客云霸王餐权限
- 登录微客云开放平台(open.wikeyun.cn),完成企业实名认证;
- 联系客服提交业务场景(小程序 / 社群 / H5),申请外卖霸王餐 CPS 权限;
- 审核通过后,在后台获取AppKey、AppSecret、接口基础地址 (如https://api.wikeyun.cn/v1/bestmeal)。
第 2 步:鉴权签名(接口安全核心)
微客云霸王餐接口采用HTTPS POST + HMAC-SHA256 签名,所有请求必须携带公共参数,步骤如下:
- 收集所有业务参数(如 city、latitude、longitude、activity_id);
- 参数按ASCII 码升序排序 ,拼接为
key=value&key2=value2格式; - 追加
AppSecret到拼接字符串末尾,通过 SHA256 算法生成签名,转大写后作为sign参数; - 公共参数固定:
app_key(你的 AppKey)、timestamp(当前时间戳,单位秒)、nonce(随机字符串,防重放)、sign(生成的签名)。
第 3 步:核心接口调用(附 PHP 示例)
1. 活动列表 / 详情(展示可参与霸王餐)
-
接口地址:
https://api.wikeyun.cn/v1/bestmeal/list(活动列表)、https://api.wikeyun.cn/v1/bestmeal/detail(活动详情) -
请求方式:HTTPS POST
-
关键参数:
city(城市编码,如南京 = 320100)、latitude/longitude(用户经纬度)、category(品类,如快餐 = 10)、activity_id(活动 ID,详情接口必填) -
PHP 示例代码:
<?php // 配置参数 $appKey = "你的AppKey"; $appSecret = "你的AppSecret"; $apiUrl = "https://api.wikeyun.cn/v1/bestmeal/list"; // 业务参数 $params = [ "app_key" => $appKey, "city" => "320100", // 南京城市编码 "latitude" => "32.0617", "longitude" => "118.7796", "category" => "10", // 快餐品类 "timestamp" => time(), "nonce" => uniqid() ]; // 生成签名 ksort($params); // ASCII升序排序 $signStr = http_build_query($params) . $appSecret; $params["sign"] = strtoupper(hash("sha256", $signStr)); // 发送请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apiUrl); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 生产环境需开启SSL校验 $response = curl_exec($ch); curl_close($ch); // 解析结果 $result = json_decode($response, true); if ($result["code"] == 0) { foreach ($result["data"] as $activity) { echo "活动ID:{$activity["activity_id"]},标题:{$activity["title"]},库存:{$activity["stock"]}\n"; } } else { echo "接口调用失败:{$result["message"]}"; } ?>