代理程序开发流程

1.1.1       获取接口访问凭证

根据服务体系开放的getaccesstoken接口获取数据服务的访问token(需要注册应用时返回的appID和appKey)。

①接口描述

服务商调用平台接口的第一步,访问令牌是服务商使用数据服务的凭证,通过访问令牌服务商可以使用自身权限下的数据服务

②前置条件

③请求说明
urlhttp://ip:port/apigateway/getaccesstoken
协议Post
格式Json
是否需要鉴权
请求数限制
接口方向第三方应用>服务体系

 

④请求参数
序号字段名约束类型长度说明
1appid必选String64应用ID
2timestamp必选String   时间戳
3keyinfo必选String   对APPID、APPKEY、Timestamp进行sha1-hamc运算,加密串为APPID和APPKEY及Timestamp字符串相连,以APPKEY为加密参数; Php使用的签名函数:hash_hmac,hash_algos参数值为“sha1”

 

⑤返回参数
序号字段名约束类型长度说明
1retCode必选String10返回码
2retDesc必选String   返回码描述
3tokenInfo必选JSON   返回的token对象信息
3.1validtime必选String32返回token有效期
3.2platformCode可选String10所属平台编码
3.3appKey必选String32应用Key
3.4userId必选String32用户编码
3.5appId必选String32应用ID
3.6token必选String32访问令牌
3.7id必选String32应用主键

 

⑥接口示例

请求参数:

 "appid":"5736915E311EA64DEA******",   

 "keyinfo":"E4AA972000C1262169743C******", 

 "timestamp":"1458282******"

 }

返回值:

 

"tokenInfo": { "validtime": "14670914******",

"platformCode": "",

 "appkey":   "8583C30ED82CFC4169C4******",

 "userId": "AP93******",

 "appId":   "B1901B73D882387798AA5******",

 "token":   "77b117c4069e4f74b2434******",

 "id":   "5736915E311EA64DEA49547******"    },

 "retCode":   "000000",

"retDesc":   "获取Token成功。" 

}



 

1.1.2       代理程序开发

(1)环境准备

运行本节描述的 Java 代码之前,请按以下说明准备好环境

1.     通过下面方式可以引入依赖:

    下载依赖jar包:

     下载链接:

    该jar包是一个大jar包,它包含了org.apache.activemq:activemq-all:5.13.2

 

2.     代码里涉及到的token,appQueueApplyId,需要到服务体系上创建获取。具体过程参考数据交换服务接入文档。

 

(2)发布数据
①简介

服务商通过应用或者平台接入数据交换中心发布数据

②说明

数据交换针对所以接入的订阅服务,都会提供一定量的测试报文数据;针对发布所有推送的数据对于数据交换系统都是测试数据,不会影响到真实数据。服务商可以通过统计功能页面,查看自己对应服务的推送/消费的报文量情况。

服务商发布数据之前请通过服务体系获取发布数据服务码。开发测试阶段,可以通过设置环境EnvironmentManager.switchEnvironmentToTest();设置成测试环境,发布测试数据,测试发布数据服务,上线后设置sdk环境EnvironmentManager.switchEnvironmentToOnline();可以进行上线正式环境部署。sdk默认为EnvironmentManager.switchEnvironmentToTest();

③代码示例

       static {
       //
默认为测试环境
        EnvironmentManager.switchEnvironmentToOnline();//
切换到正式环境
        EnvironmentManager.switchEnvironmentToTest();//
切换到测试环境
    }
      

/**
     *
特殊的应用不需要token
     *
     */
private static void publish() {
        String appQueueApplyId = "xxxxx"; //
服务编号
        JMSProducerWrapperjmsProducerWrapper = JMSProducerFactory
                .getJMSProducer(appQueueApplyId);
        JMSProducerjmsProducer = jmsProducerWrapper.getJmsProducer();
        //
获取队列名称
        String queueName = jmsProducerWrapper.getQueueName();

        //
发送消息
        jmsProducer.send(queueName, "
发送的消息");
    }

 

(3)订阅数据
①简介

服务商通过应用或者平台接入数据交换中心订阅数据

②说明

服务商发布数据之前请通过服务体系获取订阅数据服务码和token。开发测试阶段,可以通过设置环境EnvironmentManager.switchEnvironmentToTest();设置成测试环境,订阅测试数据,测试订阅数据服务,上线后设置sdk环境EnvironmentManager.switchEnvironmentToOnline();可以进行上线正式环境部署。sdk默认为EnvironmentManager.switchEnvironmentToTest();

③代码示例

       static {
              //
设置正式测试环境
       EnvironmentManager.switchEnvironmentToOnline();//
正式环境
       EnvironmentManager.switchEnvironmentToTest();//
测试环境
    }

public static void main(String[] args) {


        String token = "xxxxxxx"; //
用户token,用来数据服务权限验证
        String appQueueApplyId = "xxxxxxx"; //
服务编号
        MultiThreadMessageListenermultiThreadMessageListener = newMultiThreadMessageListener(newMessageHandler() {
       @Override
       public void handle(Message message) {
           try {
             //
获取数据入口
             System.out.println(((ActiveMQTextMessage) message).getText());
           } catch (JMSException e) {
                 e.printStackTrace();
           }
        }
              });
       //
传入参数
       JMSConsumer.receiveAndHandleMsg(token, appQueueApplyId, multiThreadMessageListener);
    }