首页 USSD V280R001.2D403 USSD业务API开发指南

USSD V280R001.2D403 USSD业务API开发指南

举报
开通vip

USSD V280R001.2D403 USSD业务API开发指南目          录 1    USSD业务API简介    2 2    基于USSD业务API的应用程序框架    2 3    USSD业务API描述    3 3.1    UssdInit    3 3.2    UssdExit    4 3.3    UssdLogin    4 3.4    UssdLogout    6 3.5    UssdIsConnectedOk    7 3.6    UssdGetErrorString    8 3.7    UssdReloadErrorInfo...

USSD V280R001.2D403 USSD业务API开发指南
目          录 1    USSD业务API简介    2 2    基于USSD业务API的应用程序框架    2 3    USSD业务API描述    3 3.1    UssdInit    3 3.2    UssdExit    4 3.3    UssdLogin    4 3.4    UssdLogout    6 3.5    UssdIsConnectedOk    7 3.6    UssdGetErrorString    8 3.7    UssdReloadErrorInfoLib    8 3.8    UssdLocalOpen    9 3.9    UssdLocalClose    10 3.10    UssdSendRequest    11 3.11    UssdSendNotify    12 3.12    UssdSendResponse    13 3.13    UssdSendRelease    13 3.14    UssdSendAbort    14 3.15    UssdSendError    15 3.16    UssdSendSwitch    15 3.17    UssdSendChargeInd    16 3.18    RegisterUssdCallbackFunctions    17 3.19    USSD会话处理    18 3.19.1    超时处理    18 3.19.2    连接断连处理    19 华为USSD业务AI开发指南 1 USSD业务API简介         USSD业务API是对华为USSD业务连接 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 的封装,该API可以自动实现与USSD业务中心的连接管理,并可向上层应用提供当前连接状态。应用程序无需关心与USSD业务中心的连接,只需处理业务消息的收发及业务逻辑的实现即可。USSD业务API封装在一个动态库UssdClient.dll中,提供给用户使用。该API包含如下功能调用:               1.  USSD业务客户端系统初始化               2.  USSD业务客户端系统退出               3.  USSD业务账号登录               4.  USSD业务退出登录               5.  USSD业务回调函数注册               6.  USSD业务消息发送               7.  USSD业务连接状态查询               8.  USSD错误码 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 说明的查询               9.  USSD错误码 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 加载 通过上述功能用调用,USSD业务应用可以完成各种业务开发。关于USSD业务协议,请参见相应的文档《USSD V280R001.2D403 USSD业务协议.lwp》 2 基于USSD业务API的应用程序框架       下面是一个典型的基于USSD业务API的应用程序的框架: 应用程序通过提供回调函数来对接收的消息处理,并将其转发给USSD会话消息处理器。USSD会话消息处理器负责USSD会话的创建及删除。会话消息具体由相应的USSD会话对象处理,这些会话对象各自完成USSD状态机和会话功能,并通过API函数将要发出的会话消息发给UssdServer。 3 USSD业务API描述       本文以C语言的形式描述USSD业务API接口,不同语言编写的程序均可调用本API,但API对应的函数原型的形式应遵循该语言的语法。 3.1 UssdInit     【功能说明】         初始化USSD业务客户端系统     【函数原型】         extern "C" int PASCAL UssdInit(char szServerAddress[],  int nServicePort);     【返  回  值】       0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】       不能重复调用本函数,如果已成功地调用了UssdExit,则可以再次调用本函数     【详细描述】         UssdInit用于对业务客户端系统进行初始化,业务应用程序在调用任何其他API 函         数前,必须首先初始化客户端系统。     【参数说明】         szServerAddress - UssdServer的IP地址         nServicePort      - UssdServer的业务接口端口号,该端口号由UssdServer的配置                                       文件指定,缺省为:4400     【调用示例】         int  nErrorCode = UssdInit("10.108.26.186",4400);         if( nErrorCode != 0)       {             char szErrorString[100];             char szInfo[100];             UssdGetErrorString(nErrorCode,szErrorString);             sprintf(szInfo,"USSD业务客户端初始化失败!\r\n错误 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 :%s",szErrorString);             MessageBox(NULL,szInfo,"UssdInit()调用示例",MB_OK);       }       else       {             MessageBox(NULL,,"USSD业务客户端初始化成功!",                                   "UssdInit()调用示例",MB_OK);       }     【相关调用】         UssdExit、UssdGetErrorString 3.2 UssdExit     【功能说明】         退出USSD业务客户端系统     【函数原型】         extern "C" int PASCAL UssdExit();     【返  回  值】         0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】         在调用本函数前,客户端系统应已成功地初始化,应用程序如果要重新初始化客         户端系统,则应首先调用UssdExit,然后再调用UssdInit函数。     【详细描述】         UssdExit用于退出业务客户端系统,此调用将断开一切未关闭的与UssdServer的连         接,同时终止所有USSD业务消息的处理,将系统恢复到UssdInit调用前的状态。         应用程序应在调用UssdExit前,关闭一切USSD会话资源,并终止对USSD会话         消息的处理。     【参数说明】         无     【调用示例】         int  nErrorCode = UssdExit();         if( nErrorCode != 0 )         {             char szErrorString[100];             char szInfo[100];             UssdGetErrorString(nErrorCode,szErrorString);             sprintf(szInfo,"USSD业务客户端退出失败!\r\n错误内容:%s",szErrorString);             MessageBox(NULL,szInfo,"UssdExit()调用示例",MB_OK);       }       else       {             MessageBox(NULL,,"USSD业务客户端退出成功!", "UssdExit()调用示例",MB_OK);       }     【相关调用】         UssdInit、UssdGetErrorString 3.3 UssdLogin     【功能说明】         向USSD中心登录一个业务账号实例(即业务接口)     【函数原型】         extern "C"HANDLE PASCAL UssdLogin(char szAccountName[],                             char szPassword[], int *pnErrorCode, BOOL fAutoConnect,                             DWORD dwTimeOut);     【返  回  值】         该函数调用成功时,返回一个登录实例(LoginInstance)句柄,一个登录实例即一个         接口,其句柄用于唯一标识该登录实例。         该函数调用失败时,返回-1即0xFFFFFFFF,此时pnErrorCode中指示当前错误代码     【预置条件】         在调用本函数前,客户端系统必须已成功地初始化。     【详细描述】         UssdLogin用于向USSD中心登录一个业务账号实例(业务接口),一个         USSD客户端可以同时登录多个业务接口,最大的登录实例数为10。业务应用程序         应考虑多个业务接口所引起的系统处理性能及通讯能力的限制。         业务应用程序在不再处理业务会话消息时,应调用UssdLogout退出该登录实例。     【参数说明】         szAccountName - 业务账号名,该账号名最多为10个字节(不含结尾'\0')         szPassword        - 该业务账号登录用的口令,口令最多为8个字节(不含结尾'\0')       pnErrorCode      - 输出参数:用于返回错误代码。当调用失败时,pnErrorCode内容                                     指示发生错误的代码。由UssdGetErrorString调用可得到该错误代                                     码的详细说明         fAutoConnect  - 指示业务接口断连后是否重连。该参数用于登录成功后,当接口                                     断连后,是否自动重新连接:若为FALSE,则接口断连后,不再                                     重连,登录实例被清除,若为TRUE,则接口断连后,登录实例                                     仍旧保留,并不断试图重连,直到重新建立连接。                                     应用程序若指明自动重连,则登录实例的退出必须由应用程序显                                     式调用UssdLogout来完成,即接口断连其登录实例仍旧存在;若                                     应用程序指明不自动重连,则接口断连后,登录实例也自动消                                     失,此时可以不调用UssdLogout退出实例。         dwTimeOut    -  该参数为登录调用的最大超时时间,单位:毫秒。若在此时间内                                     仍旧无法Login成功,则登录失败。推荐值:≥5000     【调用示例】       HANDLE hLoginInstance;         int  nErrorCode;         hLoginInstance = UssdLogin("UssdTest1","123456",&nErrorCode,TRUE,5000);         if( nErrorCode != 0 )         {             char szErrorString[100];             char szInfo[100];             UssdGetErrorString(nErrorCode,szErrorString);             sprintf(szInfo,"USSD业务登录失败!\r\n错误内容:%s",szErrorString);             MessageBox(NULL,szInfo,"UssdLogin()调用示例",MB_OK);       }       else       {             char szInfo[100];             sprintf(szInfo,,"USSD业务登录成功!\r\nhLoginInstance=%d",(DWORD)hLoginInstance);             MessageBox(NULL,szInfo,"UssdLogin()调用示例",MB_OK);       }     【相关调用】         UssdInit、UssdGetErrorString 1.1 UssdLogout     【功能说明】         从USSD中心退出一个登录实例(即业务接口)     【函数原型】         extern "C"BOOL PASCAL UssdLogout(HANDLE hLoginInstance, int *pnErrorCode);     【返  回  值】         该函数用于从USSD业务中心退出一个由hLoginInstance指定的登录实例,该实例         为此前由UssdLogin调用生成。若函数调用成功,则返回TRUE。         该函数调用失败时,返回FALSE,此时pnErrorCode中指示当前错误代码     【预置条件】         在调用本函数前,客户端系统必须已成功地初始化,且hLoginInstance为一个合法         的登录实例句柄。     【详细描述】         UssdLogout用于从USSD业务中心退出一个登录实例,该实例由句柄         hLoginInstance指出。若该实例成功退出,则与其对应的通讯接口被删除,与         业务服务方的连接被切断。     【参数说明】         hLoginInstance  - 登录实例句柄,指示要退出的登录实例。         pnErrorCode      - 输出参数:用于返回错误代码。当调用失败时,pnErrorCode内容                                     指示发生错误的代码。通过调用UssdGetErrorString可得到该错误                                     代码的详细说明     【调用示例】         HANDLE hLoginInstance;         int  nErrorCode;         // ... ... hLoginInstace的值由UssdLogin调用返回确定         // ... ...         UssdLogin(hLoginInstance,&nErrorCode);         if( nErrorCode != 0 )         {             char szErrorString[100];             char szInfo[100];             UssdGetErrorString(nErrorCode,szErrorString);             sprintf(szInfo,"USSD业务退出登录失败!\r\n错误内容:%s",szErrorString);             MessageBox(NULL,szInfo,"UssdLogout()调用示例",MB_OK);       }       else       {             char szInfo[100];             sprintf(szInfo,,"USSD业务退出登录成功!\r\nhLoginInstance=%d",                         (DWORD)hLoginInstance);             MessageBox(NULL,szInfo,"UssdLogout()调用示例",MB_OK);       }     【相关调用】         UssdInit、UssdLogin、UssdExit、UssdGetErrorString 1.2 UssdIsConnectedOk     【功能说明】         该函数查询指定接口的连接状态     【函数原型】         extern "C"BOOL PASCAL UssdIsConnectedOk(HANDLE hLoginInstance);     【返  回  值】         若hLoginInstance对应的接口当前连接状态正常,则函数返回TRUE,否则返回         FALSE。     【预置条件】         在调用本函数前,客户端系统必须已成功地初始化。     【详细描述】         UssdIsConnectedOk返回由hLoginInstance指定的接口的连接状态。若连接状态不         正常,则函数返回FALSE,若连接正常,则返回TRUE。         应用程序调用该函数,可获得指定的接口的连接状态。     【参数说明】         hLoginInstance  -  指明要查询的接口的登录句柄。     【调用示例】         BOOL  fIsConnectedOk;         fIsConnectedOk = UssdIsConnectedOk(hLoginInstance);         if( fIsConnectedOk )         {             char szInfo[100];             sprintf(szInfo,"业务接口%d连接正常!",(DWORD)hLoginInstance);             MessageBox(NULL,szInfo,"UssdIsConnectedOk()调用示例",MB_OK);       }       else       {             char szInfo[100];             sprintf(szInfo,"业务接口%d连接不正常!",(DWORD)hLoginInstance);             MessageBox(NULL,szInfo,"UssdIsConnectedOk()调用示例",MB_OK);       }     【相关调用】         UssdInit、UssdLogin 1.1 UssdGetErrorString     【功能说明】         该函数获得指定错误码的标准说明     【函数原型】         extern "C"void PASCAL UssdGetErrorString(int nErrorCode, char *pszErrorString);     【返  回  值】         无     【预置条件】         在调用本函数前必须先调用UssdReloadErrorInfoLib加载用户错误码表     【详细描述】         UssdGetErrorString获得nErrorCode指定的错误码的描述信息。         注:调用前pszErrorString应分配有足够的空间。     【参数说明】         nErrorCode      -  USSD错误码。       pszErrorString  -  输出参数:用于存放USSD错误码描述     【调用示例】         int  nErrorCode;         char szErrorString[200];         char szInfo[200];         nErrorCode = 128;         UssdGetErrorString(nErrorCode,szErrorString);         sprintf(szInfo,"错误码:%d    错误说明:%s",nErrorCode,szErrorString);         MessageBox(NULL, szInfo,"UssdGetErrorString()调用示例",MB_OK);         nErrorCode = 2002;         UssdGetErrorString(nErrorCode,szErrorString);         sprintf(szInfo,"错误码:%d    错误说明:%s",nErrorCode,szErrorString);         MessageBox(NULL, szInfo,"UssdGetErrorString()调用示例",MB_OK);     【相关调用】         UssdReloadErrorInfoLib 1.2 UssdReloadErrorInfoLib   【功能说明】         该函数是重新将错误信息库文件中的内容加载到内存中     【函数原型】       extern "C" BOOL PASCAL EXPORT UssdReloadErrorInfoLib();   【返  回  值】       加载成功返回TRUE,否则返回FALSE   【预置条件】       无     【详细描述】 该函数从错误信息库文件(UssdErrorInfo.txt)中读入错误信息数据。若读数据成功,则清除 内存中原有的错误信息库的内容,并将读入的错误信息数据保存到内存中的错误信息库中。 如果失败,内存中的错误信息库保持不变。     【参数说明】       无     【调用实例】       Char  szInfo[200];       BOOL fRet = UssdReloadErrorInfoLib();       if ( fRet )       {             sprintf(szInfo,"UssdReloadErrorInfoLib()调用成功!");             MessageBox(NULL, szInfo,"UssdReloadErrorInfoLib()调用示例",MB_OK);       }       Else       {             sprintf(szInfo,"UssdReloadErrorInfoLib()调用失败!");             MessageBox(NULL, szInfo,"UssdReloadErrorInfoLib()调用示例",MB_OK);       }   【相关调用】       无 1.3 UssdLocalOpen     【功能说明】         打开一个本地USSD会话句柄。     【函数原型】 extern "C" HANDLE PASCAL EXPORT UssdLocalOpen(HANDLE LoginInstance,DWORD dwUssdAppParam, DWORD *pdwErrorCode)     【返  回  值】         成功时,返回一个本地的会话句柄       失败时,返回一个无效句柄     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hLoginInstance为一个合法       的登录实例句柄。     【详细描述】 该函数打开一个本地的USSD会话句柄,准备用于USSD会话交互。成功时,该函数返回一个本地的USSD会话句柄(hUssdDialog),失败时返回无效句柄,此时错误代码被返回在pdwErrorCode中。 若本函数调用成功,则返回的句柄必须由UssdLocalClose来关闭         【参数说明】       hLoginInstance  -  指明要创建本地会话的接口登录句柄。 dwUssdAppParam  -  用于传递一个应用程序自己指定的与要打开的USSD会话相关联的参数 值,该参数可以为应用程序为此USSD会话分配的对象指针、会话标识或其 他任意的应用程序自己能识别的值。       pDwErrorCode  -  输出参数:用于存放错误码     【调用实例】 DWORD  dwErrorCode; HANDLE hUssdDialog; hUssdDialog = UssdLocalOpen(15, 200, &dwErrorCode);         if( dwErrorCode != 0 )         {             char szErrorString[100];             char szInfo[100];             UssdGetErrorString(dwErrorCode,szErrorString);             sprintf(szInfo,"获取本地会话句柄失败!\r\n错误内容:%s",szErrorString);             MessageBox(NULL,szInfo,"UssdLocalOpen()调用示例",MB_OK);         }         else         {             char szInfo[100];             sprintf(szInfo,,"获取本地会话句柄成功!\r\nhUssdDialog=%d",                         (DWORD)hUssdDialog);             MessageBox(NULL,szInfo,"UssdLocalOpen()调用示例",MB_OK);         }     【相关调用】       UssdInit、UssdLogin、UssdGetErrorString 1.4 UssdLocalClose     【功能说明】 关闭一个本地USSD会话句柄。     【函数原型】       extern "C" BOOL PASCAL EXPORT UssdLocalClose(HANDLE hUssdDialog)         【返  回  值】       当会话关闭成功返回TRUE,否则返回FALSE     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数用于关闭由UssdLocalOpen打开的USSD会话句柄。调用此函数,对应的USSD会话结 束,对应的会话句柄被关闭。       【参数说明】       hUssdDialog -  要关闭的本地会话句柄     【调用实例】 Char szInfo[200]; HANDLE hUssdDialog = 200; BOOL fRet = UssdLocalClose( hUssdDialog );       if ( fRet )       {             sprintf(szInfo,"UssdLocalClose()调用成功!");             MessageBox(NULL, szInfo,"UssdLocalClose()调用示例",MB_OK);       }       Else       {             sprintf(szInfo,"UssdLocalClose()调用失败!");             MessageBox(NULL, szInfo,"UssdLocalClose()调用示例",MB_OK);       }     【相关调用】 UssdLocalOpen 1.1 UssdSendRequest     【功能说明】 提交一条会话请求,需等待手机人工响应     【函数原型】 int  PASCAL EXPORT UssdSendRequest(HANDLE hUssdDialog, TUssdData UssdData);     【返  回  值】         0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条会话请求,此请求对应的USSD会话由hUssdDialog指定,会话请求数据由 UssdData指定。若失败,则返回值中包含了错误代码,成功则返回0     【参数说明】 hUssdDialog - USSD会话句柄 UssdData    - 本次USSD会话请求的数据 【数据结构】 struct TUssdData {     DWORD  m_dwUssdCmd; // USSD会话操作类型(1:Request、2:Notify)     BYTE  m_bUssdVersion;  // USSD会话版本号(0x10:Phase I、0x20:Phase II、0x25: Phase II+)       BYTE  m_bCodeScheme;  //编码 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载     DWORD  m_dwErrorCode; // USSD错误代码(仅对UssdAbort和UssdError)     char  m_szMsIsdn[21];// 移动台号码.     char  m_szServiceCode[4];// 业务码.     char  m_szUssdString[182];  // USSD串内容。     DWORD  m_dwUssdAppParam;    // USSD业务应用程序自定义的参数。 }     【调用实例】         TUssdData  UssdData = ... ; //指定USSD会话请求数据         HANDLE  hUssdDialog =  200;         int nErrorCode = UssdSendRequest(hUssdDialog, UssdData);         if( nErrorCode != 0 )         {             char szErrorString[100];             char szInfo[100];             UssdGetErrorString(nErrorCode,szErrorString);             sprintf(szInfo,"发送会话请求失败!\r\n错误内容:%s",szErrorString);             MessageBox(NULL,szInfo,"UssdSendRequest()调用示例",MB_OK);       }       else       {             char szInfo[100];             sprintf(szInfo,,"发送会话请求成功!");             MessageBox(NULL,szInfo,"UssdSendRequest()调用示例",MB_OK);       }     【相关调用】 UssdInit、UssdGetErrorString 1.2 UssdSendNotify     【功能说明】 提交一条会话通知,手机自动响应     【函数原型】 int PASCAL EXPORT UssdSendNotify(HANDLE hUssdDialog, TUssdData UssdData);     【返  回  值】         0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条会话通知,此通知对应的USSD会话由hUssdDialog指定,会话通知数据由 UssdData指定。若失败,则返回值中包含了错误代码,成功则返回0     【参数说明】 hUssdDialog:USSD会话句柄 UssdData:    本次USSD会话通知的数据 【数据结构】   参见3.10中数据结构描述     【调用实例】 int nErrorCode = UssdSendNotify(hUssdDialog, UssdData); if (nErrorCode == 0)           return TRUE     else           return FALSE;         【相关调用】 UssdInit、UssdGetErrorString 1.3 UssdSendResponse     【功能说明】 提交一条会话响应响应,用于结束移动台发起的USSD会话     【函数原型】 int  PASCAL EXPORT UssdSendResponse(HANDLE hUssdDialog, TUssdData UssdData);     【返  回  值】         0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条会话响应,此响应对应的USSD会话由hUssdDialog指定,会话响应数据由 UssdData指定。只有移动台发起的会话才能调用此函数,此函数调用后不需要调用 UssdLocalClose。若调用失败,则返回值中包含了错误代码,成功则返回0     【参数说明】 hUssdDialog:USSD会话句柄 UssdData:    本次USSD会话响应的数据 【数据结构】       参见3.10中数据结构描述     【调用实例】 int nErrorCode = UssdSendResponse(hUssdDialog, UssdData); if (nErrorCode == 0)             return TRUE else             return FALSE;     【相关调用】 UssdInit、UssdGetErrorString 1.4 UssdSendRelease     【功能说明】 提交一条会话释放消息,用于结束业务发起的USSD会话     【函数原型】 int  PASCAL EXPORT UssdSendRelease(HANDLE hUssdDialog);     【返  回  值】         0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条会话释放消息,该消息对应的USSD会话由hUssdDialog指定。若调用失败, 则返回值中包含了错误代码,成功则返回0 注:A. 此调用仅当会话是业务方发起的情况下才能被调用,否则此调用无效。                 B. 此调用成功后,应用程序应调用UssdLocalClose关闭会话句柄。     【参数说明】 hUssdDialog:要释放的USSD会话句柄     【调用实例】 int nErrorCode = UssdSendRelease( hUssdDialog ); if  (nErrorCode == 0) {     UssdLocalClose(hUssdDialog); }     【相关调用】 UssdInit、UssdGetErrorString、UssdLocalClose 1.5 UssdSendAbort     【功能说明】     提交一条会话中止消息     【函数原型】 int  PASCAL EXPORT UssdSendAbort(HANDLE hUssdDialog,  DWORD dwErrorCode);     【返  回  值】         0      -  成功       其他 -  USSD错误码,如要得到该错误码的说明,请调用UssdGetErrorString函数     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条会话中止消息,该消息对应的USSD会话由hUssdDialog指定为中止会话消 息,中止原因码由dwErrorCode指定,若失败,则返回值中包含了错误代码,成功则返回0 注:此调用成功后,应用程序应调用UssdLocalClose关闭会话句柄。     【参数说明】 hUssdDialog:  USSD会话句柄 dwErrorCode: USSD会话中止的错误原因代码     【调用实例】 int nRetCode = UssdSendAbort( hUssdDialog, dwErrorCode ); if  (nRetCode == 0) {     UssdLocalClose(hUssdDialog); }     【相关调用】 无 1.1 UssdSendError     【功能说明】 提交一条会话出错消息     【函数原型】 int  PASCAL EXPORT UssdSendError(HANDLE hUssdDialog,  DWORD dwErrorCode);     【返  回  值】 函数执行成功返回TRUE,否则返回USSD错误代码     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条会话出错消息,该消息对应的USSD会话由hUssdDialog指定为出现错误并且 结束会话消息,出错原因码由dwErrorCode指定,若失败,则返回值中包含了错误代码,成功 则返回0     【参数说明】 hUssdDialog  -  USSD会话句柄 dwErrorCode -  USSD会话出错的原因代码     【调用实例】 int nRetCode = UssdSendError( hUssdDialog, dwErrorCode ); if (nRetCode == 0)             return TRUE       else             return FALSE;     【相关调用】 无 1.2 UssdSendSwitch   【功能说明】 提交一条业务转移消息     【函数原型】 int  PASCAL EXPORT UssdSendSwitch(HANDLE hUssdDialog, TUssdSwitchInfo SwitchInfo); 【数据结构】 struct TUssdSwitchInfo  {             BYTE          m_bSwitchMode;          //转移模式(0:全局转移、1:本地转移)     char              m_szMsIsdn[21];          //手机号码     char              m_szServiceCode[4];    //业务码     char              m_szUssdString[182];  //USSD串内容 }     【返  回  值】 函数执行成功返回TRUE,否则返回USSD错误代码     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条业务切换消息,该消息对应的USSD会话由hUssdDialog指定为业务转移消 息,SwitchInfo中指明业务切换的信息。失败时返回值中包含了错误代码,成功则返回0 注:此调用成功后,应用程序应调用UssdLocalClose关闭会话句柄。     【参数说明】 hUssdDialog  - USSD会话句柄 SwitchInfo    - USSD业务转移信息     【调用实例】       int nErrorCode = UssdSendSwitch(hUssdDialog, UssdSwitchInfo); if (nErrorCode == 0) {   UssdLocalClose(hUssdDialog); }     【相关调用】 无 1.3 UssdSendChargeInd     【功能说明】 提交一条计费指示消息     【函数原型】 int  PASCAL EXPORT UssdSendChargeInd(HANDLE hUssdDialog, TUssdChargeIndInfo ChargeIndInfo); 【数据结构】 struct TUssdChargeIndInfo {             DWORD          m_dwChargeRatio;    //计费费率,其中0表示免费   DWORD          m_dwChargeType;    //计费类型,1为短消息,2为USSD,3为其他        char                  m_szChargeSource[21];    //计费源标识             BYTE          m_bChargeLocation;    //出话单地点,1为UssdServer出话单 }     【返  回  值】 函数执行成功返回TRUE,否则返回USSD错误代码     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化,且hUssdDialog为一个合法       的会话实例句柄。     【详细描述】 该函数提交一条计费指示消息,该消息对应的USSD会话由hUssdDialog指定为计费指示消 息,ChargeIndInfo为计费指示信息。失败时返回值中包含了错误代码,成功则返回0     【参数说明】 hUssdDialog    -  USSD会话句柄 ChargeIndInfo  -  计费指示信息     【调用实例】       int nErrorCode = pUssdDialog->UssdSendChargeInd(ChargeIndInfo,fCanDestroyDlg); if (nErrorCode == 0)           return TRUE       else           return FALSE;     【相关调用】 无 1.4 RegisterUssdCallbackFunctions     【功能说明】       向USSD业务API注册USSD消息处理回调函数     【函数原型】 int  PASCAL EXPORT RegisterUssdCallbackFunctions(TUssdCallbacks CallbackFuncs); 【数据结构】       struct TUssdCallbacks {                   LPONUSSDREQUEST  m_pOnUssdRequest;                   LPONUSSDRESPONSE  m_pOnUssdResponse;                   LPONUSSDABORT    m_pOnUssdAbort;                 LPONUSSDERROR    m_pOnUssdError;                 LPONUSSDTIMEOUT  m_pOnUssdTimeOut;                 LPONUSSDCHGACK    m_pOnUssdChgAck; };     【返  回  值】 函数执行成功返回TRUE,否则返回USSD错误代码     【预置条件】       在调用本函数前,客户端系统必须已成功地初始化     【详细描述】 该函数向USSD业务API 注册消息回调函数,回调函数用于处理来自UssdServer的会话消息, 这些回调函数的地址由CallbackFuncs指定。如果调用失败,则返回值为错误代码,成功则返 回0     【参数说明】 CallbackFuncs  - USSD回调函数的地址集 【回调函数原型】 1)Begin/Request消息的回调函数原型: typedef  int (*LPONUSSDREQUEST)(HANDLE hLoginInstance, HANDLE hUssdDialog, TUssdData UssdData, DWORD *pdwUssdAppParam); 2)Continue/Response消息的回调函数 typedef    int (*LPONUSSDRESPONSE)(HANDLE hLoginInstance, HANDLE hUssdDialog,  char szUssdString[], DWORD dwUssdAppParam); 3)UssdAbort消息的回调函数 typedef    int (*LPONUSSDABORT)(HANDLE hLoginInstance, HANDLE hUssdDialog,  DWORD dwErrorCode, DWORD dwUssdAppParam); 4)UssdError消息的回调函数 typedef    int (*LPONUSSDERROR)(HANDLE hLoginInstance, HANDLE hUssdDialog, DWORD dwErrorCode, DWORD dwUssdAppParam); 5)UssdTimeout消息的回调函数 typedef    int (*LPONUSSDTIMEOUT)(HANDLE hLoginInstance, HANDLE hUssdDialog, DWORD dwUssdAppParam); 6)UssdChargeIndAck消息的回调函数 typedef    int (*LPONUSSDCHGACK)(HANDLE hLoginInstance, HANDLE hUssdDialog,             DWORD dwErrorCode, DWORD dwUssdAppParam);         【调用实例】 无     【相关调用】 无 1.5 USSD会话处理 1.5.1 超时处理       USSD业务应用程序应负责每一个USSD会话的超时处理。当USSD业务应用程序向移动台发出请求或通知消息时,它须建立一个时钟,此时钟指示业务方的最大等待时间,若该时钟触发时,业务方仍未收到移动台的任何响应消息,则表示当前会话已超时,此时,业务方应向UssdServer发出AbortDialog消息并释放当前会话。一般地,业务方等待移动台响应的超时应设为不小于120秒,以确保移动台用户有足够的时间输入响应内容。 1.1.1 连接断连处理         业务应用程序检测到某一接口断连(通过调用UssdIsConnectedOk函数)时,应释放所有与该连接(hLoginInstance)相关的USSD会话。
本文档为【USSD V280R001.2D403 USSD业务API开发指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:219KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-19
浏览量:13