调用淘宝API时常见问题的解决方案

几个在调用API时常见问题的解决方案 抛砖引玉,你们也能够说说本身在开发中累积的解决常见问题的方案。谢谢!  场景一:在售商品库存更新             使用的API:                      taobao.items.get                      taobao.items.search                      taobao.items.onsale.get                      taobao.items.inventory.get             业务逻辑细节:                      出现isv.invalid-parameter:gain-number-too-large(搜索商品超过10万条)报错,会形成一些流量浪费掉             解决方案:                      业务方面:因为淘宝为了不翻页超过10万条对服务器压力过大,在搜索商品超过10万条之后就没法在淘宝页面显示。                      程序方面:程序前端使用page_no*page_size>=100000的判断,在客户端校验,避免这些错误操做形成调用量浪费  场景二:添加优惠策略             使用的API:                      taobao.marketing.promotion.add             业务逻辑细节:                     在调用Promotion.Add添加优惠策略的时候,注意要防止对同一商品对同一标签的人群,设置多个优惠策略。(isv.promotion-repeat)             解决方案:                      商家可能会使用多个工具设置优惠策略,可能会出现不一样应用设置了重复策略的状况,不要进行重试,要提醒用户删除上个优惠策略。  场景三:橱窗推荐类工具             使用的API:                     taobao.item.recommend.add             业务逻辑细节:                     出现isv.item-recommend-service-error:ERROR_MORE_THAN_ALLOWED_RECOMMEND_NUM 橱窗已满的错误             解决方案:                      在橱窗上增长一个商品,采用的逻辑应该是:调用taobao.shop.remainshowcase.get 得到橱窗数量,再去add。                      好比:调用get获得返回值6,说明有6个空的橱窗,而后调用6次add,向空的橱窗中添加推荐商品。                      在遇到用户使用多款应用致使,橱窗在非正常状况下变满,应提示卖家,橱窗已满,不该该反复重试。不推荐,先去add,返回错误后中止的调用逻辑。  场景四:自动发货(修改订单状态)类工具             使用的API:                     taobao.logistics.offline.send             业务逻辑细节1:                     调用时40NULL缺乏参数的错误             解决方案:                      tid,out_id,company_code均为必选参数,须要传入。当物流公司是非官方合做公司时,company_code填写“其余”            业务逻辑细节2:                    B98错误发货类型不正确。将货到付款,在线物流等订单,使用了线下物流发货             解决方案:                     经过trade.fullinfo.get接口获取到订单的发货类型,作判断后,调用发货接口  场景五:订单查询             使用的API:                     taobao.trade.fullinfo.get             业务逻辑细节1:                    出现isv.trade-not-exist订单不存在错误,缘由通常是查询了3个月前的订单             解决方案:                     天天对数据库进行更新,剔除掉时间超过3个月的订单。或者在调用接口前对订单modified进行校验,剔除过时的并加上标签,之后不对这些订单进行查询。            业务逻辑细节2:                   isv.invalid-permission错误,使用了错误的卖家Id去查询订单,通常出如今支持多店管理的进销存应用中,从服务器中获取订单没有区分不一样的淘宝店铺,在                   作下一步详细信息查询时,会出现权限错误。             解决方案:                     从服务器获取不一样店铺的订单时,要作好标签,区分不一样店铺。在作后续操做时,按店铺分开处理。  场景六:批量评价             使用的API:                      taobao.traderate.list.add             业务逻辑细节:                     出现isv.rate-service-error:-1020错误,超过15天的订单已评价或已过评价有效期。没有对订单的评价时间作一个15天限制             解决方案:                      加一个15天的有效期限制,也就是只对交易成功以后15天之内未评价的订单进行评价  场景七:订单增量查询             使用的API:                      taobao.trades.sold.increment.get             业务逻辑细节:                     出现订单查询不到,漏单的问题             解决方案:                      注意点1:使用该接口查询时,要根据modified字段来查询,例如一笔订单85433811901845  <end_time>2011-07-20 10:00:27</end_time>                      <modified>2011-07-20 10:17:30</modified><pay_time>2011-07-18 10:46:17</pay_time>  那么查询时查询区间要包含modified:2011-07-20 10:17:30,                       便可以设置start_modified 2011-07-20 10:15:00  end_modified: 2011-07-20 10:45:00。2:只能查询时间跨度为一天的增量交易记录:                       start_modified:2011-7-1 16:00:00 end_modified: 2011-7-2 15:59:59(注意不能写成16:00:00)。  场景八:手机充值类业务             使用的API:                      taobao.trades.sold.increment.get                      taobao.logistics.offline.send             业务逻辑细节:                     出现isv.logistics-offline-service-error:B04错误,订单状态不对,多数为订单重复发货。为了保证不漏单,get的订单获取区间可能有所重复。                     当send接口出现一些延时时,重复区间的订单可能获取重复再次发货,致使重复。             解决方案:                      调用get接口时,作一个延时,保证订单已经彻底send后,再调用taobao.trades.sold.increment.get接口。  场景九:图书发货             使用的API:                      taobao.products.search                      taobao.item.get                      taobao.item.add                      taobao.item.delete             业务逻辑细节:                     在添加或修改图书时会出现isv.item-add-service-error:CATEGORY_LIMIT_SPU_BOOK_NORMAL\isv.item-delete-service-error\isv.item-is-delete:                    invalid-numIid-or-iid错误,主要缘由是添加或是修改的图书ISBN号没有通过审核,在淘宝产品库中不存在。             解决方案:                      在添加或是修改图书类商品时,首先要调用taobao.products.search接口查询,图书是否在产品库中。在调用products.search接口时:输入的q字                     段参数为“ISBN号” 例如:"9787121105777"。status字段输入参数分为两类:一、普通卖家输入字段为"3" ;二、商城卖家输入字段为"0,3"。
相关文章
相关标签/搜索