摇蓝 發表於 2022-5-18 16:31:00

沃尔玛api接口

<p>接口文档:https://developer.walmart.com/home/us-mp/</p>
<p>沃尔玛api 分为US站点和CA站点</p>
<p>US站点是获取token的方式</p>
<p>MX站点获取方式和US差不多 多一个参数&nbsp;&nbsp;"WM_MARKET: mx",</p>
<p>CA站点是签名的方式</p>
<p>US刷新token</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * walmart获取token ( us站点 和 mx站点 )
   * @url /services/walmart/walmartpromotions/batchupdatetoken
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionBatchupdatetoken() {
      ini_set(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">memory_limit</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">500M</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
      set_time_limit(</span><span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
      $model </span>=YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $</span><span style="color: rgba(0, 0, 255, 1)">where</span> = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"> site in('us','mx') and status=1 </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($id){
            $</span><span style="color: rgba(0, 0, 255, 1)">where</span> .=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"> and id=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">. $id;
      }
      $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select * from yibai_walmart_account where </span><span style="color: rgba(128, 0, 0, 1)">"</span>.$<span style="color: rgba(0, 0, 255, 1)">where</span><span style="color: rgba(0, 0, 0, 1)">;
      $accountList </span>= $model-&gt;getDbConnection()-&gt;createCommand($sql)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($accountList) {
            $i </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
            </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($accountList <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val) {
                $accountInfo </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;findByPk($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($accountInfo) {
                  $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id = $accountInfo[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">client_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                  $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_sec = $accountInfo[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">client_sec</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!empty($accountInfo[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">client_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>] &amp;&amp; !<span style="color: rgba(0, 0, 0, 1)">empty($accountInfo)))
                  {
                        $result </span>= $accountInfo-&gt;<span style="color: rgba(0, 0, 0, 1)">getTokenFromRefreshToken();
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span> (isset($result[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">access_token</span><span style="color: rgba(128, 0, 0, 1)">'</span>]) &amp;&amp; !empty($result[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">access_token</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">])) {
                            $accountInfo</span>-&gt;access_token = $result[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">access_token</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                            $accountInfo</span>-&gt;expires_in = $result[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">expires_in</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                            $accountInfo</span>-&gt;expiry_time = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, time() + $result[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">expires_in</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                            $accountInfo</span>-&gt;update_time = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, time());
                            $accountInfo</span>-&gt;save(<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">);
                            echo $val[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;br/&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
                            $i</span>++<span style="color: rgba(0, 0, 0, 1)">;
                        }
                  }

                }
            }
      }
      echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">共更新账号数:</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$i.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;br/&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    }

    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">
    获取token
    </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getTokenFromRefreshToken()
    {
      $clientId </span>=$<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_id;
      $clientSecret </span>=$<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_sec;
      $site </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">site;
      $qos </span>=<span style="color: rgba(0, 0, 0, 1)"> uniqid();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($site==<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">){
            $header </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization: Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode(<span style="color: rgba(128, 0, 0, 1)">""</span> .$clientId . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $clientSecret . <span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">),
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Content-Type: application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Accept: application/json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME: Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$qos,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.VERSION: 1.0.0</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
            );
      }elseif($site</span>==<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">){
            $header </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_MARKET: mx</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization: Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode(<span style="color: rgba(128, 0, 0, 1)">""</span> .$clientId . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $clientSecret . <span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">),
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Content-Type: application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Accept: application/json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME: Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$qos,
                </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.VERSION: 1.0.0</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
            );
      }

      $param</span>=<span style="color: rgba(0, 0, 0, 1)">array(
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">grant_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">client_credentials</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      );
      $url</span>=<span style="color: rgba(0, 0, 0, 1)">self::TOKEN_URL;
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> self::CurlRequest($url, $param, $header,<span style="color: rgba(128, 0, 128, 1)">600</span><span style="color: rgba(0, 0, 0, 1)">);
    }
   
    </span><span style="color: rgba(0, 0, 255, 1)">private</span> <span style="color: rgba(0, 0, 255, 1)">static</span> function CurlRequest($url, $data=<span style="color: rgba(128, 0, 0, 1)">''</span>, $header=array(), $timeout=<span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      $opts </span>=<span style="color: rgba(0, 0, 0, 1)"> array();
      $opts </span>=<span style="color: rgba(0, 0, 0, 1)"> $url;
      $opts </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
      $opts </span>=<span style="color: rgba(0, 0, 0, 1)"> $header;
      $opts </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!empty($data))<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">POST请求</span>
<span style="color: rgba(0, 0, 0, 1)">      {
            $opts </span>= <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
            $opts </span>= is_array($data) ?<span style="color: rgba(0, 0, 0, 1)"> http_build_query($data) : $data;
      }
      $opts </span>=<span style="color: rgba(0, 0, 0, 1)"> $timeout;
      $opts </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
      $opts </span>= <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
      $ch </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_init();
      curl_setopt_array($ch, $opts);
      $response_raw </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_exec($ch);
      $errno </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_errno($ch);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">0</span> !==<span style="color: rgba(0, 0, 0, 1)"> $errno) { #返回头信息
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> curl_getinfo($ch) + array(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">errno</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$errno, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">error</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(0, 0, 0, 1)">curl_error($ch));
      }
      curl_close($ch);
      $response </span>= json_decode($response_raw, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">is_array($response))
      {
            $response </span>= [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">errno</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(128, 0, 128, 1)">500</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">error</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(0, 0, 0, 1)">$response_raw];
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">echo '&lt;pre&gt;';
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">print_r($response);</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $response;
    }</span></pre>
</div>
<p>&nbsp;&nbsp;追加:</p>
<p>沃尔玛拉取listing 有下载文件形式的&nbsp;getReport&nbsp; (系统自动申请报告,只适合 mx和ca站点)</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 下载压缩包-&gt;actionGetallitemreport(解压压缩包)
   * 拉取Item report
   * 返回与沃尔玛平台上设置的Seller项目相关的所有信息。
   * /services/walmart/walmartlisting/getzip/account_id/1
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionGetZip()
    {
      ini_set(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">memory_limit</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3000M</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
      set_time_limit(</span><span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
      $start_time         </span>= microtime(<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      $account_id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($account_id) {
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">******************    添加执行日志start    **********************</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            $execute_param </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt; <span style="color: rgba(128, 0, 128, 1)">301</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">type_name</span><span style="color: rgba(128, 0, 0, 1)">"</span>   =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">拉取listing压缩文件</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyword</span><span style="color: rgba(128, 0, 0, 1)">"</span>       =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">getzip</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">exp3</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt;<span style="color: rgba(0, 0, 0, 1)"> $account_id,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">exp1</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">walmartlisting</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            );
            YbModel::model(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartExecuteLog</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;<span style="color: rgba(0, 0, 0, 1)">insertData($execute_param);
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">******************    添加执行日志end    **********************</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">

            $idArr </span>=explode(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">,</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,$account_id);
            </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($idArr <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $id){
                $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListingData($id);
                $walmartPostService</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getAllItemreport($id);
            }
      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
            $accountList </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;getInfoByWhere( <span style="color: rgba(128, 0, 0, 1)">"status = 1 and site in('mx','ca')</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
            $accountList </span>= array_column($accountList,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($accountList)){
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($accountList <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  MHelper::runThreadSOCKET(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/services/walmart/walmartlisting/getzip/account_id/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$val);
                  sleep(</span><span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">);
                }
            }
      }
      $end_time </span>= microtime(<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">执行完成, 耗时:</span><span style="color: rgba(128, 0, 0, 1)">'</span> . round(($end_time - $start_time), <span style="color: rgba(128, 0, 128, 1)">3</span>).<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">秒</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      exit;
    }

    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 拉取Item report
   * @param $accountId
   * @return bool|int
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getAllItemreport($accountId)
    {
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> array();

      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/getReport?type=item_ca</span><span style="color: rgba(128, 0, 0, 1)">"</span>;   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">v2-&gt;v3更新时间 2019-10-30</span>
            $extra =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/xml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/xml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/getReport?type=item</span><span style="color: rgba(128, 0, 0, 1)">"</span>;   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">v2-&gt;v3更新时间 2019-10-30</span>
            $extra =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/xml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text/plain</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/getReport?type=item_mx</span><span style="color: rgba(128, 0, 0, 1)">"</span>;   <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">v2-&gt;v3更新时间 2019-10-30</span>
            $extra =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/xml</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text/plain</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }

      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $result</span>=$<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getResult($url, $headers);
      $date </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Ymd</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $path </span>= Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">file_exists($path)) {
            mkdir(Yii::getPathOfAlias(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 128, 1)">0777</span><span style="color: rgba(0, 0, 0, 1)">);
            mkdir($path, </span><span style="color: rgba(128, 0, 128, 1)">0777</span><span style="color: rgba(0, 0, 0, 1)">);
      }

      $filename </span>= $path.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmartreport_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$date.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$accountId.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.zip</span><span style="color: rgba(128, 0, 0, 1)">'</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置文件名
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">$filename =Yii::app()-&gt;params['FILE_BASE_DIR'].'/erp_log/walmartreport/walmartreport_'.$date.'_'.$accountId.'.zip'; </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置文件名</span>
<span style="color: rgba(0, 0, 0, 1)">      file_put_contents($filename,$result);
    }

    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 获取要发送的头部信息
   * @access protected
   * @param string $url 请求沃尔玛的地址
   * @param string $method 请求方式
   * @param array $account_info 包含私钥的沃尔玛账户信息
   * @param array $extra 除默认的头部信息之外每个接口要单独设置的头部信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function getHeaders($url, $method=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $account_info, $extra=<span style="color: rgba(0, 0, 0, 1)">array())
    {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (empty($url)) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认的而且是必须的头部信息</span>
      <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> $default = [
            "WM_SVC.NAME: Walmart Marketplace",
            "WM_QOS.CORRELATION_ID: " . $this-&gt;getRandStr(),
            "WM_SEC.TIMESTAMP: " . $timestamp,
            "WM_SEC.AUTH_SIGNATURE: " . $signature,
            "WM_CONSUMER.CHANNEL.TYPE: " . $api_config['channel_type'],
            "WM_CONSUMER.ID: " . $api_config['consumer_id'],
            "Expect:",
      ]; </span><span style="color: rgba(0, 128, 0, 1)">*/</span>

      <span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site ==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取签名和时间戳</span>
            list($signature, $timestamp) = $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getSignatureAndTimestamp($url, $method, $account_info);
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $timestamp,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $signature,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">channel_type,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">consumer_id,
            ];
      } elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site ==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) {
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_sec),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.ACCESS_TOKEN</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">access_token,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site ==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) {
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_MARKET</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_sec),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.ACCESS_TOKEN</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">access_token,
            ];

      }
      $ss </span>= array_merge($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;header_params,$<span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">,$extra);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">structureHeaders($ss);
    }</span></pre>
</div>
<p>基础类 WalmartAp.php</p>
<div class="cnblogs_code">
<pre>&lt;?<span style="color: rgba(0, 0, 0, 1)">php
</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
*沃尔玛请求接口父类文件
*包含了获取沃尔玛接口签名方法,以及组装沃尔玛头部认证的头部信息
*包含了沃尔玛get接口请求实例,以及post接口请求实例
*所有的沃尔玛相关业务接口均继承本类
* @author    YB
* @version   v3
* @since      1.0
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> WalmartApi {
    </span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function __construct() {
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 生成沃尔玛相关接口的签名和时间戳
   * @access protected
   * @param string $url 要请求的接口的完整url包括参数
   * @param string $method 请求接口的方式(GET,POST)
   * @param array $account_info 包含账户私钥的沃尔玛账户信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span><span style="color: rgba(0, 0, 0, 1)"> function getSignatureAndTimestamp($url, $method, $account_info)
    {   
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">生成以毫秒为单位的时间戳</span>
      list($tmp1, $tmp2) = explode(<span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, microtime());
      $timestamp </span>= (<span style="color: rgba(0, 0, 255, 1)">float</span>)sprintf(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%.0f</span><span style="color: rgba(128, 0, 0, 1)">'</span>, (floatval($tmp1) + floatval($tmp2)) * <span style="color: rgba(128, 0, 128, 1)">1000</span><span style="color: rgba(0, 0, 0, 1)">);

      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">沃尔玛api账户信息包含要签名的私钥
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">$api_config = $account_info;
         
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">引入签名的第三方库</span>
      Yii::import(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application.vendors.*</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
      include_once </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">phpseclib/Crypt/RSA.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      include_once </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">phpseclib/Math/BigInteger.php</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">待签名的字符</span>
      $signature_str = $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;consumer_id . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\n</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $url . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\n</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $method . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\n</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $timestamp . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\n</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      
      $rsa </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Crypt_RSA();
      $rsa</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
      $rsa</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS8);
      $rsa</span>-&gt;loadKey($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;private_key); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> private key</span>
      $rsa-&gt;setHash(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sha256</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $rsa</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
      $signature </span>= $rsa-&gt;<span style="color: rgba(0, 0, 0, 1)">sign($signature_str);

      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">返回签名后的字符和时间戳</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> ;
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 获取要发送的头部信息
   * @access protected
   * @param string $url 请求沃尔玛的地址
   * @param string $method 请求方式
   * @param array $account_info 包含私钥的沃尔玛账户信息
   * @param array $extra 除默认的头部信息之外每个接口要单独设置的头部信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function getHeadersnew($url, $method=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $account_info, $extra=<span style="color: rgba(0, 0, 0, 1)">array())
    {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (empty($url)) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }

      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($account_info)){
            $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site = $account_info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">site</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id = $account_info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">client_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_sec = $account_info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">client_sec</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;access_token = $account_info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">access_token</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;channel_type = $account_info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">channel_type</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site !=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取签名和时间戳</span>
            list($signature, $timestamp) = $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getSignatureAndTimestamp($url, $method, $account_info);
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $timestamp,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $signature,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">channel_type,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">consumer_id,
            ];
      } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_sec),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.ACCESS_TOKEN</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">access_token,
            ];
      }
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;structureHeaders(array_merge($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;header_params,$<span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">,$extra));
    }


    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 获取要发送的头部信息
   * @access protected
   * @param string $url 请求沃尔玛的地址
   * @param string $method 请求方式
   * @param array $account_info 包含私钥的沃尔玛账户信息
   * @param array $extra 除默认的头部信息之外每个接口要单独设置的头部信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function getHeaders($url, $method=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $account_info, $extra=<span style="color: rgba(0, 0, 0, 1)">array())
    {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (empty($url)) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认的而且是必须的头部信息</span>
      <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> $default = [
            "WM_SVC.NAME: Walmart Marketplace",
            "WM_QOS.CORRELATION_ID: " . $this-&gt;getRandStr(),
            "WM_SEC.TIMESTAMP: " . $timestamp,
            "WM_SEC.AUTH_SIGNATURE: " . $signature,
            "WM_CONSUMER.CHANNEL.TYPE: " . $api_config['channel_type'],
            "WM_CONSUMER.ID: " . $api_config['consumer_id'],
            "Expect:",
      ]; </span><span style="color: rgba(0, 128, 0, 1)">*/</span>

      <span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site ==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取签名和时间戳</span>
            list($signature, $timestamp) = $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getSignatureAndTimestamp($url, $method, $account_info);
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $timestamp,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $signature,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">channel_type,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">consumer_id,
            ];
      } elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site ==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) {
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_sec),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.ACCESS_TOKEN</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">access_token,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site ==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) {
            $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_MARKET</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Authorization</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Basic </span><span style="color: rgba(128, 0, 0, 1)">"</span> . base64_encode($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;client_id . <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">"</span> . $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">client_sec),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.ACCESS_TOKEN</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">access_token,
            ];

      }
      $ss </span>= array_merge($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;header_params,$<span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">,$extra);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">structureHeaders($ss);
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 生成随机的数字和字母的组合的一个字符串
   * @access private
   * @return string
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">private</span><span style="color: rgba(0, 0, 0, 1)"> function getRandStr()
    {   
      $chars </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">b</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">c</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">d</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">e</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">f</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">g</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">h</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">i</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">j</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">k</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">l</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">m</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">n</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">o</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">p</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">q</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">s</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">t</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">u</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">v</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">w</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">x</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">y</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">z</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      );
      $chars_len </span>= count($chars) - <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
      shuffle($chars);
      list($letter, $number) </span>= [<span style="color: rgba(128, 0, 0, 1)">""</span>,<span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">];
      </span><span style="color: rgba(0, 0, 255, 1)">for</span> ($i=<span style="color: rgba(128, 0, 128, 1)">0</span>; $i&lt;<span style="color: rgba(128, 0, 128, 1)">4</span>; $i++<span style="color: rgba(0, 0, 0, 1)">) {
                $letter .</span>= $chars;
                $number .</span>= mt_rand(<span style="color: rgba(128, 0, 128, 1)">1</span>, <span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $number . $letter;
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc get方法请求接口获取请求结果
   * @access protected
   * @param string $url 请求的接口地址包括参数
   * @param array $headers 要设置的头部信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span><span style="color: rgba(0, 0, 0, 1)"> function getResult($url, $headers)
    {   
      $ch </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($ch, CURLOPT_HTTPGET, </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, </span><span style="color: rgba(0, 0, 255, 1)">false</span>); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 对认证证书来源的检查</span>
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, <span style="color: rgba(0, 0, 255, 1)">false</span>); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 从证书中检查SSL加密算法是否存在</span>
      curl_setopt($ch, CURLOPT_TIMEOUT, <span style="color: rgba(128, 0, 128, 1)">500</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $data </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_exec($ch);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($_GET[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">istest</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
            $curlInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_getinfo($ch);
         </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> var_dump($data);</span>
            echo <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;pre&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;print_r($curlInfo);
      }
      curl_close($ch);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $data;
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc post方法请求接口获取请求结果
   * @access protected
   * @param string $url 要请求的沃尔玛接口地址
   * @param array $body 要发送请求body
   * @param array $header 要设置的头部信息
   * @param array $formart 返回值类型 xml、json
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function postResult($url, $body, $header,$formart=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      $ch </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_TIMEOUT, </span><span style="color: rgba(128, 0, 128, 1)">120</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_POST, </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch,CURLOPT_ENCODING,</span><span style="color: rgba(128, 0, 0, 1)">""</span>); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 返回数据支持所有编码,不乱码 ;如果为空字符串"",会发送所有支持的编码类型。</span>
<span style="color: rgba(0, 0, 0, 1)">      curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
      $data </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_exec($ch);
      $curlInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_getinfo($ch);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($_GET[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">istest</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
            var_dump($data);
            echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;pre&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;print_r($curlInfo);
            $version </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_version();
            echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;pre&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;print_r($version);
      }
      curl_close($ch);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($formart == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            
      }elseif($formart </span>== <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">xml</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $preg </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/(&lt;|&lt;\/)(?:\w+:)/is</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
            $newXmlStr </span>= preg_replace($preg,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\\1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,$data);
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">echo $newXmlStr;</span>
            $data =<span style="color: rgba(0, 0, 0, 1)"> simplexml_load_string($newXmlStr);
            $data </span>= $data?$data:array(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http_code</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$curlInfo[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http_code</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $data;
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 获取标记已发货接口要发送的请求体的信息
   * @access protected
   * @param array $params 要标记发货要求发送的请求body信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function getShipOrderRequestBodyData($<span style="color: rgba(0, 0, 255, 1)">params</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      $orderLineArr </span>= array(); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">保存多个item</span>
      <span style="color: rgba(0, 0, 255, 1)">if</span>((isset($<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">otherCarrier</span><span style="color: rgba(128, 0, 0, 1)">'</span>])) &amp;&amp; ($<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">otherCarrier</span><span style="color: rgba(128, 0, 0, 1)">'</span>] == <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">OTHER-ST</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)){
            </span><span style="color: rgba(0, 0, 255, 1)">foreach</span>( $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lineNumbers</span><span style="color: rgba(128, 0, 0, 1)">'</span>] <span style="color: rgba(0, 0, 255, 1)">as</span> $key=&gt;<span style="color: rgba(0, 0, 0, 1)">$val ){
                $orderLineArr[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLine</span><span style="color: rgba(128, 0, 0, 1)">"</span>][] =<span style="color: rgba(0, 0, 0, 1)"> array(
                  </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lineNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $val,
                  </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatuses</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatus</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                            array(
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Shipped</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">statusQuantity</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">unitOfMeasurement</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">EACH</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">                                    "amount" =&gt; "1",</span>
                                    <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; !empty($<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val]) &amp;&amp; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val] &gt; <span style="color: rgba(128, 0, 128, 1)">1</span> ?$<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val]:<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                              ),
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingInfo</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrierName</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">otherCarrier</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">otherCarrier</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                    ),
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Standard</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">                                    "trackingURL" =&gt; $params['trackingURL'],</span>
                                    <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingURL</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http://tracking.asendiausa.com/t.aspx?p</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
                              ),
                            ),
                        ),
                  ),
                );
            }
            $add_message </span>=<span style="color: rgba(0, 0, 0, 1)"> array();
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">task_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WALMART_biaoji</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">start_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">end_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">order_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">order_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">platform_order_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">platform_order_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
            $add_message[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WALMART</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
            Yii::app()</span>-&gt;db-&gt;createCommand()-&gt;insert(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">{{system}}.{{mall_api_log}}</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $add_message);

      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
            </span><span style="color: rgba(0, 0, 255, 1)">foreach</span>( $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lineNumbers</span><span style="color: rgba(128, 0, 0, 1)">'</span>] <span style="color: rgba(0, 0, 255, 1)">as</span> $key=&gt;<span style="color: rgba(0, 0, 0, 1)">$val ){
                $orderLineArr[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLine</span><span style="color: rgba(128, 0, 0, 1)">"</span>][] =<span style="color: rgba(0, 0, 0, 1)"> array(
                  </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lineNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $val,
                  </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatuses</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatus</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                            array(
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Shipped</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">statusQuantity</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">unitOfMeasurement</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">EACH</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">                                    "amount" =&gt; "1",</span>
                                    <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; !empty($<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val]) &amp;&amp; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val] &gt; <span style="color: rgba(128, 0, 128, 1)">1</span>?$<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val]:<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                              ),
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingInfo</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrierName</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">otherCarrier</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">,
                                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrier</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">carrier</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]
                                    ),
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingURL</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">trackingURL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                              ),
                            ),
                        ),
                  ),
                );
            }
      }


      $body </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderShipment</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLines</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $orderLineArr,
            ),
      );
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">返回要发送的json格式数据</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> json_encode($body);
    }

    </span><span style="color: rgba(0, 0, 255, 1)">protected</span> function getShipOrderRequestBodyData_bak($<span style="color: rgba(0, 0, 255, 1)">params</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      $orderLineArr </span>= array(); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">保存多个item</span>
      <span style="color: rgba(0, 0, 255, 1)">foreach</span>( $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lineNumbers</span><span style="color: rgba(128, 0, 0, 1)">'</span>] <span style="color: rgba(0, 0, 255, 1)">as</span> $key=&gt;<span style="color: rgba(0, 0, 0, 1)">$val ){
            $orderLineArr[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLine</span><span style="color: rgba(128, 0, 0, 1)">"</span>][] =<span style="color: rgba(0, 0, 0, 1)"> array(
                            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lineNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $val,
                            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatuses</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatus</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                    array(
                                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Shipped</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">statusQuantity</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">unitOfMeasurement</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">EA</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                                        ),
                                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingInfo</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrierName</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">otherCarrier</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">,
                                                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrier</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">carrier</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]
                                          ),
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                          </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">"trackingURL" =&gt; $order_info['trackingURL']</span>
<span style="color: rgba(0, 0, 0, 1)">                                        ),
                                    ),
                              ),
                            ),
                        );
      }

      $body </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderShipment</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLines</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $orderLineArr,
            ),
      );
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">返回要发送的json格式数据</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> json_encode($body);
    }
   
   
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 获取标记已发货接口要发送的请求体的信息[针对dsv]
   * @access protected
   * @param array $params 要标记发货要求发送的请求body信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function getShipOrderRequestBodyDataDsv($<span style="color: rgba(0, 0, 255, 1)">params</span><span style="color: rgba(0, 0, 0, 1)">){
      $orderLineArr </span>= array(); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">保存多个item</span>
      <span style="color: rgba(0, 0, 255, 1)">foreach</span>( $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lineNumbers</span><span style="color: rgba(128, 0, 0, 1)">'</span>] <span style="color: rgba(0, 0, 255, 1)">as</span> $key=&gt;<span style="color: rgba(0, 0, 0, 1)">$val ){
            $orderLineArr[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLine</span><span style="color: rgba(128, 0, 0, 1)">"</span>][] =<span style="color: rgba(0, 0, 0, 1)"> array(
                  </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">lineNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $val,
                  </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatuses</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLineStatus</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Shipped</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">statusQuantity</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">unitOfMeasurement</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Each</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">                                                    "amount" =&gt; "1",</span>
                                                    <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; !empty($<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val]) &amp;&amp; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val] &gt; <span style="color: rgba(128, 0, 128, 1)">1</span>?$<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span>][$val]:<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                                          ),
                                          </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingInfo</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shipDateTime</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrierName</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> array(
                                                            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">"otherCarrier" =&gt; $params['carrier'],</span>
                                                            <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">carrier</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">carrier</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]
                                                    ),
                                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">methodCode</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                                    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">params</span>[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">trackingNumber</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
                                                    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">"trackingURL" =&gt; $params['tracking_url']</span>
<span style="color: rgba(0, 0, 0, 1)">                                          ),
                            ),
                  ),
            );
      }
         
      $body </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">orderLines</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $orderLineArr,
      );
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">返回要发送的json格式数据</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span> $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">requestXmlBody($body);
      
    }
   
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 获取要发送的头部信息[针对dsv]
   * @access protected
   * @param string $url 请求沃尔玛的地址
   * @param string $method 请求方式
   * @param array $account_info 包含私钥的沃尔玛账户信息
   * @param array $extra 除默认的头部信息之外每个接口要单独设置的头部信息
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">protected</span> function getHeadersDsv($url, $method=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $account_info, $extra=<span style="color: rgba(0, 0, 0, 1)">array())
    {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (empty($url)) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取签名和时间戳</span>
      list($signature, $timestamp) = $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getSignatureAndTimestamp($url, $method, $account_info);
   
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">默认的而且是必须的头部信息</span>
      <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> $default = [
                "WM_SVC.NAME: Drop Ship Vendor Services",
                "WM_QOS.CORRELATION_ID: " . $this-&gt;getRandStr(),
                "WM_SEC.TIMESTAMP: " . $timestamp,
                "WM_SEC.AUTH_SIGNATURE: " . $signature,
                "WM_CONSUMER.CHANNEL.TYPE: " . $api_config['channel_type'],
                "WM_CONSUMER.ID: " . $api_config['consumer_id'],
      ]; </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
      
      $</span><span style="color: rgba(0, 0, 255, 1)">default</span> =<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Drop Ship Vendor Services</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getRandStr(),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $timestamp,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $signature,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">channel_type,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">"</span> =&gt; $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">consumer_id,
      ];
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">return array_merge($default, $extra);</span>
      <span style="color: rgba(0, 0, 255, 1)">return</span> $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;structureHeaders(array_merge($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;header_params,$<span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">,$extra));
    }
   
    </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span><span style="color: rgba(0, 0, 0, 1)"> function getXmlGeneratorObj() {
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> XmlGenerator();
    }
   
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * request xml body
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span> function requestXmlBody(array $<span style="color: rgba(0, 0, 255, 1)">params</span>=<span style="color: rgba(0, 0, 0, 1)">array()) {
      $xmlObj </span>=<span style="color: rgba(0, 0, 0, 1)"> self::getXmlGeneratorObj();
      $xmlObj</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">XmlWriter()
            </span>-&gt;push(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ns2:orderShipment</span><span style="color: rgba(128, 0, 0, 1)">'</span>, array( <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">xmlns:ns2</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http://walmart.com/mp/v3/orders</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">xmlns:ns3</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http://walmart.com/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">))
            </span>-&gt;buildXMLFilterArr($<span style="color: rgba(0, 0, 255, 1)">params</span>,<span style="color: rgba(128, 0, 0, 1)">''</span>,array(),<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ns2</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;<span style="color: rgba(0, 0, 0, 1)">pop();
   
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> $xmlObj-&gt;<span style="color: rgba(0, 0, 0, 1)">getXml();
    }

    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @param string $xmlStr
   * @return SimpleXMLElement
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span> function parseXML($xmlStr = <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      $preg </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/(&lt;|&lt;\/)(?:\w+:)/is</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      $newXmlStr </span>= preg_replace($preg,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\\1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,$xmlStr);
      $data </span>=<span style="color: rgba(0, 0, 0, 1)"> simplexml_load_string($newXmlStr);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $data;
    }
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 对象转关联数组
   * @author    YB
   * @param object $obj
   * @return array
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function object_to_array($obj){
      $_arr </span>= is_object($obj) ?<span style="color: rgba(0, 0, 0, 1)"> get_object_vars($obj) : $obj;
      </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($_arr <span style="color: rgba(0, 0, 255, 1)">as</span> $key =&gt;<span style="color: rgba(0, 0, 0, 1)"> $val){
            $val </span>= (is_array($val) || is_object($val)) ? $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">object_to_array($val) : $val;
            $arr[$key] </span>=<span style="color: rgba(0, 0, 0, 1)"> $val;
      }
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $arr;
    }
   
    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * @desc 构建http请求头部
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span> function structureHeaders(array $headers =<span style="color: rgba(0, 0, 0, 1)"> []){
      $ret </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
      </span><span style="color: rgba(0, 0, 255, 1)">foreach</span>($headers <span style="color: rgba(0, 0, 255, 1)">as</span> $key=&gt;<span style="color: rgba(0, 0, 0, 1)">$value){
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>($key) $ret[] = $key.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$value;
      }
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $ret;
    }
    </span><span style="color: rgba(0, 0, 255, 1)">protected</span><span style="color: rgba(0, 0, 0, 1)"> function deleteResult($url, $body, $header)
    {
      $ch </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,</span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_TIMEOUT, </span><span style="color: rgba(128, 0, 128, 1)">120</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_POST, </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
      curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
      curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">DELETE</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
      $data </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_exec($ch);
      $curlInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_getinfo($ch);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($_GET[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">istest</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){

            var_dump($data);
            echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;pre&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;print_r($curlInfo);
      }
      curl_close($ch);
      $preg </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/(&lt;|&lt;\/)(?:\w+:)/is</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      $newXmlStr </span>= preg_replace($preg,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">\\1</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,$data);
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">echo $newXmlStr;</span>
      $data =<span style="color: rgba(0, 0, 0, 1)"> simplexml_load_string($newXmlStr);
      $data </span>= $data?$data:array(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http_code</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$curlInfo[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http_code</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $data;
    }
}</span></pre>
</div>
<p>&nbsp;</p>
<p>配置</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">header_params</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Expect</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">],

                              </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> [
                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_MARKET</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Expect</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">],

                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Walmart Marketplace</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_TENANT_ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WALMART.CA</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_LOCALE_ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">en_CA</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">multipart/form-data</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],

                  

                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us_dsv</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SVC.NAME</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Drop Ship Vendor Services</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_QOS.CORRELATION_ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.TIMESTAMP</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_SEC.AUTH_SIGNATURE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.CHANNEL.TYPE</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WM_CONSUMER.ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/xml</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,

                                    </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/xml</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]

      ],</span></pre>
</div>
<p>解压数据包</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 拉取listing数据 两阶段
   * 一阶段:解压压缩包更新数据
   * @url /services/walmart/walmartlisting/getallitemreport/account_id/83
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionGetallitemreport(){
      ini_set(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">memory_limit</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3000M</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
      set_time_limit(</span><span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
      $start_time </span>= microtime(<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      $account_id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);

      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($account_id) {
            $keyword </span>= date(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">YmdHis</span><span style="color: rgba(128, 0, 0, 1)">"</span>).<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$account_id;

            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">******************    添加执行日志start    **********************</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            $execute_param </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt; <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">type_name</span><span style="color: rgba(128, 0, 0, 1)">"</span>   =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">listing解压缩</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyword</span><span style="color: rgba(128, 0, 0, 1)">"</span>       =&gt;<span style="color: rgba(0, 0, 0, 1)"> $keyword,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">exp3</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt;<span style="color: rgba(0, 0, 0, 1)"> $account_id,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">exp1</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">walmartlisting</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">exp2</span><span style="color: rgba(128, 0, 0, 1)">"</span>          =&gt; <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">getallitemreport</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            );
            YbModel::model(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartExecuteLog</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;<span style="color: rgba(0, 0, 0, 1)">insertData($execute_param);
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">******************    添加执行日志end    **********************</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">

            $date </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Ymd</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $filename </span>=Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/walmartreport_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$date.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$account_id.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.zip</span><span style="color: rgba(128, 0, 0, 1)">'</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置文件名</span>
            <span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">file_exists($filename)) {
                $message </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">未发现压缩文件</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
                echo $message;
            } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListingData($account_id);
                $re </span>= $walmartPostService-&gt;<span style="color: rgba(0, 0, 0, 1)">unZip($account_id, $filename);
                $message </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">执行完成</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
                </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">empty($re)) {
                  $message </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">执行异常:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$re;
                }
            }

            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">更新日志执行结果</span>
            $walmartExecuteLogModel = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartExecuteLog();
            $walmartExecuteLogModel</span>-&gt;getDbConnection()-&gt;createCommand()-&gt;<span style="color: rgba(0, 0, 0, 1)">update
            (
                $walmartExecuteLogModel</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName(),
                [
                  </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">content</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> $message,
                ],
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">type=3 and keyword='{$keyword}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
            );

      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
            $accountList </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;getInfoByWhere( <span style="color: rgba(128, 0, 0, 1)">"status = 1 and site in('mx','ca')</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
            $accountList </span>= array_column($accountList,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $limit </span>= ceil(count($accountList)/<span style="color: rgba(128, 0, 128, 1)">100</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">每次执行一个账号(4-7点每五分钟一次)</span>
            $accountIdList = $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getExeId($limit,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_account</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($accountIdList)){
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($accountIdList <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  MHelper::runThreadSOCKET(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/services/walmart/walmartlisting/getallitemreport/account_id/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$val);
                }
            }
      }

      $end_time </span>= microtime(<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">执行完成, 耗时:</span><span style="color: rgba(128, 0, 0, 1)">'</span> . round(($end_time - $start_time), <span style="color: rgba(128, 0, 128, 1)">3</span>).<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">秒</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      exit;
    }

    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 描述:获取需要执行的id
   * @author YB
   * @param int $limit每次执行几个
   * @return array
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">private</span> function getExeId($limit,$key=<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(empty($key)){
            $key </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_account</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      }

      $ids </span>=<span style="color: rgba(0, 0, 0, 1)"> EbuyMemcache::getCache($key);
      $idsArr </span>= json_decode($ids,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(empty($idsArr))
      {
            $accountList </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;<span style="color: rgba(0, 0, 0, 1)">getAccountList();
            $ids </span>= array_column($accountList,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
      {
            $ids </span>=<span style="color: rgba(0, 0, 0, 1)"> $idsArr;
      }
      $_ids </span>=<span style="color: rgba(0, 0, 0, 1)">$ids;
      array_splice($ids,$limit);
      $new_ids </span>=<span style="color: rgba(0, 0, 0, 1)"> array_diff($_ids,$ids);
      $str_list </span>=<span style="color: rgba(0, 0, 0, 1)"> json_encode($new_ids);
      EbuyMemcache::setCache($key,$str_list,</span><span style="color: rgba(128, 0, 128, 1)">86400</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $ids;
    }

    </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 解压压缩包
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function unZip($accountId, $filename) {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (empty($filename) ||<span style="color: rgba(0, 0, 0, 1)"> empty($accountId)) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      $zip </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> ZipArchive;
      $res </span>= $zip-&gt;<span style="color: rgba(0, 0, 0, 1)">open($filename);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> ($res ===<span style="color: rgba(0, 0, 0, 1)"> TRUE) {
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">解压缩到log文件夹</span>
            $zip-&gt;extractTo(Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $file </span>= $zip-&gt;getNameIndex(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
            $zip</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">close();
            $file_excel </span>= Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$file;
            $file </span>= fopen($file_excel,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $i </span>=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
            $msg </span>= <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
            $walmartListingModel </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListing();

            </span><span style="color: rgba(0, 0, 255, 1)">while</span> (($data = fgetcsv($file))!== <span style="color: rgba(0, 0, 255, 1)">false</span>) { <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">每次读取CSV里面的一行内容</span>
                <span style="color: rgba(0, 0, 255, 1)">if</span>(strpos($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;short_name,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">DSV</span><span style="color: rgba(128, 0, 0, 1)">'</span>) !==<span style="color: rgba(0, 0, 255, 1)">false</span>){ <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">dsv</span>
                  <span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                }elseif ($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">0</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">PARTNER ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; $data[<span style="color: rgba(128, 0, 128, 1)">1</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">SKU</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                        </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                  }
                  $sellerSku </span>=trim($data[<span style="color: rgba(128, 0, 128, 1)">1</span>],<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">="</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  $sellerSku </span>=trim(trim($sellerSku,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">));
                  $item_id </span>= trim($data[<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">]);
                  $skuMap </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Walmartskumap</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;find(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">seller_sku ='{$sellerSku}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                  $row </span>=<span style="color: rgba(0, 0, 0, 1)">array(
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">partner_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt;<span style="color: rgba(0, 0, 0, 1)"> $sellerSku,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>          =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_category</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span>                  =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">4</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">4</span>]:<span style="color: rgba(128, 0, 128, 1)">0.00</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">currency</span><span style="color: rgba(128, 0, 0, 1)">'</span>               =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">buybox_item_price_ca</span><span style="color: rgba(128, 0, 0, 1)">'</span>   =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">6</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">6</span>]:<span style="color: rgba(128, 0, 128, 1)">0.00</span>,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">购物车价格</span>
                        <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">buybox_ship_price_ca</span><span style="color: rgba(128, 0, 0, 1)">'</span>   =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">7</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">7</span>]:<span style="color: rgba(128, 0, 128, 1)">0.00</span>,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">购物车运费</span>
                        <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">won_buy_box</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">8</span>],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">WON BUY BOX?</span>

                        <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publish_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status_change_reason</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lifecycle_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>       =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">12</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">12</span>]:<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ship_method</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wpid</span><span style="color: rgba(128, 0, 0, 1)">'</span>                   =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">14</span>] ?$data[<span style="color: rgba(128, 0, 128, 1)">14</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>                =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">gtin</span><span style="color: rgba(128, 0, 0, 1)">'</span>                   =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">16</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">16</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">upc</span><span style="color: rgba(128, 0, 0, 1)">'</span>                  =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">17</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">17</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">main_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>               =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">18</span>],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">PRIMARY IMAGE URL</span>
                        <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shelf_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>             =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">primary_cat_path</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>    =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>   =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_page_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">reviews_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">average_rating</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">27</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">27</span>]:<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">searchable</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">27</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt;<span style="color: rgba(0, 0, 0, 1)"> $accountId,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sku</span><span style="color: rgba(128, 0, 0, 1)">'</span>                   =&gt; $skuMap-&gt;<span style="color: rgba(0, 0, 0, 1)">sku,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">original_price</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">4</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">4</span>]:<span style="color: rgba(128, 0, 128, 1)">0.00</span><span style="color: rgba(0, 0, 0, 1)">,
                  );
                }elseif ($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">0</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ID de la Tienda</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; $data[<span style="color: rgba(128, 0, 128, 1)">1</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">SKU</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                        </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                  }
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">]){
                        $t1 </span>= explode(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span>,$data[<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">]);
                        $t1d </span>= $t1[<span style="color: rgba(128, 0, 128, 1)">2</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t1[<span style="color: rgba(128, 0, 128, 1)">1</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t1[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">];
                  }
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">]){
                        $t2 </span>= explode(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span>,$data[<span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">]);
                        $t2d </span>= $t2[<span style="color: rgba(128, 0, 128, 1)">2</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t2[<span style="color: rgba(128, 0, 128, 1)">1</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t2[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">];
                  }
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">]){
                        $t3 </span>= explode(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span>,$data[<span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">]);
                        $t3d </span>= $t3[<span style="color: rgba(128, 0, 128, 1)">2</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t3[<span style="color: rgba(128, 0, 128, 1)">1</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t3[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">];
                  }
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">]){
                        $t4 </span>= explode(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span>,$data[<span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">]);
                        $t4d </span>= $t4[<span style="color: rgba(128, 0, 128, 1)">2</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t4[<span style="color: rgba(128, 0, 128, 1)">1</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$t4[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">];
                  }
                  $row </span>=<span style="color: rgba(0, 0, 0, 1)">array(
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt;<span style="color: rgba(0, 0, 0, 1)"> $accountId,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">partner_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>          =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_category</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span>                  =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">4</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">4</span>]:<span style="color: rgba(128, 0, 128, 1)">0.00</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">currency</span><span style="color: rgba(128, 0, 0, 1)">'</span>               =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publish_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status_change_reason</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lifecycle_status</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wpid</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">gtin</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">upc</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">11</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">main_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt; $data[<span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shelf_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt; $data[<span style="color: rgba(128, 0, 128, 1)">13</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">primary_cat_path</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt; $data[<span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,strtotime($t1d)),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,strtotime($t2d)),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>    =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,strtotime($t3d)),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>   =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,strtotime($t4d)),

                  );
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($data[<span style="color: rgba(128, 0, 128, 1)">0</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">PARTNER ID</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; $data[<span style="color: rgba(128, 0, 128, 1)">1</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">SKU</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                        </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                  }
                  $sellerSku </span>=trim($data[<span style="color: rgba(128, 0, 128, 1)">1</span>],<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">="</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  $sellerSku </span>=trim(trim($sellerSku,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">));
                  $item_id </span>= trim($data[<span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">]);
                  $skuMap </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Walmartskumap</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;find(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">seller_sku ='{$sellerSku}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                  $row </span>=<span style="color: rgba(0, 0, 0, 1)">array(
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">partner_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt;<span style="color: rgba(0, 0, 0, 1)"> $sellerSku,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>          =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_category</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span>                  =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">currency</span><span style="color: rgba(128, 0, 0, 1)">'</span>               =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publish_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status_change_reason</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">7</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lifecycle_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>       =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">9</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ship_method</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wpid</span><span style="color: rgba(128, 0, 0, 1)">'</span>                   =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">11</span>] ?$data[<span style="color: rgba(128, 0, 128, 1)">11</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>                =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">gtin</span><span style="color: rgba(128, 0, 0, 1)">'</span>                   =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">13</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">13</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">upc</span><span style="color: rgba(128, 0, 0, 1)">'</span>                  =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">14</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">14</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">main_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>               =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">15</span>],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">PRIMARY IMAGE URL</span>
                        <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">shelf_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>             =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">primary_cat_path</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">17</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">19</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>    =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>   =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>,strtotime($data[<span style="color: rgba(128, 0, 128, 1)">21</span><span style="color: rgba(0, 0, 0, 1)">])),
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_page_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">reviews_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>         =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">average_rating</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">searchable</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">25</span><span style="color: rgba(0, 0, 0, 1)">],
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>            =&gt;<span style="color: rgba(0, 0, 0, 1)"> $accountId,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sku</span><span style="color: rgba(128, 0, 0, 1)">'</span>                  =&gt; $skuMap-&gt;<span style="color: rgba(0, 0, 0, 1)">sku,
                        </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">original_price</span><span style="color: rgba(128, 0, 0, 1)">'</span>      =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">],
                  );
                }
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                $taskRow </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getWalmartTaskRowByListing($row[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">"</span>], $row[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sku</span><span style="color: rgba(128, 0, 0, 1)">"</span>], $row[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($taskRow)){
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">task_id</span><span style="color: rgba(128, 0, 0, 1)">"</span>] = $taskRow[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">];
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">source_type</span><span style="color: rgba(128, 0, 0, 1)">"</span>] = $taskRow[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">source_type</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">];
                }
                $WalmartListingModel </span>=YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListing</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;find(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id = $accountId and seller_sku ='{$sellerSku}' and item_id='{$item_id}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($WalmartListingModel){
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($WalmartListingModel-&gt;original_price &gt;<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">){
                        unset($row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">original_price</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                  }
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">update_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>]= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  $re_update </span>= $walmartListingModel-&gt;getDbConnection()-&gt;createCommand()-&gt;<span style="color: rgba(0, 0, 0, 1)">update(
                        $walmartListingModel</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName(),
                        $row,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id = $accountId and seller_sku ='{$sellerSku}' and item_id='{$item_id}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
                  );
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($re_update) {
                        $i</span>++<span style="color: rgba(0, 0, 0, 1)">;
                  }
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                  $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">create_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>]= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  $model </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListing();
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!$model-&gt;getDbConnection()-&gt;createCommand()-&gt;insert($model-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName(), $row)){
                        $i</span>++<span style="color: rgba(0, 0, 0, 1)">;
                  }
                }
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">                echo '&lt;pre&gt;'; print_r($data); </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">此为一个数组,要获得每一个数据,访问数组下标即可
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">                exit;</span>
<span style="color: rgba(0, 0, 0, 1)">            }

            fclose($file);
            fclose($file_excel);
            unlink($file);
            unlink($file_excel);
            unlink($filename);



      } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $msg;
    }</span></pre>
</div>
<p>&nbsp;用item_id去更新listing&nbsp; —— 可以废弃</p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 补拉拉取listing
   * @url /services/walmart/walmartlisting/repairgetlisting/account_id/2
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionRepairGetListing(){
      $account_id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $type </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $modellisting </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListing</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($type==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">see</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $accountss </span>= Yii::app()-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">get</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_line</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $lines </span>= json_decode($accountss,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            VHelper::dump($lines);exit();
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($account_id){
            $date </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $sqlac </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">SELECT item_idFROM yibai_walmart_listing WHERE update_time&lt;'</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$date.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">' and account_id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$account_id.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"> limit 1000</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
            $list </span>= $modellisting-&gt;getDbConnection()-&gt;createCommand($sqlac)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryColumn();
            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($list){
                $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListingData($account_id);
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  $res </span>= $walmartPostService-&gt;<span style="color: rgba(0, 0, 0, 1)">getanitems($val);
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>($res[<span style="color: rgba(128, 0, 128, 1)">0</span>]==<span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">){
                      $info </span>= json_decode($res[<span style="color: rgba(128, 0, 128, 1)">1</span>],<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
                      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">totalItems</span><span style="color: rgba(128, 0, 0, 1)">'</span>]&gt;=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">currency</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">currency</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sku</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wpid</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wpid</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">gtin</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">gtin</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publish_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publishedStatus</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lifecycle_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $info[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ItemResponse</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 128, 1)">0</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lifecycleStatus</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">update_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        $modellisting</span>-&gt;updateAll($arr,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id={$account_id} and item_id='</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publish_status</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">NOT_SEARCH</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">update_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        $modellisting</span>-&gt;updateAll($arr,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id={$account_id} and item_id='</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                      }
                  }
                }
                MHelper::runThreadSOCKET(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/services/walmart/walmartlisting/repairgetlisting/account_id/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$account_id);
                sleep(</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
            }
      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span>)==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">delete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                Yii::app()</span>-&gt;memcache-&gt;delete(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_line</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">删除换成成功</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            }
            $accountss </span>= Yii::app()-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">get</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_line</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $lines </span>= json_decode($accountss,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(empty($lines)){
                $account </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                $accounts </span>= $account-&gt;getDbConnection()-&gt;<span style="color: rgba(0, 0, 0, 1)">createCommand()
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">select</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id,account_name,MOD(id,10)as line</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">from</span>($account-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName())
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">where</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status=1</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;order(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id asc</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
                $accounts_line</span>=array_column($accounts,<span style="color: rgba(0, 0, 255, 1)">null</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span>($accounts_line <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  $lines[$val[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">line</span><span style="color: rgba(128, 0, 0, 1)">'</span>]][] = $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                }
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Yii::app()-&gt;memcache-&gt;set('amazon_listing_line',json_encode($lines),5*3600);</span>
<span style="color: rgba(0, 0, 0, 1)">            }
            </span><span style="color: rgba(0, 0, 255, 1)">for</span>($i=<span style="color: rgba(128, 0, 128, 1)">0</span>;$i&lt;<span style="color: rgba(128, 0, 128, 1)">10</span>;$i++<span style="color: rgba(0, 0, 0, 1)">){
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($lines[$i])){
                  $account_id </span>=<span style="color: rgba(0, 0, 0, 1)"> array_shift($lines[$i]);
                  Yii::app()</span>-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">set</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_line</span><span style="color: rgba(128, 0, 0, 1)">'</span>,json_encode($lines),<span style="color: rgba(128, 0, 128, 1)">5</span>*<span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
                  $url </span>= sprintf(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s/services/walmart/walmartlisting/repairgetlisting/account_id/%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $_SERVER[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">HTTP_HOST</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">], $account_id);
                  echo $url;echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;br/&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
                  MHelper::curl_post_async($url);
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                  </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }


      }
    }

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getanitems($itemid){
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> array();
      $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/items/{$itemid}?productIdType=ITEM_ID</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      ];
      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $res </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;cur_request($url,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,$headers);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $res;
    }</span></pre>
</div>
<p>&nbsp;mx 和 ca 的库存只能通过接口(无法通过申请报告形式)</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 获取库存
   * @url /services/walmart/walmartlisting/getinventory
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionGetinventory(){
      $account_id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $date </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">date</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $type </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $modellisting </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListing</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($type==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">see</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $accountss </span>= Yii::app()-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">get</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $lines </span>= json_decode($accountss,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            VHelper::dump($lines);exit();
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($account_id){
            $date </span>= $date?$date:date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $sqlac </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">SELECT seller_sku,item_idFROM yibai_walmart_listing WHERE inventory_updatetime&lt;'</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$date.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">' and account_id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$account_id.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"> limit 1000</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
            $list </span>= $modellisting-&gt;getDbConnection()-&gt;createCommand($sqlac)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($list){
                $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListingData($account_id);
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  $res </span>= $walmartPostService-&gt;getinventory($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>(isset($res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">quantity</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">])){
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">quantity</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_updatetime</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_updatetime</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  }
                  $modellisting</span>-&gt;updateAll($arr,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id={$account_id} and item_id='</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>].<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                MHelper::runThreadSOCKET(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/services/walmart/walmartlisting/getinventory/account_id/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$account_id);
                sleep(</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
            }
      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span>)==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">delete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                Yii::app()</span>-&gt;memcache-&gt;delete(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">删除换成成功</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            }
            $accountss </span>= Yii::app()-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">get</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $lines </span>= json_decode($accountss,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(empty($lines)){
                $account </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                $accounts </span>= $account-&gt;getDbConnection()-&gt;<span style="color: rgba(0, 0, 0, 1)">createCommand()
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">select</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id,account_name,MOD(id,10)as line</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">from</span>($account-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName())
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">where</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status=1 and site in("ca","mx")</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;order(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id asc</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
                $accounts_line</span>=array_column($accounts,<span style="color: rgba(0, 0, 255, 1)">null</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span>($accounts_line <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  $lines[$val[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">line</span><span style="color: rgba(128, 0, 0, 1)">'</span>]][] = $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                }
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Yii::app()-&gt;memcache-&gt;set('amazon_listing_line',json_encode($lines),5*3600);</span>
<span style="color: rgba(0, 0, 0, 1)">            }
            </span><span style="color: rgba(0, 0, 255, 1)">for</span>($i=<span style="color: rgba(128, 0, 128, 1)">0</span>;$i&lt;<span style="color: rgba(128, 0, 128, 1)">10</span>;$i++<span style="color: rgba(0, 0, 0, 1)">){
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($lines[$i])){
                  $account_id </span>=<span style="color: rgba(0, 0, 0, 1)"> array_shift($lines[$i]);
                  Yii::app()</span>-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">set</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span>,json_encode($lines),<span style="color: rgba(128, 0, 128, 1)">5</span>*<span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
                  $url </span>= sprintf(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s/services/walmart/walmartlisting/getinventory/account_id/%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $_SERVER[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">HTTP_HOST</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">], $account_id);
                  echo $url;echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;br/&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
                  MHelper::curl_post_async($url);
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                  </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }
      }
    }</span></pre>
</div>
<p>获取库存接口</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取库存</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getinventory($sku){
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/ca/inventory?sku=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$sku;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/inventory?sku=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$sku;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/inventory?sku=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$sku;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }
      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $result</span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getResult($url, $headers);
      $result </span>= json_decode($result,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $result;
    }</span></pre>
</div>
<p>us 拉取listing和拉取库存 通过申请报告形式的方式&nbsp; 接口文档&nbsp;&nbsp;Onrequestreports - US - API Reference - Walmart Developer Portal</p>
<p>任务表:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">CREATE TABLE `yibai_walmart_listing_task` (
`id` </span><span style="color: rgba(0, 0, 255, 1)">int</span>(<span style="color: rgba(128, 0, 128, 1)">11</span>) unsigned NOT NULL AUTO_INCREMENT COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ID</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`account_id` </span><span style="color: rgba(0, 0, 255, 1)">int</span>(<span style="color: rgba(128, 0, 128, 1)">11</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">'</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">账户ID</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`account_name` varchar(</span><span style="color: rgba(128, 0, 128, 1)">50</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">''</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">账户名称</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`site` varchar(</span><span style="color: rgba(128, 0, 128, 1)">10</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">''</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">站点</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`report_type` tinyint(</span><span style="color: rgba(128, 0, 128, 1)">1</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">'</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1:ITEM2:INVENTORY</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`request_body` text COMMENT </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">请求报告参数</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`response_body` text COMMENT </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">请求报告返回</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`status` varchar(</span><span style="color: rgba(128, 0, 128, 1)">50</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">''</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">报告状态</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`type` tinyint(</span><span style="color: rgba(128, 0, 128, 1)">1</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">'</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0:未处理 1:已处理</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`requestid` varchar(</span><span style="color: rgba(128, 0, 128, 1)">500</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">''</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">申请的requestid</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`is_down` tinyint(</span><span style="color: rgba(128, 0, 128, 1)">1</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">'</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0:未下载 1:已经下载</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`down_url` varchar(</span><span style="color: rgba(128, 0, 128, 1)">1000</span>) NOT NULL DEFAULT <span style="color: rgba(128, 0, 0, 1)">''</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">下载地址</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`create_date` datetime NOT NULL DEFAULT </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0000-00-00 00:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">创建时间</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
`update_date` datetime DEFAULT </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0000-00-00 00:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span> COMMENT <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">修改时间</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
PRIMARY KEY (`id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_report_type` (`report_type`),
KEY `idx_status` (`status`),
KEY `idx_type` (`type`),
KEY `idx_is_down` (`is_down`)
) ENGINE</span>=InnoDB AUTO_INCREMENT=<span style="color: rgba(128, 0, 128, 1)">217</span> DEFAULT CHARSET=utf8 COMMENT=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">拉取listing任务表</span><span style="color: rgba(128, 0, 0, 1)">'</span>;</pre>
</div>
<p>1. 创建任务&nbsp;&nbsp;report_type=1 listing任务&nbsp; &nbsp;report_type=2 库存任务&nbsp;</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 创建报告
   * @url /services/walmart/walmartlisting/createreporttask
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionCreatereporttask(){
      $del </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">del</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $type </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $model </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListingTask</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($del==<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">$type){
                die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">参数不对</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            }
            $model</span>-&gt;deleteAll(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">report_type=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$type);
            die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">删除us拉取listing的申请报告</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">$type){
            die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">参数不对</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">$job = $model-&gt;findAll('report_type=1 and create_date&gt;"'.date('Y-m-d').'"');
      if($job){die('当天数据已经存在');}</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
      $</span><span style="color: rgba(0, 0, 255, 1)">where</span> = <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($id){
            $</span><span style="color: rgba(0, 0, 255, 1)">where</span> .=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)"> and id=</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$id;
      }
      $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select id,short_name,site from yibai_system.yibai_walmart_account where site='us' and status=1 </span><span style="color: rgba(128, 0, 0, 1)">"</span>.$<span style="color: rgba(0, 0, 255, 1)">where</span><span style="color: rgba(0, 0, 0, 1)">;
      $list </span>= $model-&gt;getDbConnection()-&gt;createCommand($sql)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($list){
            $inlist </span>= $indata =<span style="color: rgba(0, 0, 0, 1)"> [];
            $datetime </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_name</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">short_name</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">site</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">site</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">report_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>] =<span style="color: rgba(0, 0, 0, 1)"> $type;
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">is_down</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
                $indata[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">create_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] =<span style="color: rgba(0, 0, 0, 1)"> $datetime;
                $inlist[] </span>=<span style="color: rgba(0, 0, 0, 1)"> $indata;
                $indata </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
            }
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($inlist){
            $model</span>-&gt;batchInsertAll($model-&gt;tableName(), array_keys($inlist[<span style="color: rgba(128, 0, 128, 1)">0</span>]), $inlist, <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">DOLL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    }</span></pre>
</div>
<p>2.申请报告&nbsp;</p>
<p>&nbsp;2.1 listing 接口&nbsp;&nbsp;https://marketplace.walmartapis.com/v3/reports/reportRequests?reportType=ITEM&amp;reportVersion=v4</p>
<p>2.2 库存接口&nbsp;&nbsp;https://marketplace.walmartapis.com/v3/reports/reportRequests?reportType=INVENTORY&amp;reportVersion=v1</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
* 申请报告
* @url /services/walmart/walmartlisting/createreport
</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionCreatereport(){
    $model </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListingTask</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    $datetime </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select id,account_id,report_type from yibai_walmart_listing_task where report_type in(1,2) and type=0 and is_down=0 and create_date&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$datetime;
    $list </span>= $model-&gt;getDbConnection()-&gt;createCommand($sql)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
    </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($list){
      </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
            $data </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
            $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> WalmartListingData($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>($account_info-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                $type</span>=$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">report_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM_CA</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">INVENTORY_CA</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
            }elseif ($account_info</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                $type</span>=$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">report_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM_MX</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">INVENTORY_MX</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
            }elseif ($account_info</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                $type</span>=$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">report_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">INVENTORY</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
            }
            $res </span>= json_decode($walmartPostService-&gt;createreportlisting($type),<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            $data[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">request_body</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
            $data[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">response_body</span><span style="color: rgba(128, 0, 0, 1)">'</span>] =<span style="color: rgba(0, 0, 0, 1)"> json_encode($res);
            $data[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">update_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(isset($res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestId</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">])){
                $data[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestid</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestId</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                $data[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestStatus</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                $data[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
            }
            $model</span>-&gt;updateAll($data,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
      }
    }
    echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">DOLL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建报告请求listing(/v3/reports/reportRequests) ITEM:listingINVENTORY:库存</span>
<span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function createreportlisting($type){
    $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
    </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
      $reportVersion </span>= $type==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM_CA</span><span style="color: rgba(128, 0, 0, 1)">'</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">v4</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">v1</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/ca/reports/reportRequests?reportType=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$type.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&amp;reportVersion=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$reportVersion;
      $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      ];
      $body </span>= <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
    }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
      $reportVersion </span>= $type==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM</span><span style="color: rgba(128, 0, 0, 1)">'</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">v4</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">v1</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/reports/reportRequests?reportType=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$type.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&amp;reportVersion=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$reportVersion;
      $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      ];
      $body</span>=<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
    }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
      $reportVersion </span>= $type==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM_MX</span><span style="color: rgba(128, 0, 0, 1)">'</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">v4</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">v1</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/reports/reportRequests?reportType=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$type.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&amp;reportVersion=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$reportVersion;
      $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      ];
    }
    $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
    $result</span>=$<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;postResult($url, <span style="color: rgba(128, 0, 0, 1)">''</span>, $headers,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">json</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $result;
}</span></pre>
</div>
<p>3.根据requestid获取报告状态</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 根据requestid获取报告状态
   * @url /services/walmart/walmartlisting/getreportstatus
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionGetreportstatus(){
      $model </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListingTask</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $datetime </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select id,account_id,requestid from yibai_walmart_listing_task where report_type in(1,2) and type=1 and is_down=0 and status in('INPROGRESS','RECEIVED') and create_date&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$datetime;
      $list </span>= $model-&gt;getDbConnection()-&gt;createCommand($sql)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">$list){
            die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">没有数据需要处理</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
            $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> WalmartListingData($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            $res </span>= $walmartPostService-&gt;getreportstatus($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestid</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(isset($res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestId</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">])){
                $model</span>-&gt;updateAll([<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestStatus</span><span style="color: rgba(128, 0, 0, 1)">'</span>],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">update_date</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>)],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            }
      }
      echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">DOLL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    }

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">报告请求状态(/v3/reports/reportRequests/{requestId})</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getreportstatus($requestid){
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){

      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/reports/reportRequests/</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$requestid;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){

      }
      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $result</span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getResult($url, $headers);
      $result </span>= json_decode($result,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $result;
    }</span></pre>
</div>
<p>4.获取所有报告结果&nbsp; (这个用来查看就行了)</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 获取所有报告结果
   * @url /services/walmart/walmartlisting/getallreport
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionGetallreport(){
      $type </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $account_id </span>=<span style="color: rgba(0, 0, 0, 1)"> $id;
      $type</span>=$type==<span style="color: rgba(128, 0, 128, 1)">1</span>?<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ITEM</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">INVENTORY</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListingData($account_id);
      $ra </span>= $walmartPostService-&gt;<span style="color: rgba(0, 0, 0, 1)">getallreport($type);
      print_r(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;pre&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      print_r($ra);
      print_r(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;/pre&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      exit();
    }

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取所有报告请求(/v3/reports/reportRequests)</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getallreport($type){
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
      $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/reports/reportRequests?reportType=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$type.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">&amp;reportVersion=v3</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
      $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      ];
      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $result</span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getResult($url, $headers);
      $result </span>= json_decode($result,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $result;
    }</span></pre>
</div>
<p>5.解析数据&nbsp; (因为下载链接 几分钟就失效,所以获取链接了 马上解析数据)</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 解析报告new
   * @url /services/walmart/walmartlisting/analysislisting
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionAnalysislisting(){
      $del </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">del</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $account_id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $modeltask </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListingTask</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $model </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListing();
      $datetime </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($del==<span style="color: rgba(128, 0, 128, 1)">1</span> &amp;&amp;<span style="color: rgba(0, 0, 0, 1)"> $account_id){
            $model</span>-&gt;deleteAll(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$account_id);
            die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">删除数据成功</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select id,account_id,report_type,requestid from yibai_walmart_listing_task where report_type=1 and type=1 and is_down=0 and status='READY'and create_date&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$datetime;
      $list </span>= $modeltask-&gt;getDbConnection()-&gt;createCommand($sql)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">$list){
            $sql </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">select id,account_id,report_type,requestid from yibai_walmart_listing_task where report_type=2 and type=1 and is_down=0 and status='READY'and create_date&gt;</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$datetime;
            $list </span>= $modeltask-&gt;getDbConnection()-&gt;createCommand($sql)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">$list){
                die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">没有数据需要处理</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            }
      }
      $date </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Ymd</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $path </span>= Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">file_exists($path)) {
            mkdir(Yii::getPathOfAlias(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 128, 1)">0777</span><span style="color: rgba(0, 0, 0, 1)">);
            mkdir($path, </span><span style="color: rgba(128, 0, 128, 1)">0777</span><span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
            $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> WalmartListingData($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            $res </span>= $walmartPostService-&gt;downloadreport($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestid</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(isset($res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">requestId</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">])){
                $modeltask</span>-&gt;updateAll([<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">down_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">downloadURL</span><span style="color: rgba(128, 0, 0, 1)">'</span>],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">update_date</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>)],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                $modeltask</span>-&gt;updateAll([<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">is_down</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(128, 0, 128, 1)">1</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">update_date</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>)],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
            }
            $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> WalmartListingData($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            $accountinfo </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;findByPk($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            $filename </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmartreport_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$date.<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">report_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>].<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.zip</span><span style="color: rgba(128, 0, 0, 1)">'</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置文件名</span>
            <span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">file_exists($path.$filename)){
                @unlink($path.$filename);
            }
            $walmartPostService</span>-&gt;getFile($res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">downloadURL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],$path,$filename);
            $zip </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> ZipArchive;
            $res </span>= $zip-&gt;<span style="color: rgba(0, 0, 0, 1)">open($path.$filename);
            $datatimes </span>= date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> ($res ===<span style="color: rgba(0, 0, 0, 1)"> TRUE) {
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">解压缩到log文件夹</span>
                $zip-&gt;extractTo(Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                $file </span>= $zip-&gt;getNameIndex(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
                $zip</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">close();
                $file_excel </span>= Yii::getPathOfAlias(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">webroot</span><span style="color: rgba(128, 0, 0, 1)">'</span>) . <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/upload/erp_log/walmartreport/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$file;
                $file </span>= fopen($file_excel,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                $i </span>=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
                $msg </span>= <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
                $walmartListingModel </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListing();
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">report_type</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">) {
                  </span><span style="color: rgba(0, 0, 255, 1)">while</span> (($data = fgetcsv($file)) !== <span style="color: rgba(0, 0, 255, 1)">false</span>) { <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">每次读取CSV里面的一行内容</span>
                        <span style="color: rgba(0, 0, 255, 1)">if</span> ($data[<span style="color: rgba(128, 0, 128, 1)">0</span>] == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">SKU</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; $data[<span style="color: rgba(128, 0, 128, 1)">1</span>] == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Item ID</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) {
                            </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                        }
                        $item_id </span>= trim($data[<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">]);
                        $sellerSku </span>= trim($data[<span style="color: rgba(128, 0, 128, 1)">0</span>], <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">="</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        $sellerSku </span>= trim(trim($sellerSku, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">));
                        $accountId </span>= $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $skuMap </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Walmartskumap</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;find(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">seller_sku ='{$sellerSku}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                        $row </span>=<span style="color: rgba(0, 0, 0, 1)"> array(
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">partner_id</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $accountinfo-&gt;<span style="color: rgba(0, 0, 0, 1)">partner_id,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $sellerSku,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $item_id,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_name</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">lifecycle_status</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">publish_status</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status_change_reason</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">product_category</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">price</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">7</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">7</span>] : <span style="color: rgba(128, 0, 128, 1)">0.00</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">currency</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">buybox_item_price_ca</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">9</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">9</span>] : <span style="color: rgba(128, 0, 128, 1)">0.00</span>,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">购物车价格</span>
                            <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">buybox_ship_price_ca</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">10</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">10</span>] : <span style="color: rgba(128, 0, 128, 1)">0.00</span>,<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">购物车运费</span>
                            <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wpid</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">20</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">20</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">gtin</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">21</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">21</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">upc</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">22</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">22</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, strtotime($data[<span style="color: rgba(128, 0, 128, 1)">28</span><span style="color: rgba(0, 0, 0, 1)">])),
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, strtotime($data[<span style="color: rgba(128, 0, 128, 1)">29</span><span style="color: rgba(0, 0, 0, 1)">])),
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, strtotime($data[<span style="color: rgba(128, 0, 128, 1)">30</span><span style="color: rgba(0, 0, 0, 1)">])),
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, strtotime($data[<span style="color: rgba(128, 0, 128, 1)">31</span><span style="color: rgba(0, 0, 0, 1)">])),
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">reviews_count</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">32</span>]?(<span style="color: rgba(0, 0, 255, 1)">int</span>)$data[<span style="color: rgba(128, 0, 128, 1)">32</span>]:<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">average_rating</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">33</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">33</span>] : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">searchable</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">34</span><span style="color: rgba(0, 0, 0, 1)">],
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">original_price</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $data[<span style="color: rgba(128, 0, 128, 1)">7</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">7</span>] : <span style="color: rgba(128, 0, 128, 1)">0.00</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $accountId,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_page_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$data[<span style="color: rgba(128, 0, 128, 1)">23</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">23</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">main_url</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$data[<span style="color: rgba(128, 0, 128, 1)">24</span>] ? $data[<span style="color: rgba(128, 0, 128, 1)">24</span>] : <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">,
                            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">sku</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; $skuMap-&gt;<span style="color: rgba(0, 0, 0, 1)">sku,
                        );
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_start_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        }
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">offer_end_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        }
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_creation_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        }
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span>($row[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>]==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1970-01-01 08:00:00</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_last_updated</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                        }
                        $taskRow </span>= $walmartPostService-&gt;getWalmartTaskRowByListing($row[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">"</span>], $row[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sku</span><span style="color: rgba(128, 0, 0, 1)">"</span>], $row[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]);
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!<span style="color: rgba(0, 0, 0, 1)">empty($taskRow)) {
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">task_id</span><span style="color: rgba(128, 0, 0, 1)">"</span>] = $taskRow[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">];
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">source_type</span><span style="color: rgba(128, 0, 0, 1)">"</span>] = $taskRow[<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">source_type</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">];
                        }
                        $WalmartListingModel </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListing</span><span style="color: rgba(128, 0, 0, 1)">'</span>)-&gt;find(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id = $accountId and seller_sku ='{$sellerSku}' and item_id='{$item_id}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($WalmartListingModel) {
                            </span><span style="color: rgba(0, 0, 255, 1)">if</span> ($WalmartListingModel-&gt;original_price &gt; <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">) {
                              unset($row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">original_price</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                            }
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">update_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                            $re_update </span>= $walmartListingModel-&gt;getDbConnection()-&gt;createCommand()-&gt;<span style="color: rgba(0, 0, 0, 1)">update(
                              $walmartListingModel</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName(),
                              $row,
                              </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id = $accountId and seller_sku ='{$sellerSku}' and item_id='{$item_id}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
                            );
                            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($re_update) {
                              $i</span>++<span style="color: rgba(0, 0, 0, 1)">;
                            }
                        } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
                            $row[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">create_time</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!$model-&gt;getDbConnection()-&gt;createCommand()-&gt;insert($model-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName(), $row)) {
                              $i</span>++<span style="color: rgba(0, 0, 0, 1)">;
                            }
                        }
                  }
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                  </span><span style="color: rgba(0, 0, 255, 1)">while</span> (($data = fgetcsv($file)) !== <span style="color: rgba(0, 0, 255, 1)">false</span>) { <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">每次读取CSV里面的一行内容</span>
                        <span style="color: rgba(0, 0, 255, 1)">if</span> ($data[<span style="color: rgba(128, 0, 128, 1)">0</span>] == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">SKU</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; $data[<span style="color: rgba(128, 0, 128, 1)">1</span>] == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Item ID</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">) {
                            </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                        }
                        $WalmartListingModel </span>= $model-&gt;find(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id = {$val['account_id']}and item_id='{$data}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                        </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($WalmartListingModel){
                            $inventory_count </span>= $data[<span style="color: rgba(128, 0, 128, 1)">6</span>]?$data[<span style="color: rgba(128, 0, 128, 1)">6</span>]:<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
                            $model</span>-&gt;updateAll([<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$inventory_count,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_updatetime</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;$datatimes],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id = {$val['account_id']}and item_id='{$data}'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                        }
                  }
                }
            }
            $modeltask</span>-&gt;updateAll([<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">is_down</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;<span style="color: rgba(128, 0, 128, 1)">1</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">update_date</span><span style="color: rgba(128, 0, 0, 1)">'</span>=&gt;date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span>)],<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
            fclose($file);
            fclose($file_excel);
            unlink($file);
            unlink($file_excel);
            unlink($filename);

      }
      echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">DOLL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    }

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">下载报告网址(/v3/reports/downloadReport)</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function downloadreport($requestid){
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){

      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/reports/downloadReport?requestId=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$requestid;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content-type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){

      }
      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $result</span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getResult($url, $headers);
      $result </span>= json_decode($result,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $result;
    }

</span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * description: 文件下载
   * @throws CException
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span> function getFile($url, $save_dir = <span style="color: rgba(128, 0, 0, 1)">''</span>, $filename = <span style="color: rgba(128, 0, 0, 1)">''</span>, $type = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
    {
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (trim($url) == <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (trim($save_dir) == <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">) {
            $save_dir </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span> (<span style="color: rgba(128, 0, 128, 1)">0</span> !== strrpos($save_dir, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)) {
            $save_dir .</span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建保存目录</span>
      <span style="color: rgba(0, 0, 255, 1)">if</span> (!file_exists($save_dir) &amp;&amp; !mkdir($save_dir, <span style="color: rgba(128, 0, 128, 1)">0777</span>, <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">)) {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取远程文件所采用的方法</span>
      <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> ($type) {
            $ch </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_init();
            $timeout </span>= <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">;
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $content </span>=<span style="color: rgba(0, 0, 0, 1)"> curl_exec($ch);
            curl_close($ch);
      } </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
            ob_start();
            readfile($url);
            $content </span>=<span style="color: rgba(0, 0, 0, 1)"> ob_get_contents();
            ob_end_clean();
      }
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">echo $content;</span>
      $size =<span style="color: rgba(0, 0, 0, 1)"> strlen($content);
      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">文件大小</span>
      $fp2 = @fopen($save_dir . $filename, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      @fwrite($fp2, $content);
      @fclose($fp2);
      unset($content, $url);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> array(
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt; <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">file_name</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $filename,
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">save_path</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $save_dir . $filename,
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">file_size</span><span style="color: rgba(128, 0, 0, 1)">'</span> =&gt;<span style="color: rgba(0, 0, 0, 1)"> $size
      );
    }</span></pre>
</div>
<p>解析库存</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
   * 获取库存
   * @url /services/walmart/walmartlisting/getinventory
   </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function actionGetinventory(){
      $account_id </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">account_id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $date </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">date</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $type </span>= Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      $modellisting </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartListing</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($type==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">see</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $accountss </span>= Yii::app()-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">get</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $lines </span>= json_decode($accountss,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            VHelper::dump($lines);exit();
      }
      </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($account_id){
            $date </span>= $date?$date:date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $sqlac </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">SELECT seller_sku,item_idFROM yibai_walmart_listing WHERE inventory_updatetime&lt;'</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$date.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">' and account_id=</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$account_id.<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"> limit 1000</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
            $list </span>= $modellisting-&gt;getDbConnection()-&gt;createCommand($sqlac)-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">($list){
                $walmartPostService </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> WalmartListingData($account_id);
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span> ($list <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  $res </span>= $walmartPostService-&gt;getinventory($val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">seller_sku</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]);
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>(isset($res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">quantity</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">])){
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = $res[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">quantity</span><span style="color: rgba(128, 0, 0, 1)">'</span>][<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">amount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_updatetime</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_count</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
                        $arr[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">inventory_updatetime</span><span style="color: rgba(128, 0, 0, 1)">'</span>] = date(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Y-m-d H:i:s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                  }
                  $modellisting</span>-&gt;updateAll($arr,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">account_id={$account_id} and item_id='</span><span style="color: rgba(128, 0, 0, 1)">"</span>.$val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">item_id</span><span style="color: rgba(128, 0, 0, 1)">'</span>].<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
                }
                MHelper::runThreadSOCKET(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/services/walmart/walmartlisting/getinventory/account_id/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">.$account_id);
                sleep(</span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
            }
      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
            </span><span style="color: rgba(0, 0, 255, 1)">if</span>(Yii::app()-&gt;request-&gt;getParam(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">type</span><span style="color: rgba(128, 0, 0, 1)">'</span>)==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">delete</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                Yii::app()</span>-&gt;memcache-&gt;delete(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                die(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">删除换成成功</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            }
            $accountss </span>= Yii::app()-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">get</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
            $lines </span>= json_decode($accountss,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
            </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(empty($lines)){
                $account </span>= YbModel::model(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">WalmartAccount</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                $accounts </span>= $account-&gt;getDbConnection()-&gt;<span style="color: rgba(0, 0, 0, 1)">createCommand()
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">select</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id,account_name,MOD(id,10)as line</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">from</span>($account-&gt;<span style="color: rgba(0, 0, 0, 1)">tableName())
                  </span>-&gt;<span style="color: rgba(0, 0, 255, 1)">where</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">status=1 and site in("ca","mx")</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;order(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id asc</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
                  </span>-&gt;<span style="color: rgba(0, 0, 0, 1)">queryAll();
                $accounts_line</span>=array_column($accounts,<span style="color: rgba(0, 0, 255, 1)">null</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
                </span><span style="color: rgba(0, 0, 255, 1)">foreach</span>($accounts_line <span style="color: rgba(0, 0, 255, 1)">as</span><span style="color: rgba(0, 0, 0, 1)"> $val){
                  $lines[$val[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">line</span><span style="color: rgba(128, 0, 0, 1)">'</span>]][] = $val[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">];
                }
                </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Yii::app()-&gt;memcache-&gt;set('amazon_listing_line',json_encode($lines),5*3600);</span>
<span style="color: rgba(0, 0, 0, 1)">            }
            </span><span style="color: rgba(0, 0, 255, 1)">for</span>($i=<span style="color: rgba(128, 0, 128, 1)">0</span>;$i&lt;<span style="color: rgba(128, 0, 128, 1)">10</span>;$i++<span style="color: rgba(0, 0, 0, 1)">){
                </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(0, 0, 0, 1)">empty($lines[$i])){
                  $account_id </span>=<span style="color: rgba(0, 0, 0, 1)"> array_shift($lines[$i]);
                  Yii::app()</span>-&gt;memcache-&gt;<span style="color: rgba(0, 0, 255, 1)">set</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">walmart_listing_inventory</span><span style="color: rgba(128, 0, 0, 1)">'</span>,json_encode($lines),<span style="color: rgba(128, 0, 128, 1)">5</span>*<span style="color: rgba(128, 0, 128, 1)">3600</span><span style="color: rgba(0, 0, 0, 1)">);
                  $url </span>= sprintf(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s/services/walmart/walmartlisting/getinventory/account_id/%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>, $_SERVER[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">HTTP_HOST</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">], $account_id);
                  echo $url;echo </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">&lt;br/&gt;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
                  MHelper::curl_post_async($url);
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                  </span><span style="color: rgba(0, 0, 255, 1)">continue</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }
      }
    }

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取库存 这里的ca和mx 不需要</span>
    <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> function getinventory($sku){
      $accountInfo </span>=<span style="color: rgba(0, 0, 0, 1)"> [];
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>($<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ca</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/ca/inventory?sku=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$sku;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">us</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/inventory?sku=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$sku;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }elseif($</span><span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;site==<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mx</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
            $url </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://marketplace.walmartapis.com/v3/inventory?sku=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.$sku;
            $extra </span>=<span style="color: rgba(0, 0, 0, 1)"> [
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Accept</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>=&gt;<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            ];
      }
      $headers </span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;getHeaders($url, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">, $accountInfo, $extra);
      $result</span>= $<span style="color: rgba(0, 0, 255, 1)">this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">getResult($url, $headers);
      $result </span>= json_decode($result,<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> $result;
    }</span></pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/xiangshihua/p/16285202.html
頁: [1]
查看完整版本: 沃尔玛api接口