`
liwenshui322
  • 浏览: 511276 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Openbravo与淘宝对接文档二

 
阅读更多

这篇文章介绍消息服务的使用

 

1. 登陆沙箱用户

地址:http://www.tbsandbox.com/

用户名:sandbox_c_20

密码:taobao1234

 

2. 进行消息授权与订阅

点击左边沙箱测试工具,右边消息同道管理,输入appkey,选择消息类型。然后点击订阅即可。

 

3. 在eclipse里面新建一个类,内容如下,循环接收消息

package tb.lws.test;

import com.taobao.api.internal.tmc.Message;
import com.taobao.api.internal.tmc.MessageHandler;
import com.taobao.api.internal.tmc.MessageStatus;
import com.taobao.api.internal.tmc.TmcClient;
import com.taobao.top.link.LinkException;

public class SdkMsgTest {

    /**
     * @param args
     * @throws LinkException
     * @throws InterruptedException
     */
    public static void main(String[] args) throws LinkException,
	    InterruptedException {

	TmcClient client = new TmcClient("ws://mc.api.tbsandbox.com/",
		"1021604294", "sandbox5ac97e191c11cabb19bb16329", "default");
	client.setMessageHandler(new MessageHandler() {
	    public void onMessage(Message message, MessageStatus status) {
		try {
		    System.out.println(message.getContent());
		    System.out.println(message.getTopic());
		    // 默认不抛出异常则认为消息处理成功
		} catch (Exception e) {
		    e.printStackTrace();
		    status.fail();// 消息处理失败回滚,服务端需要重发
		}
	    }
	});
	client.connect();
	Thread.sleep(1000000); // 测试使用,为了观察效果

    }

}

 

4.  以另外一个用户登陆

用户名:sandbox_cilai_c

密码:taobao1234

然后点击店铺搜索,搜索sandbox_c_20的店铺,然后点击商品购买

 

5. 如果订阅了订单创建消息,我们可以看到eclipse会打印出来内容。

 

PS: 如果收不到消息,通过接口taobao.tmc.user.get获取用户已开通消息,如下代码所示:

String appKey = "1021604294"; 
    String appSecret = "sandbox5ac97e191c11cabb19bb16329";
    String serverUrl = "http://gw.api.tbsandbox.com/router/rest";

TaobaoClient client2 = new DefaultTaobaoClient(serverUrl, appKey, appSecret);
    TmcUserGetRequest requser = new TmcUserGetRequest();
    requser.setFields("user_nick,topics,user_id,is_valid,created,modified");
    requser.setNick("sandbox_c_20"); //店铺昵称
    TmcUserGetResponse response = client2.execute(requser);
    System.out.println(response.getBody());

      如果发现没有开通消息,通过如下代码开通消息即可:

  

TaobaoClient client3 = new DefaultTaobaoClient(serverUrl, appKey, appSecret);
    TmcUserPermitRequest req3 = new TmcUserPermitRequest();
    req3.setTopics("taobao_trade_TradeSuccess,taobao_trade_TradeCreate,taobao_trade_TradeBuyerPay"); //开通消息列表
    TmcUserPermitResponse response3 = client3.execute(req3,
        "6100e03980213c6ad26e045d34ebdc6fd3a490aa7ff89052054555330"); //sessionkey
    System.out.println(response3.getBody());

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics