如何通过XML从带认证的远程Tally Server获取公司列表?
获取远程Tally Server公司列表的问题排查与解决方案
我有一台运行在远程服务器(IP:114.112.102.19)上的Tally Server实例,连接端口为9000,登录用户名admin,密码test123。浏览器输入该IP可正常跳转至登录页,确认静态IP可用,但使用下方XML请求无法成功获取公司列表,求解决方法:
<ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>EXPORT</TALLYREQUEST> <TYPE>COLLECTION</TYPE> <ID>CUSTOMCOMPANYCOL</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <USERNAME>admin</USERNAME> <PASSWORD>test123</PASSWORD> </STATICVARIABLES> <TDL> <TDLMESSAGE> <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CUSTOMCOMPANYCOL"> <TYPE>COMPANY</TYPE> <NATIVEMETHOD>NAME, STARTINGFROM, BOOKSFROM, BASICCOMPANYFORMALNAME, EMAIL, PINCODE, INCOMETAXNUMBER, GSTREGISTRATIONNUMBER, STATENAME, GUID</NATIVEMETHOD> </COLLECTION> </TDLMESSAGE> </TDL> </DESC> </BODY> </ENVELOPE>
排查步骤与修复方案
- 确认请求目标地址:Tally XML API请求必须指定端口9000,需将请求URL设为
http://114.112.102.19:9000,否则会走默认80端口,无法触达Tally服务。 - 修正身份验证字段:Tally Server的API验证需用
SVACCESSUSERNAME和SVACCESSPASSWORD字段替换原XML中的USERNAME和PASSWORD,修改后静态变量部分如下:<STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVACCESSUSERNAME>admin</SVACCESSUSERNAME> <SVACCESSPASSWORD>test123</SVACCESSPASSWORD> </STATICVARIABLES> - 用最简请求测试连通性:先排除复杂TDL配置的影响,使用基础XML请求测试是否能获取公司列表:
<ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>EXPORT</TALLYREQUEST> <TYPE>DATA</TYPE> <ID>ListOfCompanies</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT> <SVACCESSUSERNAME>admin</SVACCESSUSERNAME> <SVACCESSPASSWORD>test123</SVACCESSPASSWORD> </STATICVARIABLES> </DESC> </BODY> </ENVELOPE> - 检查端口与防火墙:确认远程服务器的9000端口已对外开放,且Tally Server服务绑定的是
0.0.0.0(允许外部访问)而非仅本地127.0.0.1。 - 验证Tally API配置:在Tally Server设置中,确认已启用XML API服务,并允许远程客户端通过API访问公司数据。
内容的提问来源于stack exchange,提问作者canaryGrapher
相关产品推荐
相关产品推荐

