首页 / 专利库 / 银行与财务事项 / 无现金支付 / 一种实现互联网社保支付与现金支付综合收银的方法

一种实现互联网社保支付与现金支付综合收的方法

阅读:415发布:2020-05-12

专利汇可以提供一种实现互联网社保支付与现金支付综合收的方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及互联网社保支付领域,特别涉及一种实现互联网社保支付与现金支付综合收 银 的方法。本发明的步骤如下:一、获取社保支付驱动包;二、在自主研发的浏览器中集成驱动并开发社保支付 接口 ;三、安装浏览器时下载驱动与ActiveX控件及设置支付参数;四、在系统中开发一套社保读取与支付函数;五、创建支付窗口及综合支付功能;六、在商品资料中设定是否是医保商品;七、把社保机改为支持模式;八、销售时弹出支付窗口,如是医保药品触发支付函数调用,非医保使用现金;九、用户插入社保卡并输入密码完成支付,否则全部改为现金支付。本发明解决了互联网模式下 门 店系统不能直接使用社保机支付或余额不足时不便切换现金支付的问题。,下面是一种实现互联网社保支付与现金支付综合收的方法专利的具体信息内容。

1.一种实现互联网社保支付与现金支付综合收的方法,其特征在于:一、获取社保支付驱动包;二、在自主研发的浏览器中集成驱动并开发社保支付接口;三、安装浏览器时下载驱动与ActiveX控件及设置支付参数;四、在系统中开发一套社保读取与支付函数;五、创建支付窗口及综合支付功能;六、在商品资料中设定是否是医保商品;七、把社保机改为支持模式;八、销售时弹出支付窗口,如是医保药品触发支付函数调用,非医保使用现金;九、用户插入社保卡并输入密码完成支付,否则全部改为现金支付;从而解决了互联网模式下店系统不能直接使用社保机支付或余额不足时不便切换现金支付的问题。
2.根据权利要求1所述的基于药店系统平台的一种实现互联网社保支付与现金支付综合收银的方法,其特征在于:通过自定义浏览器,集成社保驱动,开发调用接口以级绑定门店系统路径,实现了互联网模式下的社保支付与社保机的无缝对接;在销售时调用社保函数,自动识别药品是否医保类别,实现综合支付;所述的方法具体包括如下步骤:
一、获取社保局提供的社保支付驱动包,里面有相关的说明文档、dll动态链接库文件及ocx驱动文件;
二、在自定义的浏览器中集成ocx驱动文件与dll动态链接库文件,根据说明文档开发一套支持网页脚本调用的社保支付接口;
三、当用户下载安装专用浏览器时,把ocx驱动文件与dll动态链接库文件下载到用户的系统中,并根据社保机型设定好社保支付时一些必要的参数;
四、在门店系统中依据浏览器中提供的社保接口开发出一套与其交互的社保读取与支付脚本函数;
五、在门店系统中的收银模中创建社保与现金综合支付的弹出窗口及开发销售时综合支付的功能,在所述的功能中,首先调用读卡接口,获取用户社保卡上的信息,如果返回的结果中的状态值等为-1,保存社保用户信息;接着调用支付接口,获取支付结果返回信息,如果返回的结果中的状态值等为-1,社保支付完成,否则社保支付失败,进入现金支付环节;
六、在商品资料中依据GSP规定设定好药品的医保属性;
七、依据驱动说明文件,把门店中的社保机改为能够支持互联网访问的模式;
八、销售时弹出支付窗口,根据销售药品的医保属性,进行自动判断,如是医保药品触发支付函数调用,非医保使用现金;
九、用户插入社保卡并输入密码完成支付,否则全部改为现金支付。

说明书全文

一种实现互联网社保支付与现金支付综合收的方法

技术领域

[0001] 本发明涉及互联网社保支付领域,特别涉及一种实现互联网社保支付与现金支付综合收银的方法。

背景技术

[0002] 目前市场上的药店系统都是基于C/S架构的系统,每个店都要进行单独部署,在本地安装数据库,以致于需要大量的人与物力去实施,而且数据容易被篡改,存在很大的维护险与安全风险。为了解决这些的问题,实现了一种基于互联模式的药店收银系统,但互联网模式的系统都是使用本地组件访问远程服务器的方式进行数据的传输与交互,不能实现与本地硬件完美的兼容与访问的功能,例如就不能在浏览器中输入药店系统访问路径而直接调用社保机进行支付的功能;为了解决系统能调用社保机进行交互的功能,采用了在自主研发的浏览器中集成社保驱动并实现对外的接口,从而实现了在进行社保支付时就能直接调用封装的JS函数进行快速访问的目的。

发明内容

[0003] 本发明解决的技术问题在于提供一种实现互联网社保支付与现金支付综合收银的方法;解决了互联网模式下门店系统不能直接使用社保机支付或余额不足时不便切换现金支付的问题。
[0004] 本发明解决上述技术问题的技术方案是:一、获取社保支付驱动包;二、在自主研发的浏览器中集成驱动并开发社保支付接口;
三、安装浏览器时下载驱动与ActiveX控件及设置支付参数;四、在系统中开发一套社保读取与支付函数;五、创建支付窗口及综合支付功能;六、在商品资料中设定是否是医保商品;
七、把社保机改为支持模式;八、销售时弹出支付窗口,如是医保药品触发支付函数调用,非医保使用现金;九、用户插入社保卡并输入密码完成支付,否则全部改为现金支付。
[0005] 所述的方法具体包括如下步骤:一、获取社保局提供的社保支付驱动包,里面有相关的说明文档、dll动态链接库文件及ocx驱动文件;
二、在自定义的浏览器中集成ocx驱动文件与dll动态链接库文件,根据说明文档开发一套支持网页脚本调用的社保支付接口;
三、当用户下载安装专用浏览器时,把ocx驱动文件与dll动态链接库文件下载到用户的系统中,并根据社保机型设定好社保支付时一些必要的参数;
四、在门店系统中依据浏览器中提供的社保接口开发出一套与其交互的社保读取与支付脚本函数;
五、在门店系统中的收银模中创建社保与现金综合支付的弹出窗口及开发销售时综合支付的功能,在所述的功能中,首先调用读卡接口,获取用户社保卡上的信息,如果返回的结果中的状态值等为-1,保存社保用户信息;接着调用支付接口,获取支付结果返回信息,如果返回的结果中的状态值等为-1,社保支付完成,否则社保支付失败,进入现金支付环节;
六、在商品资料中依据GSP规定设定好药品的医保属性;
七、依据驱动说明文件,把门店中的社保机改为能够支持互联网访问的模式;
八、销售时弹出支付窗口,根据销售药品的医保属性,进行自动判断,如是医保药品触发支付函数调用,非医保使用现金;
九、用户插入社保卡并输入密码完成支付,否则全部改为现金支付。
[0006] 本发明的有益效果:通过自主研发浏览器,在浏览器中集成社保驱动与开发对外的社保接口,实现了运行于服务端的药店系统能够完美地与门店中社保机进行交互的功能,达到了使用互联网的门店系统也能使用本地的社保机进行社保支付的目的。有效解决了互联网模式下门店系统不能直接使用社保机支付或余额不足时不便切换现金支付的问题。附图说明
[0007] 下面结合附图对本发明进一步说明:图1为本发明的流程图

具体实施方式

[0008] 如图1所示,本发明采用如下步骤:一、获取社保局提供的社保支付驱动包,里面有相关的说明文档、dll动态链接库文件及ocx驱动文件;
二、在自定义的浏览器中集成ocx驱动文件与dll动态链接库文件,根据说明文档开发一套支持网页脚本调用的社保支付接口;如:
1) 调用 DLL 读卡方法
[DllImport("RWCardD.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.BStr)]
public static extern string RWCardD_ReadCard(bool bYE);
public String ReadCard(bool bYE) {
             byte  Port  = Byte.Parse(ConfigHelper.getValue("
socialSecurityPort"));
            byte timeout = Byte.Parse(ConfigHelper.getValue("timeout"));
            Int64 btl = Int64.Parse(ConfigHelper.getValue("btl"));
            byte jd = Byte.Parse(ConfigHelper.getValue("jd"));
            byte sjw = Byte.Parse(ConfigHelper.getValue("sjw"));
            byte tzw = Byte.Parse(ConfigHelper.getValue("tzw"));
            RWCardD_SetPort(Port);
            RWCardD_SetTimeOut(timeout);
            RWCardD_SetComm(btl, jd, sjw, tzw);
            return  RWCardD_ReadCard(bYE);
}
 2) 调用 DLL 交易方法
[DllImport("RWCardD.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.BStr)]
public static extern string RWCardD_BalanceByMoney(string money);
public String Balance(string para){
        byte  Port  =  Byte.Parse(ConfigHelper.getValue("
socialSecurityPort"));
       byte timeout = Byte.Parse(ConfigHelper.getValue("timeout"));
       Int64 btl = Int64.Parse(ConfigHelper.getValue("btl"));
       byte jd = Byte.Parse(ConfigHelper.getValue("jd"));
       byte sjw = Byte.Parse(ConfigHelper.getValue("sjw"));
       byte tzw = Byte.Parse(ConfigHelper.getValue("tzw"));
       RWCardD_SetPort(Port);
       RWCardD_SetTimeOut(timeout);
       RWCardD_SetComm(btl, jd, sjw, tzw);
        return RWCardD_Balance(para);
}
三、当用户下载安装专用浏览器时,把ocx驱动文件与dll动态链接库文件下载到用户的系统中,并根据社保机型设定好社保支付时一些必要的参数;
四、在门店系统中依据浏览器中提供的社保接口开发出一套与其交互的社保读取与支付脚本函数;如:
1)读卡
//return 正确返回字符串格式的数据 错误访问01,-1,错误信息
function readCard(){
    var result = Cef.ReadCard();
    if(result.indexOf("-1") !=-1){
        initSocialCard();
        result = RWCardXCtrl1.ReadCard(false);
    }
    return result;
}
2)结算 金额
//money 要求是字符串格式
//return 正确返回字符串格式的数据 错误访问01,-1,错误信息
function balanceByMoney(money){
    //只传扣费额度的方式
    var result = Cef.BalanceByMoney(money);
    if(result.indexOf("-1") !=-1){
        initSocialCard();
        result = RWCardXCtrl1.BalanceByMoney(money);
    }
    return result;
}
3)撤销交易 流
//no 要求是字符串格式
//return 正确返回字符串格式的数据 错误访问01,-1,错误信息
function cancelByNo(no){
   return  Cef.CancelByNo(no)
}
五、在门店系统中的收银模块中创建社保与现金综合支付的弹出窗口及开发销售时综合支付的功能,在所述的功能中,首先调用读卡接口,获取用户社保卡上的信息,如果返回的结果中的状态值等为-1,保存社保用户信息;接着调用支付接口,获取支付结果返回信息,如果返回的结果中的状态值等为-1,社保支付完成,否则社保支付失败,进入现金支付环节;如:
//读取社保
function submitSocialPay() {
        try {
            var socialPay = $("#socialPay").val();
            var payResult = balanceByMoney(parseFloat(socialPay).toFixed(2) + "");
            if (payResult && payResult.indexOf("-1") == -1) {
                var payResultArr = payResult.split(",");
                if (payResultArr && payResultArr.length > 0) {
                    var socialCardMoney = payResult.split(",")[3];
                    //如果总的社保金额小于用户帐户金额
                    if (parseFloat(socialCardMoney) < parseFloat(socialPay)) {
                        warningMsg("余额不足,不能支付!");
                        newToken = "";
                        return false;
                    }
                    saveSocialInfo();
                } else {
                    errorMsg("读卡异常,不能支付!");
                    newToken = "";
                    return false;
                }
            } else {
                errorMsg("读卡异常,不能支付!");
                newToken = "";
                return false;
            }
        } catch (e) {
            errorMsg("读卡异常,不能支付!");
            newToken = "";
            return false;
        }
        return true;
    }
六、在商品资料中依据GSP规定设定好药品的医保属性;如:
//设置医保
$("#btnSetYiBao").click(function () {
     setYiBao('${ctx}',0);
});
//取消医保
$("#btnCancelYiBao").click(function () {
       setYiBao('${ctx}',1);
 });
//具体实现
function setYiBao(rootPath, type, tableId) {
    var selRows = null;
    if(tableId){
        selRows = $(tableId).bootstrapTable("getSelections");
    } else {
        selRows = $("#table").bootstrapTable("getSelections");
    }
    if(!selRows ||  selRows.length == 0) {
        warningMsg("请选择要设置医保的商品!");
        return;
    }
    var productIds = [];
    for(var i= 0; i         var detail = selRows[i];
        productIds[i] = detail.productId;
    }
    var url = rootPath +  '/product/saveAllYiBaoToProduct.action v='+new Date().getTime();
    if(type == 1){
        url = rootPath +  '/product/cancelAllYiBaoToProduct.action v='+new Date().getTime();
    }
    $.SaveForm({
        url : url,
        type : "post",
        param : productIds,
        success : function(data){
            if(tableId){
                $(tableId).bootstrapTable("refresh");
            }else {
                $("#table").bootstrapTable("refresh");
            }
            dialogMsg("操作成功!");
        }
    })
}
七、依据驱动说明文件,把门店中的社保机改为能够支持互联网访问的模式;
八、销售时弹出支付窗口,根据销售药品的医保属性,进行自动判断,如是医保药品触发支付函数调用,非医保使用现金;如:
function openCheckModal() {
$('#selectPay').find('span:first').addClass('check-select').sibli ngs().removeClass('hide').removeAttr("readonly")
        var datas = $("#table").bootstrapTable("getData");
        if(!datas || datas.length == 0){
            warningMsg("没有消费明细");
            return false;
        }
        var socialPay = 0;
        $.each(datas, function (index, obj) {
            if(obj.saleCount > obj.stockCount){
                warningMsg("(" + obj.productCode + ")销售数量大于库存数量");
                return false;
            }
            if(obj.isYiBao == 1){
                socialPay += parseFloat(obj.sellAmount);
            }
        })
        $("#checkModal").iziModal('open');
        $("#payAmountBox").show();
        $("#returnAmountBox").hide();
        $("#checkModal").css("height", "420px");
        if (!$('#selectPay').find('span:first').hasClass('check-select')) {
            $('#selectPay').find('span:first').addClass('check-select').siblings().removeClass('check-select')
            hidePayNum();
            payType = 1
        }
        var payMoney = $("#paymentMoney").text();
        //医保赋值
       $("#socialPay").val(socialPay);      $("#otherPay").val
(fixNumThree(parseFloat(payMoney)-parseFloat(socialPay)));
        $("#scost").text(payMoney);
        $("#realMoney").val($("#paymentMoney").text());
        $("#changeMoney").text("0")
        $("#realMoney").focus();
        setTimeout(function () {$("#realMoney").select();},100)
    }
九、用户插入社保卡并输入密码完成支付,否则全部改为现金支付。如:
function submitSaleOrder() {
        //社保支付
        if (payType == 5) {
            if (!submitSocial()) {
                return false;
            }
        }
        //判断付款方式
        var realMoney = $("#realMoney").val();
        var paymentMoney = $("#paymentMoney").text();
        if (!realMoney && realMoney.length == 0) {
            if (payType == 1) {
                warningMsg("实收款不能为空");
                return false;
            }
        }
        if (parseFloat(realMoney) < parseFloat(paymentMoney)) {
            warningMsg("实收不能小于应收款");
            return false;
        }
        var datas = $("#table").bootstrapTable("getData");
        if (!datas || datas.length == 0) {
            warningMsg("无销售明细")
            return false;
        }
        //初始化明细
        var detailDatas = initSaleDetailDatas(datas);
        //初始化支付订单
        var salePayOrders = [{
            "payMoney": paymentMoney,
            "changeMoney": $("#changeMoney").val(),
            "realMoney": realMoney,
            "authCode": $("#authCode").val(),
            "payType": payType,
            "seller": $("#sellerInfo").find("option:selected").text()
        }];
        //传递的参数
        var param = initSaleOrder(detailDatas, salePayOrders);
       function saveOrder(
//提交表单
       $.SaveForms({
         url: rootPath + "/submitSaleOrder.action v=${version}",
         param: param,
         success: function (json) {
            showSuccMsg("支付成功");
         }
});
 }  。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈