有赞新零售社区

发帖
API使用问题»通过接口上传产品不能正常上传

通过接口上传产品不能正常上传

汇程国际旅行 2017-02-22 1945 浏览 2 评论 | 只看楼主 [打印]
接口相关
店铺名称: 汇程旅行旗舰店
我根据有赞API的新增一个商品的接口提供的java例子进行上传是写了如下代码,运行不能正常上传我调用的api是kdt.item.add

新增一个商品

  1. public String createXCTravelProduct(String m_product_value){
  2.                
  3.                 String result2 = "";
  4.                 String title = "商品标题,商品标题。不能超过100字,受违禁词控制,必填";//必填
  5.                 String  Desc = "商品描述,商品描述。字数要大于5个字符,小于25000个字符 ,受违禁词控制,非必填";//非必填
  6.                 float Price = 12.22f;//商品价格。取值范围 0.01-100000000 精确到2位小数 单位元。需要在Sku价格所决定的的区间内,必填
  7.                 float PostFee = 0f;//运费。取值范围 0.00-999.00 精确到2位小数 单位元 ;必填
  8.                 Auth sign = new Sign(app_id, AppSecret);
  9.                 KDTClient client = new DefaultKDTClient(sign); //new Sign(appKey, appSecret)
  10.                 KdtItemAddParams kdtItemAddParams = new KdtItemAddParams();
  11.                 kdtItemAddParams.setTitle(title);
  12.                 kdtItemAddParams.setDesc(Desc);
  13.                 kdtItemAddParams.setPrice(Price);
  14.                 kdtItemAddParams.setPostFee(PostFee);
  15.                 ByteWrapper[] byteWrappers = new ByteWrapper[1];
  16.                 // 文件被包装成ByteWrapper
  17.                 ByteWrapper byteWrapper = new ByteWrapper("D:\\picture\\BO_L.jpg");
  18.                 byteWrappers[0] = byteWrapper;
  19.                 kdtItemAddParams.setImages(byteWrappers);
  20.                 KdtItemAdd kdtItemAdd = new KdtItemAdd();
  21.                 kdtItemAdd.setAPIParams(kdtItemAddParams);
  22.                 KdtItemAddResult result = client.invoke(kdtItemAdd);
  23.                 System.out.println(result.getItem().getTitle());
  24.                 return result2;
  25.         }
复制代码

运行后异常提醒如下
  1. Exception in thread "main" java.lang.RuntimeException: javax.net.ssl.SSLException: hostname in certificate didn't match: <open.youzan.com> != <*.koudaitong.com> OR <koudaitong.com> OR <*.koudaitong.com>
  2.         at com.youzan.open.sdk.util.http.DefaultHttpClient.post(DefaultHttpClient.java:92)
  3.         at com.youzan.open.sdk.client.executor.AbstractExecutor.doExecuteInternal(AbstractExecutor.java:80)
  4.         at com.youzan.open.sdk.client.executor.AbstractExecutor.execute(AbstractExecutor.java:28)
  5.         at com.youzan.open.sdk.client.core.DefaultKDTClient.execute(DefaultKDTClient.java:77)
  6.         at com.youzan.open.sdk.client.core.DefaultKDTClient.invoke(DefaultKDTClient.java:84)
复制代码
我调用的是从有赞上下载的SDK,应该不涉及让我编辑什么;我要正常上传产品需要做些什么处理
我引入的类如下
  1. import com.youzan.open.sdk.client.auth.Auth;
  2. import com.youzan.open.sdk.client.auth.Sign;
  3. import com.youzan.open.sdk.client.core.DefaultKDTClient;
  4. import com.youzan.open.sdk.client.core.KDTClient;
  5. import com.youzan.open.sdk.gen.v1_0_0.api.KdtItemAdd;
  6. import com.youzan.open.sdk.gen.v1_0_0.model.KdtItemAddParams;
  7. import com.youzan.open.sdk.gen.v1_0_0.model.KdtItemAddResult;
  8. import com.youzan.open.sdk.model.ByteWrapper;
复制代码




本帖最后由 汇程旅行 于 2017-2-22 15:02 编辑
用手机打开
收藏 ··· 回复
    有赞-墨鱼   超神   2017-02-23 | 只看该作者
    1. KDTClient client = new DefaultKDTClient(new Token("xxxx")); //new Sign(appKey, appSecret)
    2. KdtItemAddParams kdtItemAddParams = new KdtItemAddParams();
    3. kdtItemAddParams.setTitle("单测商品-增加");
    4. kdtItemAddParams.setDesc("测试的描述");
    5. kdtItemAddParams.setPrice(12.22);
    6. kdtItemAddParams.setQuantity("123");
    7. kdtItemAddParams.setPostFee(0.022f);
    8. ByteWrapper[] byteWrappers = new ByteWrapper[2];
    9. // 文件被包装成ByteWrapper
    10. ByteWrapper byteWrapper = new ByteWrapper("/Desktop/icon.png");
    11. byteWrappers[0] = byteWrapper;
    12. byteWrapper = new ByteWrapper("/Desktop/thumb_up_normal.png");
    13. byteWrappers[1] = byteWrapper;
    14. kdtItemAddParams.setImages(byteWrappers);
    15. KdtItemAdd kdtItemAdd = new KdtItemAdd();
    16. kdtItemAdd.setAPIParams(kdtItemAddParams);
    17. KdtItemAddResult result = client.invoke(kdtItemAdd);
    18. assertTrue(result.getItem().getTitle().equals(kdtItemAddParams.getTitle()));
    复制代码


    下载的是最新的javasdk吗?用最新的javasdk,调用方式如上
    提问请先戳这儿——》[搜索]
    您的大多数问题,新手学堂都有答案,戳这儿——》[帮助中心]

      汇程旅行   青铜   2017-02-23 | 只看该作者
      有赞-墨鱼 发表于 2017-2-22 17:48
      下载的是最新的javasdk吗?用最新的javasdk,调用方式如上


      http://open.youzan.com/docs/downloads
      我是在这个地址中下载的SDK
      下载的版本是
      open-sdk-java-1.0.0-beta.zip
      大小是6,678,880 字节
      这个不行?

        1跳至
        您需要登录后才可以回帖 登录 | 立即注册

        本版积分规则

        复制链接
        新浪微博
        QQ空间
        微信扫码
        • 回复

        • 评分

        客服工作时间是9:00-18:00,客服妹子当前不在线,若不能及时回复请谅解。试试右上角的搜索吧,论坛有丰富的经验贴、公告贴,相信一定能够帮到您~

        复制成功