【问题标题】:PHP eBay Trading API AddItems call returns 'Invalid job context type' errorPHP eBay Trading API AddItems 调用返回“无效的工作上下文类型”错误
【发布时间】:2013-08-22 13:31:37
【问题描述】:

我正在尝试通过使用 PHP 和 CURL 的 eBay 交易 API 在 eBay 上列出一个项目

一切(XML 和我的脚本)看起来都不错,或者我只是看不出我做错了什么。

这是我的请求:

<?xml version="1.0" encoding="utf-8"?>
<AddItemsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<ErrorLanguage>en_US</ErrorLanguage>  
<AddItemRequestContainer>  
<MessageID>100</MessageID>  
<Item>  
<BuyItNowPrice>238.00</BuyItNowPrice>  
<CategoryMappingAllowed>true</CategoryMappingAllowed>  
<ConditionID>1000</ConditionID>  
<Country>CA</Country>  
<Currency>CAD</Currency>  
<Title>TEST</Title>  
<Description>DEscription</Description>  
<DispatchTimeMax>3</DispatchTimeMax>  
<ListingDuration>Days_7</ListingDuration>  
<ListingType>FixedPriceItem</ListingType>  
<PaymentMethods>PayPal</PaymentMethods>  
<PayPalEmailAddress>paypal@jccayer.com</PayPalEmailAddress>  
<PictureDetails>  
<Item.PictureDetails.PictureURL>  
http://www.jccayer.com/productphoto/2793-22-1_ep1.jpg  
</Item.PictureDetails.PictureURL>  
<PictureURL>http://www.jccayer.com/productphoto/2793-22-1_ep1.jpg</PictureURL>  
</PictureDetails>  
<PostalCode>K0A1M0</PostalCode>  
<PrimaryCategory>  
<CategoryID>279</CategoryID>  
</PrimaryCategory>  
<Quantity>1</Quantity>  
<ReturnPolicy>  
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>  
<RefundOption>MoneyBack</RefundOption>  
<ReturnsWithinOption>Days_30</ReturnsWithinOption>  
<Description>Text description of return policy details</Description>  
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>  
</ReturnPolicy>  
<ShippingDetails>  
<ShippingType>Flat</ShippingType>  
<ShippingServiceOptions>  
<ShippingServicePriority>1</ShippingServicePriority>  
<ShippingService>CA_UPSStandardCanada</ShippingService>  
<ShippingServiceCost>21.50</ShippingServiceCost>  
</ShippingServiceOptions>  
</ShippingDetails>  
<Site>Canada</Site>  
<UUID>4d8b04a3ae054a978a66848fafd524c9</UUID>  
</Item>  
</AddItemRequestContainer>  
<RequesterCredentials>  
<eBayAuthToken>[INSERT YOUR OWN AUTH TOKEN]</eBayAuthToken>  
</RequesterCredentials>  
</AddItemsRequest>

回应:

Array
(
[Timestamp] => 2013-08-22T13:16:02.397Z
[Ack] => Failure
[Errors] => Array
    (
        [ShortMessage] => Invalid job context type
        [LongMessage] => The job context object is not supported by Action Service Framework.
        [ErrorCode] => 21843
        [SeverityCode] => Error
        [ErrorParameters] => Array
            (
                [0] => Array
                    (
                        [@attributes] => Array
                            (
                                [ParamID] => 0
                            )

                        [Value] => AddItem
                    )

                [1] => Array
                    (
                        [@attributes] => Array
                            (
                                [ParamID] => 1
                            )

                        [Value] => AddItemsRequestType
                    )

            )

        [ErrorClassification] => RequestError
    )

[Version] => 833
[Build] => E833_UNI_API5_16246498_R1
)

有人知道哪里出了问题吗?


编辑

当我从 David T. Sadler 那里得到答案时,他建议我尝试使用 StartingPrice 而不是 BuyItNowPrice

这就是我所做的。 David 还说他能够通过 API 测试工具运行我的 XML。当我尝试它时,它在那里也不起作用。

这是我的新要求

标题

X-EBAY-API-COMPATIBILITY-LEVEL:833
X-EBAY-API-DEV-NAME:76803363-a07b-4c24-b5c7-f38ce3dd1ba7
X-EBAY-API-APP-NAME:JeanClau-bd2d-4e64-9466-41fbecfb8bb6
X-EBAY-API-CERT-NAME:4624a573-0320-4604-ac18-f7fc07d0ea8b
X-EBAY-API-SITEID:2
X-EBAY-API-CALL-NAME:AddItem

XML 请求

<?xml version="1.0" encoding="utf-8"?> 
<AddItemsRequest xmlns="urn:ebay:apis:eBLBaseComponents">  
<ErrorLanguage>en_US</ErrorLanguage>    
<AddItemRequestContainer>    
<MessageID>100</MessageID>    
<Item>    
<StartingPrice>238.00</StartingPrice>    
<CategoryMappingAllowed>true</CategoryMappingAllowed>    
<ConditionID>1000</ConditionID>    
<Country>CA</Country>    
<Currency>CAD</Currency>    
<Title>TEST</Title>    
<Description>DEscription</Description>    
<DispatchTimeMax>3</DispatchTimeMax>    
<ListingDuration>Days_7</ListingDuration>    
<ListingType>FixedPriceItem</ListingType>    
<PaymentMethods>PayPal</PaymentMethods>    
<PayPalEmailAddress>paypal@jccayer.com</PayPalEmailAddress>    
<PictureDetails>    
<Item.PictureDetails.PictureURL>    
http://www.jccayer.com/productphoto/2793-22-1_ep1.jpg    
</Item.PictureDetails.PictureURL>    
<PictureURL>http://www.jccayer.com/productphoto/2793-22-1_ep1.jpg</PictureURL>    
</PictureDetails>    
<PostalCode>K0A1M0</PostalCode>    
<PrimaryCategory>    
<CategoryID>279</CategoryID>    
</PrimaryCategory>    
<Quantity>1</Quantity>    
<ReturnPolicy>    
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>    
<RefundOption>MoneyBack</RefundOption>    
<ReturnsWithinOption>Days_30</ReturnsWithinOption>    
<Description>Text description of return policy details</Description>    
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>    
</ReturnPolicy>    
<ShippingDetails>    
<ShippingType>Flat</ShippingType>    
<ShippingServiceOptions>    
<ShippingServicePriority>1</ShippingServicePriority>    
<ShippingService>CA_UPSStandardCanada</ShippingService>    
<ShippingServiceCost>21.50</ShippingServiceCost>    
</ShippingServiceOptions>    
</ShippingDetails>    
<Site>Canada</Site>    
<UUID>4d8b04a3ae054a978a66848fafd524c9</UUID>    
</Item>    
</AddItemRequestContainer>    
<RequesterCredentials>    
<eBayAuthToken>[INSERT YOUR OWN AUTH TOKEN]</eBayAuthToken>    
</RequesterCredentials>    
</AddItemsRequest>

回应

<?xml version="1.0" encoding="UTF-8"?>  
<AddItemsResponse xmlns="urn:ebay:apis:eBLBaseComponents">  
  <Timestamp>2013-08-23T13:31:10.575Z</Timestamp>  
  <Ack>Failure</Ack>  
  <Errors>  
    <ShortMessage>Auth token is invalid.</ShortMessage>  
    <LongMessage>Validation of the authentication token in API request failed.</LongMessage>  
    <ErrorCode>931</ErrorCode>  
    <SeverityCode>Error</SeverityCode>  
    <ErrorClassification>RequestError</ErrorClassification>  
  </Errors>  
  <Version>833</Version>  
  <Build>E833_UNI_API5_16246498_R1</Build>  
</AddItemsResponse>

【问题讨论】:

    标签: php soap ebay-api


    【解决方案1】:

    您的请求唯一有问题的是 BuyItNowPrice 元素对于 FixedPriceItem 列表无效。您需要将其更改为 StartingPrice。除此之外,请求很好。我什至已将您的 XML 复制并粘贴到 eBay API 测试工具中,并且该项目已列出。 http://cgi.sandbox.ebay.com/110121707611

    没有看到您如何使用 PHP 和 Curl 发送请求,我只能推荐以下内容。

    • 确保将 POST 请求发送到正确的端点。
    • 如果请求字符串的开头有空格字符,则可能会出现问题。确保此字符串中的第一个字符是 XML 请求。
    • 确保 CURL 发送具有正确值的以下 HTTP 标头。
      • X-EBAY-API-COMPATIBILITY-LEVEL:833
      • X-EBAY-API-DEV-NAME:[替换为您的设备]
      • X-EBAY-API-APP-NAME:[替换为您的 APPID]
      • X-EBAY-API-CERT-NAME:[替换为您的证书]
      • X-EBAY-API-SITEID:2
      • X-EBAY-API-CALL-NAME:AddItems

    【讨论】:

    • 非常感谢您的意见。但我只是测试一下,它仍然做同样的事情。据我了解,我必须将此元素 更改为 是正确的吗?我查看了我的标题并完全按照您的建议发送它
    • 谢谢它不是startingPrice 而是StartPrice 但你让我意识到谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多