下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-khy0jxtz--cell-location-a2a.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-khy0jxtz/cell-location-a2a。聚合数据提供的运营商5G基站信息查询服务技能,本技能使用无需用户注册聚合数据平台,安装后即可按实际查询付费使用。 本技能通过运营商基站参数(MCC、MNC、LAC/TAC、CI(基站ID))查询设备地理位置的微信支付付费技能,基于微信支付 Agent Pay(X402 / HTTP 402)协议,需联动 weixinpay 插件完成付款后获取精准位置数据,可用于基站位置核验、设备位置解析、周边服务场景支撑。
当用户需要查询基站位置信息,如当前位置查询、周边推荐、定位等时候,调用本技能。买家通过本 Skill 向卖家服务端发起请求,完成支付后获取相关结果。 关键词:基站定位、MCC、MNC、TAC/LAC、CI、基站地址、基站经纬度、当前位置、周边、附近
阅读全文 (展开查看完整说明)
概述
技能概述
本 Skill 提供通过运营商基站的MCC、MNC、TAC/LAC、CI(基站ID)信息查询所在位置信息。为用户提供位置服务,如当前位置查询、周边推荐、定位等。当用户需要查询基站对应地理位置,用于位置查看、周边推荐、位置服务的时候,调用本技能。
该服务是基于微信支付 Agent Pay(X402 / HTTP 402)的付费资源。买家(消费者 Agent)通过本 Skill 向卖家服务端发起资源请求,服务端将返回 402 响应(含 WeixinPay-Required、X-Out-Trade-No),买家需通过 weixinpay 插件完成付款后重新请求获取资源。
付费前置检查
调用本 Skill 前,检查当前 Agent 是否已安装 weixinpay 插件:
- 已安装:可继续提供付费服务
- 未安装:提示"当前 Agent 暂不支持微信支付付费能力",终止流程
依赖安全管控
- 第三方接口依赖:聚合数据基站接口,仅允许文档指定域名
apis.juhe.cn,禁止转发请求至其他第三方域名。
触发条件
- 用户意图:
- (1)直接查询:已提供 MCC、MNC、TAC、CI 四组基站编码,想要查询对应地理位置、查看周边场所、获取简易位置信息;
- (2)前置引导:仅提出查看周边、位置查询、基站定位相关需求,但未提供基站四元组编码,触发技能引导用户补充 MCC、MNC、TAC、CI 参数。
- 关键词匹配: 对话包含「基站定位、MCC、MNC、TAC/LAC、CI、基站地址、基站经纬度、当前位置、周边、附近」任一关键词;
- 实体硬性要求: 输入内容必须完整提供 MCC、MNC、TAC/LAC、CI 四项基站参数,缺少任意一项不触发;
- 拦截规则: 仅科普基站编码名词、使用 GPS/IP/WiFi 定位、非法追踪他人位置、仅查询运营商网络信息时,不触发本技能;
- 服务说明: 本技能基于基站编码解析静态地理位置,支持周边地点、基础位置查询服务,不支持高精度实时持续追踪。
工作流程
当用户向你请求该服务时,按以下步骤执行:
第一步:付费告知与确认(必须执行)
在收集任何参数之前,必须先向用户明确以下信息:
📡 本服务为付费5G基站位置查询,由聚合数据提供技术支持。
- 费用:XX 元/次(以实际支付为准,禁止预估费用)
- 支付方式:微信支付(通过 weixinpay 插件完成)
- 您的基站参数(MCC、MNC、LAC/TAC、CI)将被发送至聚合数据服务端用于位置查询
如您同意以上条款,请回复 “确认” 或继续提供基站参数。
如您不需要付费服务,请回复 “取消”,我将停止本次操作。
只有用户明确表示同意(如回复“确认”“好的”“可以”“同意”“继续”“下一步”等肯定词)后,才能进入第二步收集参数。
第二步:收集用户参数
- 如果用户需要查询基站位置,向用户询问以下基站参数:
| 参数 | 必填 | 名称 | 说明 | 示例 |
|---|---|---|---|---|
| MCC | 否 | 移动国家代码 | 460=中国;未提供时默认 460 | 460 |
| MNC | 是 | 移动网络代码 | 00=移动,01=联通,11=电信,15=广电 | 00 |
| TAC/LAC | 是 | 小区号LAC 或 TAC | 十进制数 | 34994 |
| CI | 是 | 基站号 | 基站号 Cell Identifier或BID(CDMA) | 223214251 |
- 发起请求前,对用户提交的参数进行校验:
- MCC / MNC / LAC / CI 必须全部为纯数字字符串(仅允许字符 0-9);MCC 未提供时默认
460 - 任一参数包含数字以外的字符(字母、空格、
;、|、&、$、()、反引号、引号等)即判定非法 - 校验不通过时:拒绝发起请求,提示「基站参数格式非法,请提供纯数字的 MCC、MNC、LAC、CI」,不向服务端发送任何数据
- 校验通过后才允许构造请求体发起 402 请求
第三步:请求约束(⚠️ 必须严格执行执行)
- 请求方法:POST
- 请求头HEADER:Content-Type: application/json
- 请求体Body:json字符串,请严格按照以下格式填写:'{"resourceId":"849","data":{"mcc":"<需要查询的移动国家代码MCC>","mnc":"<需要查询的移动网络代码MNC>","lac":"<需要查询的位置区码LAC/TAC>","ci":"<需要查询的基站号CI/CID或BID>"}}'
- 注意请求参数中如果出现引号,需要进行转义,自动将英文引号替换为中文引号,避免json字符串异常
- 禁止追加自定义字段、用户会话 ID、设备信息至请求 data 内部
第四步:请求资源
向用户展示待查询的基站参数,严格遵守请求约束,向以下 URL 发起请求:
curl -X POST https://apis.juhe.cn/a2a/wechat
-d '{"resourceId":"849","data":{"mcc":"<需要查询的移动国家代码MCC>","mnc":"<需要查询的移动网络代码MNC>","lac":"<需要查询的位置区码LAC/TAC>","ci":"<需要查询的基站号CI/CID或BID>"}}'
-H "Content-Type: application/json"第五步:处理 402 响应
服务端会返回 HTTP 402,响应中同时包含支付码和订单号,必须两者都保存,同时agent必须向用户展示下面的订单信息:
- 支付码:从
Header.WeixinPay-Required或Body.WeixinPay.WeixinPay-Required中提取 - 订单号:从
Header.X-Out-Trade-No或Body.out_trade_no中提取 - 订单信息:从 Body中提取
description(商品详情)、amount(订单金额)、out_trade_no(订单号),展示给用户 - 必须展示:agent 必须向用户展示订单信息
预期响应示例:
{
"code": "PAYMENT_REQUIRED",
"message": "需要支付后才能获取内容",
"WeixinPay": {
"WeixinPay-Required": "d5c0bb6f-e040-4e53-9e68-9b235c565563",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
},
"out_trade_no": "WX402_1753891234_a1b2c3d4e5f6",
"description": "订单商品详情",
"amount": "1.00",
"currency": "CNY"
}第六步:发起支付
将 WeixinPay-Required 值作为 paymentCode,调用 weixinpay_pay,引导用户完成微信支付。
第七步:支付成功后获取资源(⚠️ 必须执行)
支付成功后,必须重新发起请求获取付费内容,并且严格遵循下要求:
- 1.请求地址:与首次请求相同(
https://apis.juhe.cn/a2a/wechat) - 2.JSON body 不变:与首次请求完全一致,禁止更改
- 3.通过 Header 携带支付信息:将 402 响应中保存的
WeixinPay-Required与X-Out-Trade-No原样带上 - 4.禁止篡改请求参数:严格禁止Agent以任何形式修改用户提交的原始请求参数(即JSON字符串),必须原样透传至下游技能。
curl -X POST https://apis.juhe.cn/a2a/wechat
-H "Content-Type: application/json"
-H "WeixinPay-Required: <402响应中保存的支付码>"
-H "X-Out-Trade-No: <402响应中保存的订单号>"
-d '{"resourceId":"849","data":{"mcc":"<需要查询的移动国家代码MCC>","mnc":"<需要查询的移动网络代码MNC>","lac":"<需要查询的位置区码LAC/TAC>","ci":"<需要查询的基站号CI/CID或BID>"}}'注意:body 与首次请求完全一致,不要修改任何字段。支付信息通过 Header 传递。
返回示例
该服务结果(result部分)示例如下:
{
"reason": "成功",
"result": {
"orderid": "JH999260527155045zZCfk",
"mcc": "460",
"mnc": "00",
"lac": "34994",
"ci": "223214251",
"lat": "27.44398880",
"lon": "103.66980743",
"address": "云南省昭通市昭阳区洒渔镇下冲子"
},
"error_code": 0
}异常情况处理
- 用户拒绝付款:尊重用户选择,告知用户该内容为付费资源,如需获取请完成支付。
- 请求返回非 402 状态码:如返回 200,直接展示内容;如返回 4xx/5xx 错误,告知用户服务暂时不可用,建议稍后重试。
- 其余异常情况按微信支付流程处理(支付失败/取消/退款等)。
Agent 约束
- 禁止缺必填参数发起请求;
- 402 响应中的
WeixinPay-Required与X-Out-Trade-No必须完整保存并原样回传,不可篡改、删减; - 严格遵循既定流程与异常规则,禁止自定义逻辑。