ONDC按位置搜索实现异常:构造Payload后未获预期结果
ONDC按位置搜索无预期结果排查方案
位置参数合规性检查
- 补充
location.city字段:部分BPP会同时校验context.city和fulfillment.end.location.city,建议在位置节点中补充与context一致的城市编码,确保地域过滤逻辑生效:"end": { "location": { "gps": "12.981243,77.595034", "city": "std:080" } } - 简化GPS精度:将坐标精度调整为6位小数(如
12.981243,77.595034),避免因精度过高导致BPP解析异常。
过滤逻辑优化
- 移除不必要的
item过滤:当前Payload中intent.item.descriptor.name: "snapbizz"会强制过滤名称含该关键词的结果,若需纯位置搜索,直接删除intent.item节点,避免缩小搜索范围。
Context参数校验
- 确认Domain匹配:
ONDC:RET10对应零售场景,若对接的是餐饮配送类BPP,需将domain改为ONDC:FOD10,否则BPP会拒绝处理。 - 延长TTL时长:将
ttl从PT30S调整为PT60S,避免请求因超时提前终止,导致未获取完整结果。
冗余字段清理
- 移除
payment节点:搜索阶段无需传递买家 finder fee 相关参数,该字段可能干扰BPP的搜索逻辑,建议暂时删除。
测试验证步骤
- 使用极简Payload测试:发送仅包含位置和基础context的请求,确认是否能返回结果:
{ "context": { "domain": "ONDC:RET10", "country": "IND", "city": "std:080", "action": "search", "core_version": "1.1.0", "bap_id": "****************", "bap_uri": "********************", "transaction_id": "c0c2f570-df00-4f58-ae62-fe737fe8e5be", "message_id": "7f6f1fad-df2e-4a78-9c5e-b0322e6a87ab", "timestamp": "2024-11-11T18:09:52.493Z", "ttl": "PT60S" }, "message": { "intent": { "fulfillment": { "type": "Delivery", "end": { "location": { "gps": "12.981243,77.595034", "city": "std:080" } } } } } } - 查看BPP返回的错误信息:若请求失败,检查返回中的
error字段,根据ONDC标准错误码(如INVALID_LOCATION、NO_PROVIDERS)定位具体问题。
内容的提问来源于stack exchange,提问作者Rashmi Jm
相关产品推荐
相关产品推荐

