雅虎商家结帐API问题

时间:2012-07-13 16:03:43

标签: python xml yahoo yahoo-api

我正在尝试与基于Django的网络应用中的现有商家帐户的Yahoo!Checkout API集成。我已经成功地集成了他们的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>

这就是我的Partner API Access的样子: Yahoo! Partner API Access

2 个答案:

答案 0 :(得分: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命名空间。

答案 1 :(得分:0)

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

如果其他人遇到类似的问题,我发现获得这些问题的最佳途径是通过他们的Twitter帐户:@YSmallBizCare