You need to enable JavaScript to run this app. PHP如何向数组添加P_O_NUMBER类型CustomerReferences生成正确SOAP请求
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何向数组添加P_O_NUMBER类型CustomerReferences生成正确SOAP请求

你当前的写法存在两处结构错误:

  1. 初始数组中CustomerReferences为单关联数组,仅能存储一条引用记录,无法满足多标签的序列化要求
  2. 直接使用$parcelinfo["1"][]添加数据时,会将第二条引用存到和SequenceNumber、Weight平级的数字索引下,结构完全不符合SOAP字段规范

第一步:调整初始数组的CustomerReferences结构

将单条记录改为二维索引数组存储,方便后续追加多条记录:

$parcelinfo = array();
$parcelinfo["1"] = array(
    'SequenceNumber' => 1 + 1,
    'GroupPackageCount' => 1,
    'Weight' => array(
        'Value' => 10,
        'Units' => 20
    ),
    // 改成二维索引数组,每个元素对应一个CustomerReferences标签
    'CustomerReferences' => array(
        array(
            'CustomerReferenceType' => 'CUSTOMER_REFERENCE',
            'Value' => 12345
        )
    )
);

第二步:追加P_O_NUMBER类型的引用记录

直接向CustomerReferences数组追加元素即可:

$parcelinfo["1"]['CustomerReferences'][] = array(
    'CustomerReferenceType' => 'P_O_NUMBER',
    'Value' => "TESTSKU"
);

调整后CustomerReferences是包含多个子元素的索引数组,PHP的SOAP客户端序列化时会自动将每个子元素生成独立的<CustomerReferences>标签,完全匹配SOAP请求的格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 12:36:05