普通IC卡电子钱包是IC卡块数据的另外一种格式,这种格式存储占用了全部16个字节,所以一旦将这个块作为电子钱包使用,则不能在这个块存储任何其他的数据.
电子钱包输入和输出均为4个字节整形,不能为小数类型.如果要存储小数类型,需要放大相应倍数,使其转变为整形.
电子钱包是数据存储的另外一个格式,所以在我们使用电子钱包之前,必须将其初始化为钱包.之后才能对其充值和扣款,查询余额操作.
使用友我科技IC卡读卡器web插件系统可以在web浏览器,如IE,Firefox,Chrome,Safari,Opera及以这些为内核的浏览器中对IC卡电子钱包进行操作.

 
web通过友我科技IC卡读卡器web插件系统操作IC卡读卡器对电子钱包操作,初始化电子钱包API接口如下:
M1卡初始化钱包
 
M1IntialValue(blockIndex,value)
 
参数:blockIndex,块号,绝对地址,从0开始
 
value:要初始化的值.
举例如下,我们将第4块初始化为钱包,并且初始化余额为100.
 
function InitialValue()
{
	var BlockID;
	var Key;
	var Value;
	
	BlockID = 4; 
	Key ="FFFFFFFFFFFF";
	Value = 100;
	rfidreader.KeyMode=0;
	rfidreader.KeyStringMode=0;
	rfidreader.KeyString=Key;
	rfidreader.Repeat=0;
	rfidreader.M1IntialValue(BlockID, Value);
}
 
rfidreader.onResult(function(resultdata)
{
	switch(resultdata.FunctionID)
    {
		case 9:
		if(resultdata.Result>0)
		{
			CardNo=resultdata.CardNo;;
			alert("初始化成功");		
		}
		else
		{
			alert("初始化失败");
		}
		break;
    }
}
);
 
web对IC卡查询余额接口如下
M1卡获取钱包余额
 
参数:blockIndex,块号,绝对地址,从0开始
查询钱包余额的结果通过回调函数返回.
以下代码读取第4块的钱包余额
 
function ReadValue()
{
	var BlockID;
	var Key;
	
	BlockID = 4; 
	Key ="FFFFFFFFFFFF";
	rfidreader.KeyMode=0;
	rfidreader.KeyStringMode=0;
	rfidreader.KeyString=Key;
	rfidreader.Repeat=0;
	rfidreader.M1GetValue(BlockID);	
}
 
rfidreader.onResult(function(resultdata)
{
	switch(resultdata.FunctionID)
    {
		case 10:
		if(resultdata.Result>0)
		{
			CardNo=resultdata.CardNo;
			Balance = resultdata.ValData;
		}
		else
		{
			alert("读取错误");	
		}
		break;
    }
}
);
 
IC卡电子钱包充值和扣款的web api接口如下:
M1卡钱包充值
 
M1IncreaseValue(blockIndex,value)
 
参数:blockIndex,块号,绝对地址,从0开始
value:要充值的值
 
M1DecreaseValue(blockIndex,value)
 
参数:blockIndex,块号,绝对地址,从0开始
 
不管是充值还是扣款,回调函数都将返回.如果是成功, 回调函数还返回充值和扣款后的余额.
 
还是以第4块为例,充值和扣款值均为10,代码如下:
充值
 
function IncreaseValue()
{
	var BlockID;
	var Key;
	var Value;
	
	BlockID = 4; 
	Key ="FFFFFFFFFFFF";
	Value = 10;
	rfidreader.KeyMode=0;
	rfidreader.KeyStringMode=0;
	rfidreader.KeyString=Key;
	rfidreader.Repeat=0;
	rfidreader.M1IncreaseValue(BlockID, Value);
}
 
function DecreaseValue()
{
		var BlockID;
	var Key;
	var Value;
	
	BlockID = 4; 
	Key ="FFFFFFFFFFFF";
	Value = 10;
	rfidreader.KeyMode=0;
	rfidreader.KeyStringMode=0;
	rfidreader.KeyString=Key;
	rfidreader.Repeat=0;
	rfidreader.M1DecreaseValue(BlockID, Value);
}
 
rfidreader.onResult(function(resultdata)
{
	switch(resultdata.FunctionID)
    {
		case 11:
		if(resultdata.Result>0)
		{
		   CardNo= resultdata.CardNo;
           Balance=	resultdata.ValData;	
		}
		else
		{
			alert("错误");
		}		
		break
		case 12:
		if(resultdata.Result>0)
		{
		   CardNo= resultdata.CardNo;
           Balance=	resultdata.ValData;	
		}
		else
		{
			alert("错误");
		}		
		break;
    }
}
);
 
通过友我科技IC卡读卡器web插件系统对IC卡电子钱包操作全部完成,代码量很少。