调用淘宝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字段输入参数分为两类:1、普通卖家输入字段为"3" ;2、商城卖家输入字段为"0,3"。

转载于:https://my.oschina.net/ij2ee/blog/180567

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值