1

Djangoベースのウェブアプリで既存のマーチャントアカウントのYahoo!のCheckoutAPIと統合しようとしています。私はすでにCatalogAPIを正常に統合できましたが、何らかの理由でCheckoutAPIを機能させることができません。ドキュメントの例に基づいてXMLリクエストを作成しましたが、常に10009AuthRequiredエラーが返されます。パートナーアカウントに正しい認証があることを確認しましたが、なぜこのエラーが発生するのか理解できません。サンプルリクエストをコピーして貼り付けると(明らかに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アクセスがどのように見えるかです: Yahoo!  パートナーAPIアクセス

4

2 に答える 2

1

Yahoo!に内部的な問題があったことが判明しました。これが機能するのを妨げていました。私が彼らの中小企業サポートチームに連絡した後、彼らは問題を修正することができ、私のコードは突然機能し始めました。

他の誰かが同様の問題に遭遇した場合、私はそれらを把握するための最良の方法は彼らのツイッターアカウント@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 に答える