|
|
@@ -145,7 +145,7 @@ class UserAddressRepository extends BaseRepository
|
|
145
|
145
|
* 调用阿里云市场地址解析接口,将完整的地址文本解析为省/市/区/街道等结构化信息
|
|
146
|
146
|
*
|
|
147
|
147
|
* 接口文档: https://market.aliyun.com/detail/cmapi00067026
|
|
148
|
|
- * 请求方式: GET
|
|
|
148
|
+ * 请求方式: POST
|
|
149
|
149
|
* 认证方式: Authorization:APPCODE
|
|
150
|
150
|
*
|
|
151
|
151
|
* @param string $address 待解析的地址文本,如 "北京市朝阳区建国路88号SOHO现代城A座1508室"
|
|
|
@@ -170,13 +170,13 @@ class UserAddressRepository extends BaseRepository
|
|
170
|
170
|
return ['code' => -2, 'msg' => $msg, 'data' => []];
|
|
171
|
171
|
}
|
|
172
|
172
|
|
|
173
|
|
- $url = rtrim($config['gatewayUrl'] ?? 'https://kzaddress2.market.alicloudapi.com', '/')
|
|
174
|
|
- . ($config['apiPath'] ?? '/api/address/parse');
|
|
|
173
|
+ $url = rtrim($config['gatewayUrl'] ?? 'https://slyparcel.market.alicloudapi.com', '/')
|
|
|
174
|
+ . ($config['apiPath'] ?? '/v2/express_address/query');
|
|
175
|
175
|
|
|
176
|
176
|
$header = ['Authorization:APPCODE ' . $appCode];
|
|
177
|
177
|
|
|
178
|
178
|
try {
|
|
179
|
|
- $res = HttpService::getRequest($url, ['address' => $address], $header);
|
|
|
179
|
+ $res = HttpService::postRequest($url, ['rawAddress' => $address], $header);
|
|
180
|
180
|
if ($res === false) {
|
|
181
|
181
|
$msg = '地址解析请求失败';
|
|
182
|
182
|
Log::error($msg . ':' . $url . ',地址:' . $address);
|
|
|
@@ -190,6 +190,20 @@ class UserAddressRepository extends BaseRepository
|
|
190
|
190
|
return ['code' => -4, 'msg' => $msg, 'data' => []];
|
|
191
|
191
|
}
|
|
192
|
192
|
|
|
|
193
|
+ // 接口返回格式:{"msg":"成功","success":true,"code":200,"data":{"orderNo":"...","data":{...}}}
|
|
|
194
|
+ // 提取内层 data.data 作为解析结果
|
|
|
195
|
+ if (isset($result['code']) && $result['code'] == 200 && isset($result['data']['data'])) {
|
|
|
196
|
+ return ['code' => 200, 'msg' => '成功', 'data' => $result['data']['data']];
|
|
|
197
|
+ }
|
|
|
198
|
+
|
|
|
199
|
+ // 如果外层 code 不是 200,返回接口的错误信息
|
|
|
200
|
+ if (isset($result['code']) && $result['code'] != 200) {
|
|
|
201
|
+ $msg = $result['msg'] ?? '地址解析失败';
|
|
|
202
|
+ Log::error($msg . ',原始数据:' . $res);
|
|
|
203
|
+ return ['code' => $result['code'], 'msg' => $msg, 'data' => []];
|
|
|
204
|
+ }
|
|
|
205
|
+
|
|
|
206
|
+ // 兜底:返回原始结果
|
|
193
|
207
|
return ['code' => 200, 'msg' => '成功', 'data' => $result];
|
|
194
|
208
|
} catch (\Throwable $e) {
|
|
195
|
209
|
$msg = '地址解析异常:' . $e->getMessage();
|