You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP向REST API POST数据时混合数组与对象构造校验失败问题

问题根源

Postman示例JSON中addresses下的billing字段是包含单个地址对象的索引数组(被[]包裹),但你现有PHP代码中billing直接绑定了单个关联数组,序列化为JSON后会生成对象而非数组,不符合API的结构要求,因此触发地址校验失败。

修正后的PHP代码
$billingAddr = array(
    "supplement" => $billingAddress["streetDetails"] ?? null, // 空值兜底,匹配示例中null的取值要求
    "street" => $billingAddress["street"],
    "zip" => $billingAddress["zipCode"],
    "city" => $billingAddress["city"],
    "countryCode" => $billingAddress["country"],
);
$params = [
    "version" => 0,
    "roles" => $roles,
    "person" => $person,
    "emailAddresses" => $emailAddresses,
    "addresses" => [
        // 把地址对象放在索引数组里,匹配API要求的结构
        "billing" => [$billingAddr]
    ]
];
额外校验建议
  • 调用json_encode序列化参数时,不要添加JSON_FORCE_OBJECT参数,否则会把PHP的索引数组强制转为JSON对象,破坏billing的数组结构
  • 可以把序列化后的JSON字符串和Postman中正常请求的JSON做逐行对比,快速定位其他可能的结构差异

内容的提问来源于stack exchange,提问作者Helio Felix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:06:08