Gts-开票服务

来自ling
(重定向自Gts
跳转至: 导航搜索

架构目标

  • 支持多厂商税控设备
  • 统一业务js,和java调用,隔离厂商差异
  • 面向未来云架构,支持多厂商,同一厂商不同版本

整体架构

单一厂商单版本交互图

Gts-sequence.png

多厂商与单一厂商多版本交互图

Gts-sequence-nginx.png

服务与命名规范

标准服务

直接调用

设备或接口类型+标准服务

cloud调用

  • 对暴露的服务通过nginx进行路由转发,格式如下
厂商+设备或接口类型+服务版本+标准服务
  • 百旺
/bw/webservice/LAST/+标准服务 
/bw/webservice/V1.0/+标准服务
  • 航信
/bw/webservice/LAST/+标准服务 
/bw/webservice/V1.0/+标准服务

c#百旺dll调用

  • dll无法直接添加引用,需要将安装目录下文件都copy到debug目录
  • 代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using NISEC_SKSCXLib;
using System.Runtime.InteropServices;

namespace testgts
{
    class Program
    {
        [DllImport("NISEC_SKSC.dll", CharSet = CharSet.Ansi, SetLastError = true)]
        public static extern void PostAndRecvEx(String pszPost, StringBuilder pszRecv);

        static void Main(string[] args)
        {
            string test = getParameSet();
            StringBuilder result = new StringBuilder();
            PostAndRecvEx(test, result);
            Console.WriteLine(result.ToString());
        }

        public static string getParameSet()
        {
            StringBuilder result = new StringBuilder();
            result.Append("<? xml version = \"1.0\" encoding = \"gbk\" ?>");
            result.Append("< business id = \"20001\" comment = \"参数设置\" > ");
            result.Append("< body yylxdm = \"1\" > ");
            result.Append("< servletip >127.0.0.1</ servletip > ");
            result.Append(" < servletport > 8080 </ servletport > ");
            result.Append("< keypwd >123 </ keypwd > ");
            result.Append("</ body > ");
            result.Append(" </ business > ");
            return result.ToString();
        }
    }
}

java dll调用

[几种java调用dll的方式] [java调用百望税控NISEC_SKSC.dll发送xml报文]

  • 百旺安装文件放入system32
  • JNativeCpp.dll,需要将其放到system32
  • JNative.jar需要放到jdk和jre目录下面
  • 项目引用JNative.jar
  • 32位jdk

  • 添加jna依赖
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna-platform</artifactId>
            <version>4.4.0</version>
        </dependency>