|
@@ -31,26 +31,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
-unsigned char HOST_ID_Auto[] = {0x30, 0x30};
|
|
|
-unsigned char HOST_ID_CreditCard[] = {0x31, 0x30};
|
|
|
-unsigned char HOST_ID_eTicket_Polling[] = {0x35, 0x30};
|
|
|
+unsigned char HOST_ID_Auto[] = {0x30, 0x30};
|
|
|
+unsigned char HOST_ID_CreditCard[] = {0x31, 0x30};
|
|
|
+unsigned char HOST_ID_eTicket_Polling[] = {0x35, 0x30};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-unsigned char TRANS_TYPE_Search[] = {0x37, 0x32};
|
|
|
-
|
|
|
-unsigned char TRANS_TYPE_Sale[] = {0x31, 0x31};
|
|
|
-unsigned char TRANS_TYPE_Void[] = {0x30, 0x35};
|
|
|
-unsigned char TRANS_TYPE_Refund[] = {0x31, 0x32};
|
|
|
-
|
|
|
-unsigned char TRANS_TYPE_Pre_Auth[] = {0x31, 0x33};
|
|
|
-unsigned char TRANS_TYPE_Pre_Auth_Complete[] = {0x33, 0x31};
|
|
|
-unsigned char TRANS_TYPE_Pre_Auth_Cancel[] = {0x33, 0x32};
|
|
|
-
|
|
|
-unsigned char TRANS_TYPE_UnionSettlement[] = {0x35, 0x41};
|
|
|
+
|
|
|
+unsigned char TRANS_TYPE_Search[] = {0x37, 0x32};
|
|
|
+
|
|
|
+unsigned char TRANS_TYPE_Sale[] = {0x31, 0x31};
|
|
|
+unsigned char TRANS_TYPE_Void[] = {0x30, 0x35};
|
|
|
+unsigned char TRANS_TYPE_Refund[] = {0x31, 0x32};
|
|
|
+
|
|
|
+unsigned char TRANS_TYPE_Pre_Auth[] = {0x31, 0x33};
|
|
|
+unsigned char TRANS_TYPE_Pre_Auth_Complete[] = {0x33, 0x31};
|
|
|
+unsigned char TRANS_TYPE_Pre_Auth_Cancel[] = {0x33, 0x32};
|
|
|
+
|
|
|
+unsigned char TRANS_TYPE_UnionSettlement[] = {0x35, 0x41};
|
|
|
|
|
|
|
|
|
|
|
@@ -240,7 +240,7 @@ reRecv:
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if((time(NULL)-StartTime)>40)
|
|
|
+ if((time(NULL)-StartTime)>33)
|
|
|
{
|
|
|
DEBUG_INFO_1("RecvResponse: read fail (%d / %d)\n", TotalRtn,len);
|
|
|
return -1;
|
|
@@ -311,13 +311,13 @@ int CreditCardSearch(int Fd,unsigned char *EVSEID, struct TransInfo *TransInfoRe
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
int CreditCardPreAuth(int Fd, int PreCost,unsigned char *EVSEID, struct TransInfo *TransInfoReturn)
|
|
|
{
|
|
@@ -375,10 +375,78 @@ int CreditCardPreAuth(int Fd, int PreCost,unsigned char *EVSEID, struct TransInf
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+int CreditCardSale(int Fd, int Cost,unsigned char *EVSEID, struct TransInfo *TransInfoReturn)
|
|
|
+{
|
|
|
+ unsigned char Buffer[RequestLength], *ptr, tmpbuf[12];
|
|
|
+
|
|
|
+ memset(Buffer,0x20,RequestLength);
|
|
|
+ ptr=Buffer;
|
|
|
+ strncpy((char *)ptr,(char *)HOST_ID_CreditCard,2);
|
|
|
+ ptr+=2;
|
|
|
+ strncpy((char *)ptr,(char *)TRANS_TYPE_Sale,2);
|
|
|
+ ptr+=2;
|
|
|
+ memset(tmpbuf,0,sizeof(tmpbuf));
|
|
|
+ sprintf((char *)tmpbuf,"%d", Cost);
|
|
|
+ if(strlen((char *)tmpbuf)>12)
|
|
|
+ {
|
|
|
+ DEBUG_INFO_1("CreditCardSale: Wrong Cost (Cost=%d)\n", Cost);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ memset(ptr,0x30,12);
|
|
|
+ strncpy((char *)ptr+12-(strlen((char *)tmpbuf)+2),(char *)tmpbuf,strlen((char *)tmpbuf));
|
|
|
+ ptr+=12;
|
|
|
+ ptr+=12;
|
|
|
+ ptr+=20;
|
|
|
+ strncpy((char *)ptr,(char *)EVSEID, strlen((char *)EVSEID));
|
|
|
+ ptr+=18;
|
|
|
+
|
|
|
+ if(SendRequest(Fd, Buffer, RequestLength)>0)
|
|
|
+ {
|
|
|
+ memset(Buffer,0,RequestLength);
|
|
|
+ if(RecvResponse(Fd,Buffer)>0)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ strncpy((char *)TransInfoReturn->TransAmount,(char *)Buffer+44,12);
|
|
|
+ strncpy((char *)TransInfoReturn->TransDate,(char *)Buffer+56,6);
|
|
|
+ strncpy((char *)TransInfoReturn->TransTime,(char *)Buffer+62,6);
|
|
|
+ strncpy((char *)TransInfoReturn->StoreId,(char *)Buffer+97,18);
|
|
|
+ strncpy((char *)TransInfoReturn->ROC,(char *)Buffer+12,12);
|
|
|
+ strncpy((char *)TransInfoReturn->ApprovalNo,(char *)Buffer+115,9);
|
|
|
+ strncpy((char *)TransInfoReturn->RRN,(char *)Buffer+124,12);
|
|
|
+ strncpy((char *)TransInfoReturn->CardNo,(char *)Buffer+24,20);
|
|
|
+ strncpy((char *)TransInfoReturn->VemData,(char *)Buffer+246,64);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DEBUG_INFO_1("CreditCardSale: RecvResponse failed\n");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DEBUG_INFO_1("CreditCardSale: SendRequest failed\n");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -441,7 +509,7 @@ int CreditCardPreAuthComplete(int Fd, int PreCost,unsigned char *EVSEID, unsigne
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|