1

我正在尝试与 Yahoo! 的 Checkout API 集成,用于基于 Django 的网络应用程序中的现有商家帐户。我已经成功地集成了他们的 Catalog API,但由于某种原因,我根本无法让 Checkout API 工作。我根据他们文档中的示例制作了一个 XML 请求,但它总是简单地返回一个 10009 Auth Required 错误。我已确认我的合作伙伴帐户确实具有正确的授权,但我无法弄清楚为什么会出现此错误。我不相信这是一个格式错误的请求,因为当我复制并粘贴他们的示例请求(显然更改 API 令牌等)时,我得到了完全相同的结果。

这就是我的请求的样子(商店 ID 和令牌已清理):

<ystorews:ystorewsRequest xmlns:ystorews="urn:yahoo:sbs:ystorews">
  <Version>1.0</Version>
  <StoreID>{storeid}</StoreID>
  <SecurityHeader>
        <PartnerStoreContractToken>{token}</PartnerStoreContractToken>
  </SecurityHeader>
  <Verb>create</Verb>
  <ResourceList>
    <CheckoutBasket>
      <ShoppingCart>
        <Item>
          <ID>foo</ID>
          <Quantity>5</Quantity>
        </Item>
      </ShoppingCart>
    </CheckoutBasket>
  </ResourceList>
</ystorews:ystorewsRequest>

这是我得到的回应:

<?xml version="1.0" encoding="utf-8"?>
<ystorewsResponse>
<ErrorMessages>
<Error>
<Code> 10009 </Code>
<Message> Auth Required </Message>
</Error>
</ErrorMessages>
</ystorewsResponse>

这就是我的合作伙伴 API 访问的样子: 雅虎! 合作伙伴 API 访问

4

2 回答 2

1

原来雅虎内部存在问题!这阻止了它的工作。在我联系了他们的小型企业支持团队后,他们能够解决问题,我的代码突然开始工作。

万一其他人遇到类似问题,我发现了解他们的最佳方式是通过他们的 Twitter 帐户:@YSmallBizCare

于 2012-07-18T17:25:41.627 回答
0

在这里疯狂猜测,但值得一试。

您声明了一个 XML 名称空间,但根本不使用它。我怀疑你想要:

<ystorewsRequest xmlns="urn:yahoo:sbs:ystorews">
  <Version>1.0</Version>
  <StoreID>{storeid}</StoreID>
  <SecurityHeader>
        <PartnerStoreContractToken>{token}</PartnerStoreContractToken>
  </SecurityHeader>
  <Verb>create</Verb>
  <ResourceList>
    <CheckoutBasket>
      <ShoppingCart>
        <Item>
          <ID>foo</ID>
          <Quantity>5</Quantity>
        </Item>
      </ShoppingCart>
    </CheckoutBasket>
  </ResourceList>
</ystorewsRequest>

请注意根元素中缺少 ystorews 命名空间。

于 2012-07-13T16:24:21.830 回答