刷卡機無法動作 |
答題得分者是:frankiech
|
hungyulin
一般會員 發表:36 回覆:33 積分:13 註冊:2003-10-15 發送簡訊給我 |
小弟現在手上有一台刷卡機,但是試了好久就是無法控制它進行交易,請各位大大幫忙看看。
1.傳輸規格
ASYNC.9600, 7 data-bit, Even parity, 1 Stop-bit. 2.採固定長度資料送收 Total 144 byte 不用之欄位填"0"
3.資料傳輸協定
資料封包格式定義(Message Block Format)
STX DATA ETX LRC
DATA message data to be sent
LRC exclusive-OR bytes from DATA to ETX
STX = 0x02
ETX = 0x03 我寫了以下的程式作測試,但它就是不動。 unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Comms; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
P,sP: string;
ComPort,ComPort1: TComPort;
begin
ComPort := TComPort.Create(nil);
ComPort.Port := TPortType(sInvComPort-1);
ComPort.WriteBufSize:=0;
try
ComPort.Open;
except
raise Exception.Create('請確認刷卡機有否安裝好!');
end;
P:='';
p:=p '01';//trans_type
p:=p '0000000000000000000000000000000';//host_id receipt_no card_no date_exp
p:=p '0000000100000';//trans_amount
p:=p '000000000000000000000';//trans_date trans_time approval_no
p:=p '000000000000000000000000';//auth_amount resp_code terminal_id
p:=p '0000000000000000000000000000000000000';//ref_no exp_amount vip_card offset amount
p:=p 'AA00000001';//invoice
p:=p '0000000';//filler
ComPort.WriteString(chr(2) P chr(3), True);
Comport.free;
end; end.
|
frankiech
中階會員 發表:7 回覆:78 積分:52 註冊:2002-08-29 發送簡訊給我 |
|
hungyulin
一般會員 發表:36 回覆:33 積分:13 註冊:2003-10-15 發送簡訊給我 |
|
frankiech
中階會員 發表:7 回覆:78 積分:52 註冊:2002-08-29 發送簡訊給我 |
|
hungyulin
一般會員 發表:36 回覆:33 積分:13 註冊:2003-10-15 發送簡訊給我 |
|
frankiech
中階會員 發表:7 回覆:78 積分:52 註冊:2002-08-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |