固网POS机接口 js

首先要在客户端注册 POS机DLL文件 

页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="sendbypos.aspx.cs" Inherits="sendbypos" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
      <OBJECT
CLASSID="clsid:"
CODEBASE=""
ID=Pad
></OBJECT>
</head>
<body>
    <SCRIPT language="javascript" >
function OpenComm()
{
    var comNum=document.getElementById("TextBox2").value;
    //alert(comNum);
 if(Pad.OpenComm(comNum,57600,60)==1)
  document.getElementById("TextBox1").innerHTML = "开启COM"+comNum+"成功";
 else
  document.getElementById("TextBox1").innerHTML= "开启COM"+comNum+"失败";
}

function CloseComm()
{
 if(Pad.CloseComm()==1)
  document.getElementById("TextBox1").innerHTML = "关闭COM口成功";
 else
  document.getElementById("TextBox1").innerHTML = "关闭COM口失败";
}

function AutoOpenComm()
{
 var temp;
 temp = Pad.AutoOpenComm(60);
 //if(Pad.AutoOpenComm(60) >= 1)//Pad.AutoOpenComm(60)的返回值实例:开启串口二并且通讯成功,则值为2.
 if(temp == 1)
  document.getElementById("TextBox1").innerHTML  = "自动开启COM1成功";
 else if(temp == 2)
  document.getElementById("TextBox1").innerHTML  = "自动开启COM2成功";
 else if(temp == 3)
  document.getElementById("TextBox1").innerHTML  = "自动开启COM3成功";
 else if(temp == 4)
  document.getElementById("TextBox1").innerHTML  = "自动开启COM4成功";
 else if(temp == 5)
  document.getElementById("TextBox1").innerHTML = "自动开启COM5成功";
 else if(temp == 6)
  document.getElementById("TextBox1").innerHTML  = "自动开启COM6成功";
 else if(temp == 7)
  document.getElementById("TextBox1").innerHTML = "自动开启COM7成功";
 else if(temp == 8)
  document.getElementById("TextBox1").innerHTML  = "自动开启COM8成功";
 else if(temp == 9)
  document.getElementById("TextBox1").innerHTML = "自动开启COM9成功";
 else
  document.getElementById("TextBox1").innerHTML  = "自动开启COM失败";
}
function TAPI_SendReq()
{
 Pad.API_SendReq(98,getPOSStrXF());
 var rs=document.getElementById("res");
 rs.value=Pad.API_RecvResp();
//alert("asdf");
 var a= document.getElementById("res").value;
 //var x=a.toString().substring(2,4);
 var aoder=document.getElementById("Track").innerText;
 var orderid=document.getElementById("Track3").innerText;
 window.open("sendbypos.aspx?res="+a+"&aoderAmount="+aoder+"&orderId="+orderid,"_self");

}
function cli()
{document.getElementById("Button3").click();}
  //获取最终POS接口号
    function getPOSStrXF()
    {
        var TransType = "00";
        var money = getMoney();
        var posid =getOK2( document.getElementById("shanghu").value,8);
        var OperatorID =getOK2(document.getElementById("Track2").value,4);
        var time = aaa();
        var OrderID = getOrderID();
        var leng = 98;
       
        var result = TransType + money + posid + OperatorID + time + OrderID;
        var num = leng - result.length;
        for (var i = 0; i < num; i++)
        {
            result += " ";
        }
        return result;
    }

//订单编号
    function getOrderID()
    {
        var n=document.getElementById("Track3").innerText.length;
        var OrderID = document.getElementById("Track3").innerText;
        var leng = 20;
        var num = leng - n;
        var res = "";
        for (var i = 0; i < num; i++)
        {
            res += " ";
        }
        res = res +OrderID;
       return res;
    }
        //获取金额
    function getMoney()
    {
        var oldmon= document.getElementById("Track").innerText;
        var money = oldmon*100;
       
        var res = "";
       
        res = getOK(money, 12);
       
       return res;
    }
   
        function getOK2(oldstr,leng)
    {
        var l=new String(oldstr);
        var oldlen = l.length;
       
        var num = leng - oldlen;
        var res = "";
        for (var i = 0; i < num; i++)
        {
            res += " ";
        }
        var result = res + oldstr;
      return result;
    }
    function getOK(oldstr,leng)
    {
        var l=new String(oldstr);
        var oldlen = l.length;
       
        var num = leng - oldlen;
        var res = "";
        for (var i = 0; i < num; i++)
        {
            res += "0";
        }
        var result = res + oldstr;
      return result;
    }
   
function aaa()
{var a= new Date();
var mm=a.getMonth();
var dd=a.getDate();
var hh=a.getHours();
var ms=a.getMinutes();
var ss=a.getSeconds();
var str=new String();
if(mm<10)
{var m=mm+1;str+="0"+m;}
else
{str+=mm+1;}
if(dd<10)
{str+="0"+dd;}
else
{str+=dd;}
if(hh<10)
{str+="0"+hh;}
else
{str+=hh;}
if(ms<10)
{str+="0"+ms;}
else
{str+=ms;}
if(ss<10)
{str+="0"+ss;}
else
{str+=ss;}
return str;
}
</SCRIPT>

    <form id="form1" runat="server">
    <br />
    <br />
    <br />
    <div style="text-align:center">
        <input id="Button6" οnclick="OpenComm()" type="button" value="开启COM" />
        <input id="Button7" type="button" οnclick="CloseComm()" value="关闭COM" />
         
        <input id="Button1" type="button" value="自动开启COM" οnclick="AutoOpenComm()" />
            <br />
            <br />
            <table>
            <tr><td colspan="2"><div style="color:Red;" id="TextBox1">COM关闭状态</div><br /></td></tr>
       <tr><td>金额</td><td><asp:Label ID="Track" runat="server" Text=""></asp:Label><br /></td></tr>
       <tr><td>COM端口</td>
          <td> <asp:TextBox ID="TextBox2" runat="server" Text="1"></asp:TextBox>(查看COM端口)</td></tr>
        <tr><td>商户终端编号</td><td><asp:TextBox ID="shanghu" runat="server"></asp:TextBox>(一共8位数字)</td></tr>
       <tr><td>收款员编号</td><td><asp:TextBox ID="Track2" runat="server" Text=""></asp:TextBox>(小于4位数字)</td></tr>
     <tr><td>交易定单编号</td><td><asp:Label ID="Track3"
             runat="server" Text="Label"></asp:Label></td></tr>
     
       <tr><td colspan="2">
           <input id="Button2" type="button" οnclick="TAPI_SendReq()" value="消费" /><asp:Button ID="Button4" Visible="false" runat="server" Text="消费" OnClick="Button4_Click" />
               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:Red">温馨提示:检查POS机连接、细心填写</span></td></tr>
                <asp:Button ID="Button5" OnClick="Button6_Click" runat="server" Text="关闭" /></table>
        <asp:Label ID="jieguo" runat="server" Visible="false" Text=""></asp:Label>
        <asp:Label ID="last" runat="server" Text=""></asp:Label>
        <asp:Label ID="lastpos" runat="server" Text=""></asp:Label>
        <input id="res" value="asdf" type="text" />
        <asp:Button ID="Button3" runat="server" Text="Button" Visible="false" OnClick="Button3_Click1" />
       
    </div>
    </form>
</body>
</html>

 

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using NLUnitPadLib;

public partial class sendbypos : System.Web.UI.Page

    public NLUnitPadLib.NLUnitPadClass nplca = new NLUnitPadLib.NLUnitPadClass();
   
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["res"] == null || Request.QueryString["res"] == "")
        {
            Track.Text = Request.QueryString["aoderAmount"].Trim();
            Track3.Text = Request.QueryString["orderId"].Trim();
        }
        else
        {
            Track.Text = Request.QueryString["aoderAmount"].Trim();
            Track3.Text = Request.QueryString["orderId"].Trim();
            jieguo.Text = Request.QueryString["res"].ToString();
            string jg = jieguo.Text.Trim();
            if (jg.Length > 4)
            {
                string yz = jg.Substring(2, 2);
                if (yz == "00")
                {
                    datachange(Track3.Text.Trim(), Track.Text.Trim());
                    Response.Write("<script>alert('充值成功!');</script>");
                }
                else
                {
                    Response.Write("<script>alert('充值失败!');</script>");
                }
            }
            else
            { Response.Write("<script>alert('充值失败!');</script>"); }
        }
       
    }

    protected void Button6_Click(object sender, EventArgs e)
    {
        Response.Write("<script>window.open('','_self');top.opener=null;top.close();</script>");
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        //if (nplca.CloseComm() == 1)
        //{
        //    TextBox1.Text = "COM成功关闭";
        //}
        //else
        //{
        //    TextBox1.Text = "COM关闭失败";
        //}
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        //NLUnitPadLib.NLUnitPadClass np = new NLUnitPadLib.NLUnitPadClass();
        //int temp = nplca.AutoOpenComm(60);
        //if (temp == 1)
        //{
        //    TextBox1.Text = "自动开启COM1成功";
        //}
        //else if (temp == 2)
        //    TextBox1.Text = "自动开启COM2成功";
        //else if (temp == 3)
        //    TextBox1.Text = "自动开启COM3成功";
        //else if (temp == 4)
        //    TextBox1.Text = "自动开启COM4成功";
        //else if (temp == 5)
        //    TextBox1.Text = "自动开启COM5成功";
        //else if (temp == 6)
        //    TextBox1.Text = "自动开启COM6成功";
        //else if (temp == 7)
        //    TextBox1.Text = "自动开启COM7成功";
        //else if (temp == 8)
        //    TextBox1.Text = "自动开启COM8成功";
        //else if (temp == 9)
        //    TextBox1.Text = "自动开启COM9成功";
        //else
        //    TextBox1.Text = "自动开启COM失败";

    }
    protected void Button4_Click(object sender, EventArgs e)
    {
        last.Text = "请等待。。";
        string res = "";
        string money = getMoney(double.Parse(Track.Text.Trim()));
        string posid = shanghu.Text.Trim();
        string operid = getoperid(Track2.Text.Trim());
        string OrderID = getOrderID(Track3.Text.Trim());
        res = getPOSStrXF(money, posid, operid, OrderID);
        //发送
      
       // nplca.API_SendReq(98,res);
        lastpos.Text = res;
    }

    protected static void datachange(string orderId,string track)
    {

        SqlComm mysqlcomm = new SqlComm();
        string userid = string.Empty;
        int id = 0;
        string sql = "select userid,id from bremittance where ordernc='" + orderId + "' and state=0";
        SqlDataReader dr = mysqlcomm.GetDataReader(sql);
        if (dr.Read())
        {
            userid = dr["userid"].ToString();
            id = int.Parse(dr["id"].ToString());
            string moneyNote = "汇款";
            balance Mymoney = new balance();
            float beforeMoney = Mymoney.user_balance(userid);
            float moneys = float.Parse(track);
            string type = "汇款";
            remitAuditing Myremit = new remitAuditing();
            Myremit.remitAud(moneys, userid, DateTime.Now, beforeMoney + moneys, moneyNote, id, type);
        }
        dr.Close();
    }

    protected void Button5_Click(object sender, EventArgs e)
    {
        nplca.API_SendReq(98, this.Track2.Text);
        this.Track3.Text = nplca.API_RecvResp();
    }
    public static string getoperid(string str)
    {
        string res = "";

        int leng = 4;
        int num = leng - str.Trim().Length;
        for (int i = 0; i < num; i++)
        {
            res = res + "0";
        }
        res = res + str.Trim();
        return res;
    }
    //获取最终POS接口号
    protected static string getPOSStrXF(string jine, string pid, string OpeID, string OrdID)
    {
        string TransType = "00";
        string money = jine;
        string posid = pid;
        string OperatorID = OpeID;
        string time = DateTime.Now.ToString("MMddHHMMss");
        string OrderID = OrdID;
        int leng = 98;
        string result = TransType + money + posid + OperatorID + time + OrderID;
        int num = leng - result.Length;
        for (int i = 0; i < num; i++)
        {
            result += " ";
        }
        return result;
    }
    //订单编号
    public static string getOrderID(string orderid)
    {
        string OrderID = orderid.Trim();
        int leng = 20;
        int num = leng - OrderID.Length;
        string res = "";
        for (int i = 0; i < num; i++)
        {
            res += " ";
        }
        res = res + OrderID;
        return res;
    }
    //获取金额
    protected static string getMoney(double oldmon)
    {
        string money = oldmon.ToString().Trim();
        int point = money.LastIndexOf(".");
        string res = "";
        if (point == -1)
        {
            res = money + "00";
            res = getOK(res, 12);
        }
        else
        {
            string res1 = money.Substring(0, point);
            string res2 = money.Substring(point + 1);
            if (res2.Length > 2)
            {
                res2 = res2.Substring(0, 2);
            }
            else if (res2.Length == 2)
            {

            }
            else if (res2.Length == 1)
            { res2 = res2 + "0"; }
            else if (res2.Length == 0)
            { }
            res = getOK(res1 + res2, 12);
        }
        return res;
    }
    //获取字符处,根据固定长度
    protected static string getOK(string oldstr, int leng)
    {
        int oldlen = oldstr.Length;

        int num = leng - oldstr.Length;
        string res = "";
        for (int i = 0; i < num; i++)
        {
            res += "0";
        }
        string result = res + oldstr;
        return result;
    }


    protected void Button3_Click1(object sender, EventArgs e)
    {
        string jg = jieguo.Text.Trim();
        if (jg.Length > 4)
        {
            string yz = jg.Substring(2, 2);
            if (yz == "00")
            {
                datachange(Track3.Text.Trim(), Track.Text.Trim());
                Response.Write("<script>alert('充值成功!');</script>");
            }
            else
            {
                Response.Write("<script>alert('充值失败<>0!');</script>");
            }
        }
        else
        { Response.Write("<script>alert('充值失败<4!');</script>"); }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值