二次开发接口说明

合集下载

二次开发接口文档

二次开发接口文档

接口开发文档一、开发包目录结构1.1demo 文件夹包含了sdk 接口调用源代码,可供二次开发参考。

使用 C++开发的 MFC 程序。

1.2dll 文件夹包含了二次开发所需的所有动态库,demo 编译好的e xe 文件需要放在该文件夹才可以运行。

1.3include 文件夹包含了二次开发所需要的头文件。

1.4lib 文件夹包含了二次开发所需要的l ib 静态库。

1.5DSS 二次开发指南(C++).pdf指导二次开发用户如何新建V S2005 工程运行d emo 文件夹中的d emo。

1.6Version.xmldpsdk 开发包的程序版本信息。

1.7常见问题解答.pdf二次开发常见问题以及解决方式。

1.8大华平台S DK 开发手册(C++版).chm二次开发接口使用说明。

二、术语和缩略语1、D PSDK:DSS 平台二次开发S DK 包2、C MS:中心管理服务3、D MS:设备管理模块4、d emo:程序示例(功能类似D SS 平台客户端)5、w eb 管理员端:在浏览器中输入D SS 平台的i p 即可打开管理员端6、C ameraID:通道i d,形如:10000010$1$0$07、D eviceID:设备i d三、Demo 操作方法3.1 运行d emo把“demo/bin/”目录下面的3个文件,如下图所示3.2 登陆平台登陆界面如图 1 所示,其中: IP:DSS 平台ip 地址;端口:9000;用户名:web 管理员端配置的用户;密码:web管理员端配置的用户对应的密码。

点击“登录”按钮,登陆平台。

登陆成功的界面如图2所示:1235图2主界面上图选中的 5个模块分别是:1、组织树;2、实时视频;3、本地录像;4、云台操作;5、执行结果。

3.3 主界面功能介绍3.3.1、组织树操作步骤:点击“加载所有组织结构”按钮加载组织结构是其他操作的前提,是为了获取 DSS平台上所有的设备信息。

二次开发接口文档

二次开发接口文档

接口开发文档一、开发包目录结构1.1demo文件夹包含了sdk接口调用源代码,可供二次开发参考。

使用C++开发的MFC程序。

1.2dll文件夹包含了二次开发所需的所有动态库,demo编译好的exe文件需要放在该文件夹内才可以运行。

1.3include文件夹包含了二次开发所需要的头文件。

1.4lib文件夹包含了二次开发所需要的lib静态库。

1.5DSS二次开发指南(C++).pdf指导二次开发用户如何新建VS2005工程运行demo文件夹中的demo。

1.6Version.xmldpsdk开发包的程序版本信息。

1.7常见问题解答.pdf二次开发常见问题以及解决方式。

1.8大华平台SDK开发手册(C++版).chm二次开发接口使用说明。

二、术语和缩略语1、DPSDK:DSS平台二次开发SDK包2、CMS:中心管理服务5、web管理员端:在浏览器中输入DSS平台的ip即可打开管理员端6、CameraID:通道id,形如:10000010$1$0$07、DeviceID:设备id三、Demo操作方法3.1运行demo把“demo/bin/”目录下面的3个文件,如下图所示拷贝到“dll”文件夹下面,运行Test_DPSDK_Core.exe。

3.2登陆平台图 1 登陆界面登陆界面如图 1 所示,其中: IP:DSS 平台ip 地址;端口:9000;用户名:web 管理员端配置的用户;密码:web管理员端配置的用户对应的密码。

点击“登录”按钮,登陆平台。

登陆成功的界面如图2所示:1235图2 主界面上图选中的 5个模块分别是:1、组织树;2、实时视频;3、本地录像;4、云台操作;5、执行结果。

3.3主界面功能介绍3.3.1、组织树操作步骤:点击“加载所有组织结构”按钮加载组织结构是其他操作的前提,是为了获取 DSS平台上所有的设备信息。

3.3.2、实时视频模块操作步骤:1)确保已经成功加载组织结构。

2)输入CamID(通道ID)。

U8-EAI二次开发说明

U8-EAI二次开发说明

企业应用集成工具(EAI)二次开发1.概述U850企业应用集成工具(EAI)是U850与外部系统的数据接口,EAI提供了一些组件,可以在这些组件的基础上进行二次开发(以下简称“EAI二次开发”),实现与外部系统的集成。

不同系统集成的关键是遵循共同的数据标准,U850根据自己系统提出了一套数据标准,包括各种单据和基础档案,外部系统如果要和U850集成则必须遵循这一标准。

这套标准用XML 描述,因此数据流都为XML格式。

EAI二次开发可分为两种模式:注意:文中所有编程都以VB为例一、直接利用EAI管理工具。

在开始菜单中选择企业应用集成工具,登录企业应用集成主界面。

在这里可以将U850数据以标准XML文件的形式导出U850数据库或将标准XML数据文件导入U850系统。

二次开发程序员只需编写一个工具将标准XML数据文件进行适当转换写入外部系统或取出外部系统数据写成标准XML数据文件。

(参看EAI安装目录\xml\Samples\下的例子)数据流程如下:这种开发模式比较简单,优点是:充分利用EAI工具提供的功能,编程简单;缺点是:只能提供批量导入导出功能。

二、利用EAI提供的组件,进行灵活的二次开发。

包括两种方式:本地COM方式、Internet方式。

1)本地COM方式:这种方式可根据开发者的需要批量处理或者实时处理。

接口调用非常简单,简化了编程。

开发者只需将标准数据传入接口,如下:Set Obj=CreateObject(U8Distribute.iDistribute)Str = obj. Process(sXml)sXml为标准数据串,具体格式后面会说明。

2)Internet方式:http.Open "Post",http_name & “import.asp", True //指定服务器ASPhttp.send dom.xml //把xml数据发送到服务器端strRet= http.responseText //strRet :返回的xml格式的回执信息2.数据格式标准EAI可以导入导出的数据范围包括:Ø总帐§凭证§银行对账单Ø工资管理§人员档案§工资项目数据Ø固定资产§固定资产卡片Ø成本管理§材料消耗数据Ø资金管理§资金内部结算单Ø应收管理§应收单§收款单Ø应付管理§应付单§付款单Ø采购管理§采购订单§采购到货单§采购发票Ø销售管理§销售订单§发货单§销售发票§销售发票_导入到内部结算单Ø库存管理§入库单§出库单§库存量Ø基础档案§部门档案§职员档案§地区分类§客户分类§客户档案§供应商分类§供应商档案§存货分类§存货档案§结算方式§付款条件§开户银行§仓库档案§收发类别§销售类型§计量单位§计量单位组§产品结构§采购类型§成套件§费用项目§发运方式§货位档案§自定义项档案§项目§会计科目§外币§凭证类别§常用摘要提示:EAI安装目录\xml\Operation\dir.xml保存了相关定义下面一个例子是从U8导出的部门档案的片断:<?xml version="1.0" encoding="gb2312" ?><ufinterface sender="001" receiver="u8" roottag="department" docid=".533424" proc="Query" codeexchanged="N" exportneedexch="N" display="部门档案" family="基础档案" billtype=""> <department><code>1</code><endflag>0</endflag><name>综合处</name><rank>1</rank><manager/><prop>管理兼技术</prop><phone/><address/><remark/><creditline/><creditgrade/><creditdate/><offergrade/><offerrate/></department><department><code>109</code><endflag>1</endflag><name>厂办公室</name><rank>2</rank><manager/><prop>管理</prop><phone/><address/><remark/><creditline/><creditgrade/><creditdate/><offergrade/><offerrate/></department>…………</ufinterface>EAI中所有的标准数据文件都有类似于上例的结构,首先,有一个名为ufinterface的元素,ufinterface再有若干个子元素组成,不同应用的子元素有不同的格式。

二次开发接口说明

二次开发接口说明

二次开发接口说明目录客户接口说明.................................................................................................... 错误!未定义书签。

短信二次接口技术 (2)支持多种操作体统:WINDOWS、LINUX、UNIX (2)支持多种开发语言:C#、VB、delphi、VC++、ASP、JAVA、.NET 等 (2)支持编码格式:UTF-8编码 (3)第一章发送接口 (3)1.1 请求地址 (3)1.2参数说明 (3)1.3返回值 (3)第二章余额及已发送量查询接口 (5)2.1 请求地址 (5)2.2参数说明 (5)2.3返回值 (5)第三章非法关键词查询 (7)3.1 请求地址 (7)3.2参数说明 (7)3.3返回值 (7)第四章状态报告接口 (9)4.1请求地址 (9)4.2参数说明 (9)4.3返回值 (9)4.4错误返回值——状态报告请求错误返回格式及对应值 (10)第五章上行接口 (10)5.1 请求地址 (10)5.2参数说明 (10)5.3返回值 (10)5.4错误返回值——回复请求错误返回格式及对应值 (11)短信二次接口技术随着移动商务应用和3G无线技术的加速普及和深入发展与用户需求的变化,短信用户群由时尚人群不断向企业、行业用户扩展。

短信作为一种实用、方便、廉价的通信手段,越来越多地成为企业、行业人士日常工作不可或缺的通讯工具;同时,短信应用范围也由通用服务向企业、行业应用领域扩展。

短信应用不再局限于交互游戏等娱乐方式,它已经介入到企业办公、银行、证券、保险、交通、教育、社保、数据采集等领域,已成为企业、行业应用密不可分的一部分。

面向企业、行业的短信业务逐渐成为短信应用的一个重要组成部分,越来越多的企业开始利用短信平台开展各种短信增值业务如:OA管理系统、短信商业信息发布系统、短信客户关系管理系统、短信呼叫中心、进销存系统、短信防伪、生产管理系统、短信数据采集等。

pano2VR二次开发接口(API)相关说明

pano2VR二次开发接口(API)相关说明

Flash API (Pano2VR) From Garden Gnome Software (Redirected from Pano2VR - Flash API)Jump to: navigation, searchTo embed the pano, please use the following code: Contents[hide]∙1Loading the Panoramao 1.1Actionscript 3.0o 1.2Actionscript 2.0∙2Panorama API callso 2.1Changing the viewo 2.2Changing the panorama windowo 2.3Hotspotso 2.4Videoo 2.5Others∙3Change the default Hotspot handlero 3.1Actionscript 3.0o 3.2Actionscript 2.0Loading the Panorama Actionscript 3.0import flash.display.*;import .URLRequest;import flash.events.Event;var loader:Loader = new Loader();var url:String = "panorama.swf";var urlReq:URLRequest = new URLRequest(url); var vr:MovieClip;// panorama movieclip// This is done after the swf is loaded.function finished_loading (e:Event){}function initHandler(event:Event):void{trace("initHandler: "+ event);vr = MovieClip(loader.content);// cast 'DisplayObject' to 'MovieClip'// vr.isFlash10=false; // Disable Flash 10 rendering if the container is Flash 9}function initPanorama(e:Event){// check if the panorama object is available and initialize it if((vr!=null)&&(vr.pano!=null)){removeEventListener(Event.ENTER_FRAME, initPanorama);vr.x=50;vr.y=50;vr.pano.setWindowSize(400,300);}}// call initPanorama every frameaddEventListener(Event.ENTER_FRAME, initPanorama);// Tell the loader to call 'finished_loading' after the swf is loaded. loader.contentLoaderInfo.addEventListener( PLETE, finished_loading);// Tell the loader to call 'initHandler' after the swf is initialized. loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);loader.load(urlReq);addChild(loader);// add your swf directly to the stageIf you like to remove the panorama use the following code:vr.cleanup();removeChild(loader);You need to call the cleanup method to avoid errors like "Cannot access a property or method of a null object reference" because ActionScript doesn't provide a destructor for objects. Actionscript 2.0Only for Flash 8 export in Pano2VR 2.x - deprecatedvar vr:MovieClip = _root.createEmptyMovieClip("vr", 1);vr._lockroot=true;// move the upper left cornervr._x=100;vr._y=200;var myLoader = new MovieClipLoader();var myListener = new Object();myListener.onLoadStart = function(){// Set the dimensions and position of the panovr.window_width=500;vr.window_height=380;vr.window_x=100;vr.window_y=10;};myListener.onLoadInit = function(){// your initalisation of the pano, add Hotspots,...// You can also set the window size here but you need to use the API vr.pano.setWindowSize(500,380);};myLoader.addListener(myListener);myLoader.loadClip("mypanorama.swf", vr);I never managed to use loadMovie properly, so if you really want to use it you are on your own. The demo at/samples/pano2qtvr/flashtour/ includes the .fla file with the complete source code. Panorama API callsAfter the panorama is initialized and loaded you can make the following API calls at runtimeChanging the view<panoclip>.pano.getPan();// returns the current pan angle<panoclip>.pano.setPan(angle_in_degrees:Number);// sets the current pan angle<panoclip>.pano.changePan(offset_in_degrees:Number);// change the current pan angle<panoclip>.pano.getTilt();// returns the current tilt angle<panoclip>.pano.setTilt(angle_in_degrees:Number);// sets the current tilt angle<panoclip>.pano.changeTilt(offset_in_degrees:Number);// change the current tilt angle<panoclip>.pano.getFov();// sets the current FoV<panoclip>.pano.setFov(angle_in_degrees:Number);// sets the current FoV<panoclip>.pano.changeFov(offset_in_degrees:Number);// change the current FoV<panoclip>.pano.moveTo(pan:Number, tilt:Number, fov:Number, speed:Number);// move to positionChanging the panorama window<panoclip>.pano.setWindowSize(<width>,<height>);// sets the current panorama window size<panoclip>.pano.setWindowPos(<x>,<y>);// sets the panorama window positionHotspots<panoclip>.pano.addHotspot(<id:String>,<pan:Number>,<tilt:Number >,<mc:MovieClip>);// Adds a Hotspot to the panorama ∙<id> - This is just a string. No use for it now but maybe in the future.∙<pan>,<tilt> - define the position within the panorama.∙<mc> - this can be anything you created in the library or code. Basically only the _x and _y are moved by the pano so the depth of your movieclip defines for example the visibility. Also you can let the movieclip do what ever you want for example open a URL, change the color on mouse over.... animations will always run with the speed of the pano so don't expect wonders. On a normal PC this would result in 10-20 fps.<panoclip>.pano.unloadHotspots();// Remove references for all HotspotsVideoIf you like to play panoramic videos you can directly access the video object. The variables are:<panoclip>.pano.video.connection // NetConnection object<panoclip>.pano.video.stream // NetStream object<panoclip>.pano.video.video // Video objectYou can also bind a video at runtime with<panoclip>.attachVideo(videoXML:String);The videoXML has to be the same form as for the HTML based binding. Example:vr.attachVideo('<video url="video.flv"/>');OthersSome other API calls that might be useful<panoclip>.pano.setAutorotate(<speed:Number>,<delay:Number>,<retu rn to horizon:Number>,<only in focus:Boolean>);<panoclip>.pano.setLocked(<value:Boolean>);// Allow interaction with the panorama (mouse/keyboard)<panoclip>.pano.setMeshDensity(<angular speed:Number>);// change the Flash 9 quality for the current speed (in scripted movement)<panoclip>.pano.openNext(<url:String>,<target:String>);// open a new panorama.swf within the current player, target can be"pan/tilt/fov"Change the default Hotspot handlerFor panoramas with QuickTime like hotspots the following code allows to use your own handler.Actionscript 3.0import flash.display.*;import .URLRequest;import flash.events.Event;var loader:Loader = new Loader();var url:String = "panorama.swf";var urlReq:URLRequest = new URLRequest(url);var vr:MovieClip;// panorama movieclip// This is done after the swf is loaded.function finished_loading (e:Event){}function initHandler(event:Event):void{trace("initHandler: "+ event);vr = MovieClip(loader.content);// cast 'DisplayObject' to'MovieClip'// vr.isFlash10=false; // Disable Flash 10 rendering if the container is Flash 9}function initPanorama(e:Event){// check if the panorama object is available and initialize itif((vr!=null)&&(vr.pano!=null)){removeEventListener(Event.ENTER_FRAME, initPanorama);// Hotspot handlersvr.pano.onClickQtHotspot=function(id:Number,title:String,url: String,target:String){// add your code here!trace("Area Hotspot:"+ id +","+ title);}vr.pano.onClickHotspot=function(id:String,obj:Object,url:Strin g,target:String){// add your code here!trace("Point Hotspot:"+ id);}vr.pano.onRollOverQtHotspot=function(id:Number,title:String, url:String,target:String){trace("QtRollOver "+ id +","+ title);}vr.pano.onRollOutQtHotspot=function(id:Number,title:String,u rl:String,target:String){trace("QtRollOut "+ id +","+ title);}}}// call initPanorama every frameaddEventListener(Event.ENTER_FRAME, initPanorama);// Tell the loader to call 'finished_loading' after the swf is loaded. loader.contentLoaderInfo.addEventListener( PLETE, finished_loading);// Tell the loader to call 'initHandler' after the swf is initialized. loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);loader.load(urlReq);addChild(loader);// add your swf directly to the stage Actionscript 2.0Only for Flash 8 export in Pano2VR 2.x - deprecatedvar vr:MovieClip = _root.createEmptyMovieClip("vr", 1);vr._lockroot=true;var myLoader = new MovieClipLoader();var myListener = new Object();myListener.onLoadInit = function(){// callback after the pano is fully loadedvr.pano.onClickQtHotspot=function(id:Number,title:String,url:Stri ng,target:String){// add your code here!trace(id + "," + title);}};myLoader.addListener(myListener);myLoader.loadClip("mypanorama.swf", vr);其他说明文档pano2VR攻略-flash系列Pano2vr全景文件接口· 加载后的全景文件类型为MovieClip,命名为:panoMc。

microstation二次开发指南

microstation二次开发指南

microstation二次开发指南MicroStation是一种广泛应用于土木工程和建筑设计的CAD软件。

它具有强大的二次开发功能,允许用户根据自己的需求进行定制和扩展。

本文将为大家提供一份MicroStation二次开发指南,帮助读者了解和应用这一功能。

一、什么是MicroStation二次开发?MicroStation二次开发是指通过使用MicroStation的编程接口和开发工具,对软件进行定制和扩展的过程。

通过二次开发,用户可以根据自己的需求,添加新的功能、修改现有功能或者与其他软件进行集成,以提高工作效率和准确性。

二、MicroStation二次开发的工具和接口MicroStation提供了多种工具和接口,用于进行二次开发。

以下是其中一些常用的工具和接口:1. MicroStation VBA:MicroStation VBA是MicroStation的内置编程环境,基于Microsoft的Visual Basic for Applications。

通过编写VBA代码,用户可以访问和操作MicroStation的对象模型,实现自定义功能。

2. MicroStation SDK:MicroStation SDK(Software Development Kit)是一个开发工具包,提供了丰富的API(Application Programming Interface)和示例代码,用于开发插件和扩展功能。

3. MicroStation CONNECT Edition:MicroStation CONNECT Edition是MicroStation的最新版本,提供了更多的二次开发功能和改进的开发工具。

它支持多种编程语言,如C++、C#、Python 等,并提供了更强大的对象模型和API。

三、MicroStation二次开发的应用场景MicroStation二次开发可以应用于多个领域和场景,以下是其中一些常见的应用场景:1. 自动化绘图:通过二次开发,可以实现自动创建符合特定标准的绘图文件,减少重复劳动和人为错误。

布谷鸟二次开发接口说明

《布谷鸟2010》二次开发接口说明(SDK R3.0)平台:.netFramework2.0森森工作室http:布谷鸟客户端插件用法 (2)客户端插件用法: (3)服务器端插件用户: (3)客户端标准插件接口 (3)客户端标准插件接口 (3)属性: (3)方法 (4)事件 (4)接口代码: (4)客户端通讯接口 (7)属性: (7)方法 (7)事件 (7)接口代码: (8)客户端文件发送接口 (10)属性: (10)方法 (10)事件 (10)接口代码: (10)布谷鸟客户端多页面接口: (12)属性: (12)方法 (12)接口代码: (12)布谷鸟客户端多页面Web浏览接口: (14)属性: (14)方法 (14)事件 (14)接口代码: (15)布谷鸟服务器端插件接口: (17)属性: (17)方法 (17)事件 (17)接口代码: (18)服务器端系统消息组件进行消息发送: (20)说明: (20)使用方法: (20)布谷鸟客户端插件用法1.插件开发使用.net平台2.SisenMESS-Interface.dll文件是接口,在程序中需要引用3.Guid生成器.exe用于生成Guid编号,每个模块都需要用一个Guid做为标识。

以免和其它插件产生冲突。

客户端插件用法:客户端插件生成后,复制到布谷鸟客户端目录下的“plug_ins”目录中便可进行使用;如果您开发的插件还有其它DLL或文件,请复制到“plug_ins”目录下的” Abet_File”目录中去。

服务器端插件用户:服务器端插件生成后,复制到布谷鸟服务器端目录下的“Server_Plug_in”目录中去;如果您开发的插件还有其它DLL或文件,请复制到“Server_Plug_in”目录下的”Abet_File”目录中去。

客户端标准插件接口客户端标准插件接口接口名称:SisenMESS_Interface.SisenMESS_Tools_Interface说明:布谷鸟二次开发中,最基本的接口。

接口函数库(二次开发库)使用说明书

接口函数库(二次开发库)使用说明书说明书版本:V2.06更新日期:2020.01.01目录第一部分概述 (1)第二部分兼容ZLG函数库及数据结构 (2)2.1 类型定义 (2)2.1.1 Device Type (2)2.1.2 VCI_BOARD_INFO (2)2.1.3 VCI_CAN_OBJ (3)2.1.4 VCI_INIT_CONFIG (5)2.2 函数描述 (8)2.2.1 VCI_OpenDevice (8)2.2.2 VCI_CloseDevice (9)2.2.3 VCI_InitCan (9)2.2.4 VCI_ReadBoardInfo (12)2.2.5 VCI_GetReceiveNum (13)2.2.6 VCI_ClearBuffer (14)2.2.7 VCI_StartCAN (15)2.2.8 VCI_ResetCAN (16)2.2.9 VCI_Transmit (17)2.2.10 VCI_Receive (18)第三部分其他函数及数据结构描述 (21)3.1 类型定义 (21)3.1.1 VCI_BOARD_INFO1............................................................ 错误!未定义书签。

3.2 函数描述 (21)3.2.1 VCI_UsbDeviceReset (21)3.2.2 VCI_FindUsbDevice (22)第四部分接口库函数使用流程 (24)I第一部分概述用户如果只是利用USB-CAN总线接口适配器进行CAN总线调试,可以直接利用随机提供的USB-CAN Tool工具软件,进行收发数据的测试。

如果用户打算编写自己产品的软件程序。

请认真阅读以下说明,并参考我们提供的:① C++Builder ②C# ③VC ④VB ⑤ ⑥Delphi ⑦LabVIEW ⑧LabWindows/CVI ⑨Matlab等示例代码。

二次开发使用 WEB32网页调用接口说明V2.0

WEB3.2控件二次开发接口说明文档编写时间:2017/05/031修订记录目录WEB3.2控件接口说明文档 (1)1接口方法: (7)1.1插件初始化(晓慧) (7)1.1.1SetInitParams .................................................................. 错误!未定义书签。

1.1.2AddEventListener ........................................................... 错误!未定义书签。

1.1.3SetTranslateString ........................................................... 错误!未定义书签。

1.1.4SetOEM ........................................................................... 错误!未定义书签。

1.2登陆/登出(晓慧) ................................................................... 错误!未定义书签。

1.2.1LoginDeviceEx ............................................................... 错误!未定义书签。

1.2.2LogoutDevice .................................................................. 错误!未定义书签。

1.3窗口相关(晓慧) .................................................................... 错误!未定义书签。

二次开发接口说明V3.0

⼆次开发接⼝说明V3.01.概述精伦电⼦开发的⼆代⾝份证读卡系列机具适⽤于相关⾏业的联机型应⽤。

产品提供了完善的⼆次软件开发接⼝(API)。

本⼿册对开发接⼝的⽂件组成、函数定义格式、调⽤⽅法及返回值等进⾏详细的说明。

本通⽤开发包⽀持的设备型号如下:1、iDR200(串⼝和USB⼝)。

2、iDR320(必须进⼊“同步应⽤”模式)。

3、iDR400-1(必须进⼊“同步”模式)。

4、iDR210(USB-HID免驱动接⼝)。

5、iDR210(串⼝)。

注意:完全兼容原2.0版本开发接⼝,⽀持USB-HID接⼝和串⼝的iDR210。

1、如果使⽤原开发包采⽤动态调⽤dll⽅式,只需直接替换原dll即可。

2、如果使⽤原开发包采⽤的静态调⽤⽅式,则在不改变代码的情况下,对原程序重新编译链接即可。

2.系统要求使⽤本API的PC机,必须满⾜下列条件:●Windows 98、Windows 2000 Pro、Windows 2000 Server、Windows XP。

●⾄少32兆内存(32M RAM or Larger)。

●⾄少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger)。

●⾄少⼀个空闲普通串⼝或USB⼝(视⽤户需求⽽定)。

3.接⼝⽂件说明接⼝⽂件包括:Dewlt.dll 相关动态联接库sdtapi.dll 相关动态联接库JpgDll.dll 相关动态联接库SavePhoto.dll 相关动态联接库sdtapi.h 相关动态联接库头⽂件适⽤开发语⾔:Visual C++ 5.0 及以后版本C++ Builder 5.0 及以后版本Visual Basic 5.0 及以后版本Delphi 3.0 及以后版本PowerBuilder 5.0 及以后版本4.接⼝函数说明4.1.端⼝函数4.1.1.端⼝初始化函数原型:int InitComm (int iPort)说明:本函数⽤于打开串⼝或USB并检测读卡设备是否就绪。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二次开发接口说明目录客户接口说明.................................................................................................... 错误!未定义书签。

短信二次接口技术 (2)支持多种操作体统:WINDOWS、LINUX、UNIX (2)支持多种开发语言:C#、VB、delphi、VC++、ASP、JAVA、.NET 等 (2)支持编码格式:UTF-8编码 (3)第一章发送接口 (3)1.1 请求地址 (3)1.2参数说明 (3)1.3返回值 (3)第二章余额及已发送量查询接口 (5)2.1 请求地址 (5)2.2参数说明 (5)2.3返回值 (5)第三章非法关键词查询 (7)3.1 请求地址 (7)3.2参数说明 (7)3.3返回值 (7)第四章状态报告接口 (9)4.1请求地址 (9)4.2参数说明 (9)4.3返回值 (9)4.4错误返回值——状态报告请求错误返回格式及对应值 (10)第五章上行接口 (10)5.1 请求地址 (10)5.2参数说明 (10)5.3返回值 (10)5.4错误返回值——回复请求错误返回格式及对应值 (11)短信二次接口技术随着移动商务应用和3G无线技术的加速普及和深入发展与用户需求的变化,短信用户群由时尚人群不断向企业、行业用户扩展。

短信作为一种实用、方便、廉价的通信手段,越来越多地成为企业、行业人士日常工作不可或缺的通讯工具;同时,短信应用范围也由通用服务向企业、行业应用领域扩展。

短信应用不再局限于交互游戏等娱乐方式,它已经介入到企业办公、银行、证券、保险、交通、教育、社保、数据采集等领域,已成为企业、行业应用密不可分的一部分。

面向企业、行业的短信业务逐渐成为短信应用的一个重要组成部分,越来越多的企业开始利用短信平台开展各种短信增值业务如:OA管理系统、短信商业信息发布系统、短信客户关系管理系统、短信呼叫中心、进销存系统、短信防伪、生产管理系统、短信数据采集等。

业务系统、网站、客户管理系统、进销存系统、OA、生产管理系统。

手机也势必会成为企业信息化管理、移动商务办公的又一大信息终端。

支持多种操作体统:WINDOWS、LINUX、UNIX支持多种开发语言:C#、VB、delphi、VC++、ASP、JAVA、.NET 等支持开发方式:Http协议支持编码格式:UTF-8编码第一章发送接口1.1 请求地址请求地址是客户接口程序调用时请求的url地址,采用的是http post 接口,地址是客户端地址+ 例如::8888/;入口地址一般不会发生变化,当发生变化的时候,会通知接口用户1.2参数说明:8888/?action=send例如:action=send&userid=12&account=账号&password=密码&mobile=,&content=内容&sendTime=&taskName=本次任务描述&checkcontent=1&mobilenumber=10&countnumber=12&telephonenumber=21.3返回值在接收到客户端发送的http请求后,返回以xml的方式返回处理结果。

格式为:<?xml version="1.0" encoding="utf-8" ?><returnsms><returnstatus>status</returnstatus> ---------- 返回状态值:成功返回Success 失败返回:Faild<message>message</message> ---------- 返回信息:见下表<remainpoint> remainpoint</remainpoint> ---------- 返回余额<taskID>taskID</taskID> ----------- 返回本次任务的序列ID<successCounts>successCounts</successCounts> --成功短信数:当成功后返回提交成功短信数</returnsms>C# 实例:try{Encoding myEncoding = coding("UTF-8");string param = "action=send&userid=" + userid + "&account=" + code(account, myEncoding) + "&password=" + code(password, myEncoding) + "&mobile=,&content=" + code(content, myEncoding) + "&sendTime=" +code(sendTime, myEncoding) + "&mobilenumber=2&countnumber=2&telephonenumber=0";byte[] postBytes = .GetBytes(param);HttpWebRequest req = (HttpWebRequest)e(":8888/");d = "POST";ntType = "application/x-www-form-urlencoded;charset=UTF-8";ntLength = h;using (Stream reqStream = questStream()){(postBytes, 0, h);}.XmlDocument xmlDoc = new .XmlDocument();using (WebResponse wr = sponse()){StreamReader sr = new StreamReader(wr.GetResponseStream(), .8);.StreamReader xmlStreamReader = sr;(xmlStreamReader);}if (xmlDoc == null){("请求发生异常" );}else {String message = ementsByTagName("message").Item(0).ing();if(message =="ok"){("发送成功" );}else {(message );}}}catch (.WebException WebExcp){("网络错误,无法连接到服务器!" );}第二章余额及已发送量查询接口2.1 请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post接口,地址是:8888/入口地址一般不会发生变化,当发生变化的时候,会通知接口用户2.2参数说明例如:action=overage&userid=12&account=账号&password=密码2.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><returnstatus>status</returnstatus>-------返回状态值:成功返回Success 失败返回:Faild <message>message</message>--------------返回信息提示:见下表<payinfo>payinfo</payinfo>--------------返回支付方式后付费,预付费<overage>overage</overage>-------------返回已发送条数<sendTotal>sendTotal</sendTotal>----返回总点数当支付方式为预付费是返回总充值点数</returnsms>C# 实例:try{Encoding myEncoding = coding("UTF-8");string param = "action=overage&userid=" + userid + "&account=" + code(account, myEncoding) +"&password=" + code(password, myEncoding) ;byte[] postBytes = .GetBytes(param);HttpWebRequest req = (HttpWebRequest)e(":8888/");d = "POST";ntType = "application/x-www-form-urlencoded;charset=UTF-8";ntLength = h;using (Stream reqStream = questStream()){(postBytes, 0, h);}.XmlDocument xmlDoc = new .XmlDocument();using (WebResponse wr = sponse()){StreamReader sr = new StreamReader(wr.GetResponseStream(), .8);.StreamReader xmlStreamReader = sr;(xmlStreamReader);}if (xmlDoc == null){("请求发生异常" );}else {String returnstatus= ementsByTagName("returnstatus").Item(0).ing();String message = ementsByTagName("message").Item(0).ing();String overage= ementsByTagName("overage").Item(0).ing();if(returnstatus=="Success"){("查询余额成功" );}else {(message );}}}catch (.WebException WebExcp){("网络错误,无法连接到服务器!" );}第三章非法关键词查询3.1 请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post接口,地址是:8888/入口地址一般不会发生变化,当发生变化的时候,会通知接口用户3.2参数说明action=checkkeyword&userid=12&account=账号&password=密码&content=内容3.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><message>message</message>--------------返回信息提示:见下表</returnsms>C# 实例:try{Encoding myEncoding = coding("UTF-8");string param = "action=overage&userid=" + userid + "&account=" + code(account, myEncoding) + "&password=" + code(password, myEncoding) ;byte[] postBytes = .GetBytes(param);HttpWebRequest req = (HttpWebRequest)e(":8888/");d = "POST";ntType = "application/x-www-form-urlencoded;charset=UTF-8";ntLength = h;using (Stream reqStream = questStream()){(postBytes, 0, h);}.XmlDocument xmlDoc = new .XmlDocument();using (WebResponse wr = sponse()){StreamReader sr = new StreamReader(wr.GetResponseStream(), .8);.StreamReader xmlStreamReader = sr;(xmlStreamReader);}if (xmlDoc == null){("请求发生异常" );}else {String returnstatus= ementsByTagName("returnstatus").Item(0).ing();String message = ementsByTagName("message").Item(0).ing();String overage= ementsByTagName("overage").Item(0).ing();if(returnstatus=="Success"){("查询余额成功" );}else {(message );}}}catch (.WebException WebExcp){("网络错误,无法连接到服务器!" );}第四章状态报告接口4.1请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post接口,地址是:8888/入口地址一般不会发生变化,当发生变化的时候,会通知接口用户4.2参数说明action=query&userid=12&account=账号&password=密码4.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><statusbox><mobile></mobile>-------------对应的手机号码<taskid>1212</taskid>-------------同一批任务ID<status>10</status>---------状态报告----10:发送成功,20:发送失败<receivetime>2011-12-02 22:12:11</receivetime>-------------接收时间</statusbox><statusbox><mobile></mobile><taskid>1212</taskid><status>20</status><receivetime>2011-12-02 22:12:11</receivetime></statusbox></returnsms>4.4错误返回值——状态报告请求错误返回格式及对应值<?xml version="1.0" encoding="utf-8" ?><returnsms><errorstatus><error>1</error>-------------错误码<remark>用户名或密码不能为空</remark>-------------错误描述</errorstatus></returnsms>1:用户名或密码不能为空2:用户名或密码错误3:该用户不允许查看状态报告4:参数不正确第五章上行接口5.1 请求地址请求地址是客户接口程序调用的时候请求的url地址,采用的是http post接口,地址是:8888/入口地址一般不会发生变化,当发生变化的时候,会通知接口用户5.2参数说明例如:action=query&userid=12&account=账号&password=密码5.3返回值<?xml version="1.0" encoding="utf-8" ?><returnsms><callbox><mobile></mobile>-------------对应的手机号码<taskid>1212</taskid>-------------同一批任务ID<content>你好,我不需要</content>---------上行内容<receivetime>2011-12-02 22:12:11</receivetime>-------------接收时间</callbox><callbox><mobile></mobile><taskid>1212</taskid><content>你好,本次活动路线是怎么的</content><receivetime>2011-12-02 22:12:11</receivetime></callbox></returnsms>5.4错误返回值——回复请求错误返回格式及对应值<?xml version="1.0" encoding="utf-8" ?><returnsms><errorstatus><error>1</error>-------------错误码<remark>用户名或密码不能为空</remark>-------------错误描述</errorstatus></returnsms>1:用户名或密码不能为空2:用户名或密码错误3:该用户不允许查看状态报告4:参数不正确。

相关文档
最新文档