Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

micros 3700 GSS Gift Card Setup 2

Status
Not open for further replies.

gryfuyn

IS-IT--Management
Jun 2, 2015
6
0
0
US
Really appreciate what I've gleaned from here so far.

I've got GSS gift cards set up, and verified it against the GSS configuration guide floating around here. Creating a new GC using a micros employee card works - even though I have GSS Card setup configured completely incompatible for their formatting.

The cards we want to use were purchased from Valuetec several years ago - for a different system - and then never used. When we try sliding the cards the workstation just makes a default error tone - it does the same thing if I try sliding a credit card. No errors display, nothing in the log - even with verbosity at 10. I can manually enter the full 19 digit card number and it creates a new GC, but then when trying to redeem it does the same thing - no read. Using WSDiag and confidence test verify that the cards are using track 2. I've attempted to attach an image of the card and the track data, but just in case the track data at the terminal is:
;7047761750730003806=38263706?
The actual card number is (7047761750730003806)
The other number (38263706) is a "Pin" code.

In GSS Card Setup I've tried setting:
Start position 2 length 19
Start position 10 length 10

Since it behaves the same with credit cards, I'm assuming that there is some kind of safety built in to prevent credit cards as gift cards, and these cards are triggering that. Does anybody know if that's the case, and if so any way to work around it? Could a SIM script be made to intercept the card swipe and pass it through?

Tested in lab on both RES 5.2MR1a and 5.4MR3 with both a WS5a and a PCWS2010

Thank You!
 
 http://files.engineering.com/getfile.aspx?folder=005abc37-9daf-4731-ba31-f337beedd4b9&file=cards.jpg
You could try a SIM scripts, yes. This is pretty rough and doesn't account for things like possible HALO and overtendering, but it should get you started. I also don't remember the function number for a GSS inquiry - I checked one of my other SIMs, but I was doing that with a direct SQL call, plus it was one of the earlier SIMs I wrote...

Code:
SUB GET_BALANCE( REF CARD_DATA, REF BALANCE )
	VAR SQL_CMD : A2000
	FORMAT SQL_CMD AS "SELECT current_value FROM MICROS.gss_gift_certificate_dtl WHERE card_data = '", CARD_DATA, "'"
	CALL SQL_QUERY( SQL_CMD )
	CALL SQL_FETCH( SQL_CMD )
	IF SQL_CMD = ""
		BALANCE = -1
	ELSE
		BALANCE = SQL_CMD
	ENDIF
ENDSUB

SIM you can use to get yourself started:

Code:
var sell_svc : n7 = XXXX //set this to your sell card service charge number
var add_value_svc : n7 = XXXX //set this to your add value to card service charge number
var redeem_tndr : n7 = XXXX //set this to the object number of your redeem tender

//for some reason with the mid using variables to set your start and length can be a bit wonky, so set that directly within the function here
sub get_card_data(ref output)
[indent]var key_pressed : key[/indent]
[indent]var card_data : a2000[/indent]
[indent]inputkey key_press, card_data, "Swipe card now"[/indent]
[indent]if key_press <> @key_enter[/indent]
[indent][indent]exitcontinue[/indent][/indent]
[indent]endif[/indent]
[indent]card_data = mid(card_data, 2, 19) //set 2 to your start position, and 19 to your length[/indent]
[indent]output = card_data[/indent]
endsub

sub get_amount_entry(ref output, var message : A40)
[indent]var key_pressed : key[/indent]
[indent]var amount_entry : $12[/indent]
[indent]inputkey key_press, amount_entry, message[/indent]
[indent]if key_press <> @key_enter[/indent]
[indent][indent]exitwitherror "Amount entry required"[/indent][/indent]
[indent]endif[/indent]
[indent]output = amount_entry[/indent]
endsub

//inquiries
var sell_inq : n1 = 1
var reload_inq : n1 = 2
var redeem_inq : n1 = 3
var balance_inq : n1 = 4

//events
event inq : sell_inq
[indent]var card_data : A19[/indent]
[indent]call get_card_data(card_data)[/indent]
[indent]if @userentry <> 0[/indent]
[indent][indent]loadkybdmacro makekeys(@userentry), key(7,sell_svc), makekeys(card_data), @key_enter[/indent][/indent]
[indent]else[/indent]
[indent][indent]var amount_entry : $12[/indent][/indent]
[indent][indent]call get_amount_entry(amount_entry, "Enter sell card amount")[/indent][/indent]
[indent][indent]loadkybdmacro makekeys(amount_entry), key(7,sell_svc), makekeys(card_data), @key_enter[/indent][/indent]
[indent]endif[/indent]
endevent

event inq : reload_inq
[indent]var card_data : A19[/indent]
[indent]call get_card_data(card_data)[/indent]
[indent]if @userentry <> 0[/indent]
[indent][indent]loadkybdmacro makekeys(@userentry), key(7,add_value_svc), makekeys(card_data), @key_enter[/indent][/indent]
[indent]else[/indent]
[indent][indent]var amount_entry : $12[/indent][/indent]
[indent][indent]call get_amount_entry(amount_entry, "Enter add value amount")[/indent][/indent]
[indent][indent]loadkybdmacro makekeys(amount_entry), key(7,add_value_svc), makekeys(card_data), @key_enter[/indent][/indent]
[indent]endif[/indent]
endevent

event inq : redeem_inq
[indent]var card_data : A19[/indent]
[indent]call get_card_data(card_data)[/indent]
[indent]if @userentry <> 0[/indent]
[indent][indent]loadkybdmacro makekeys(@userentry), key(9,redeem_tndr), makekeys(card_data), @key_enter[/indent][/indent]
[indent]else[/indent]
[indent][indent]var amount_entry : $12[/indent][/indent]
[indent][indent]call get_amount_entry(amount_entry, "Enter redeem card amount")[/indent][/indent]
[indent][indent]loadkybdmacro makekeys(amount_entry), key(9,redeem_tndr), makekeys(card_data), @key_enter[/indent][/indent]
[indent]endif[/indent]
endevent

event inq : balance_inq
[indent]var card_data : A19[/indent]
[indent]call get_card_data(card_data)[/indent]
[indent]loadkybdmacro key(1,???), makekeys(card_data), @key_enter[/indent]
endevent
 
Yep, that's the route I decided to go when i didn't get an immediate response. I've pretty much got what you have, and also decided that direct SQL checks work better for my scenario than the actual GSS inquiry. Everything's working great, but (feature creep) I'm trying to build events to "authorize" and "close" gift cards. I thought check info lines would be a convenient way to do this, and can get the card details in, but am having a little trouble getting it back out to use. Any clues as to the best way to do that? Other than an SQL call the only thing I've found to get at info lines is @dtl_name[fcount], but it is only returning the first 24 characters of the info line.
 
I haven't touched that SIM in 11 months but it worked well while it was in use.
 
There is another one officially on the Micros website too I think - not sure. I rolled my own before checking.
 
Thanks, I don't see one on the main micros site, but can't access the portals at all right now.

Looks like you went with SQL for fetching the check info lines. Baring a better idea from any other sources I'll just purloin that sub.

Thank you.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top