添加项目文件。

master
rexlin 5 years ago
commit f4396dc237
  1. 63
      .gitattributes
  2. 261
      .gitignore
  3. 31
      N5_DLL_HKGOV.sln
  4. 72
      n5coredll/LogUtil.cs
  5. 6
      n5coredll/LoyaltyType.cs
  6. 1687
      n5coredll/N5Core.cs
  7. 96
      n5coredll/N5PropertyOper.cs
  8. 239
      n5coredll/ObjectUtil.cs
  9. 15
      n5coredll/PaymentApp.cs
  10. 23
      n5coredll/PaymentType.cs
  11. 36
      n5coredll/Properties/AssemblyInfo.cs
  12. 26
      n5coredll/Properties/Settings.Designer.cs
  13. 6
      n5coredll/Properties/Settings.settings
  14. 374
      n5coredll/RefundResult.cs
  15. 164
      n5coredll/RequestResult.cs
  16. 468
      n5coredll/RetrievalResult.cs
  17. 461
      n5coredll/SaleResult.cs
  18. 9
      n5coredll/TxnStatus.cs
  19. 5
      n5coredll/TxnType.cs
  20. 36
      n5coredll/Util.cs
  21. 169
      n5coredll/VoidResult.cs
  22. 3
      n5coredll/app.config
  23. BIN
      n5coredll/n5codedll.snk
  24. 89
      n5coredll/n5coredll.csproj

63
.gitattributes vendored

@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

261
.gitignore vendored

@ -0,0 +1,261 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
project.fragment.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
#*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.539
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "n5coredll", "n5coredll\n5coredll.csproj", "{1F0C1D84-FD97-41F1-BC8B-F2F22C1997A1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ECR_N5_DLL_TestUI", "..\ECR_N5_DLL_TestUI\ECR_N5_DLL_TestUI.csproj", "{DEF387D0-3F98-4720-874D-8A753399B206}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1F0C1D84-FD97-41F1-BC8B-F2F22C1997A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F0C1D84-FD97-41F1-BC8B-F2F22C1997A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1F0C1D84-FD97-41F1-BC8B-F2F22C1997A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1F0C1D84-FD97-41F1-BC8B-F2F22C1997A1}.Release|Any CPU.Build.0 = Release|Any CPU
{DEF387D0-3F98-4720-874D-8A753399B206}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DEF387D0-3F98-4720-874D-8A753399B206}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DEF387D0-3F98-4720-874D-8A753399B206}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DEF387D0-3F98-4720-874D-8A753399B206}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {09A4E58D-A17A-46E6-A4C0-323D0C8C2E63}
EndGlobalSection
EndGlobal

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace n5coredll
{
public class LogUtil
{
private static String mLogPath;
private static LogUtil mInstance;
public static LogUtil getInstance()
{
if (mInstance == null)
mInstance = new LogUtil();
return mInstance;
}
public void setLogPath(String logPath)
{
if (logPath.EndsWith(@"\"))
mLogPath = logPath;
else
mLogPath = logPath + @"\";
}
private String getCurLogFile()
{
StringBuilder txnIdSb = new StringBuilder();
DateTime dt = DateTime.Now;
return ("n5dll" + "_" + dt.ToString("yyyyMMdd") +".log");
}
public void addRepeatLog(string logInfo)
{
try
{
String path = mLogPath + getCurLogFile();
//path = @"C:\Users\rexli\AppData\Local\Temp\test.log";
if (!File.Exists(path))
{
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff") + " [LOGGER] " + logInfo);
sw.Flush();
sw.Close();
}
}
else
{
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff") + " [LOGGER] " + logInfo);
sw.Flush();
sw.Close();
}
}
// Console.WriteLine(logInfo);
}
catch (Exception err)
{
Console.WriteLine("Exception = " + err);
}
}
}
}

@ -0,0 +1,6 @@
using System;
namespace n5coredll {
public enum LoyaltyType {
UP, MT, BK, LM, NONE
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,96 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.IO;
namespace n5coredll
{
class N5PropertyOper : System.Collections.Hashtable {
private string fileName = "";
private ArrayList list = new ArrayList();
public ArrayList List {
get { return list; }
set { list = value; }
}
public N5PropertyOper(string fileName) {
this.fileName = fileName;
this.Load(fileName);
}
public override void Add(object key, object value) {
base.Add(key, value);
list.Add(key);
}
public override ICollection Keys {
get {
return list;
}
}
private void Load(string filePath) {
char[] convertBuf = new char[1024];
int limit;
int keyLen;
int valueStart;
char c;
string bufLine = string.Empty;
bool hasSep;
bool precedingBackslash;
using (StreamReader sr = new StreamReader(filePath)) {
while (sr.Peek() >= 0) {
bufLine = sr.ReadLine();
limit = bufLine.Length;
keyLen = 0;
valueStart = limit;
hasSep = false;
precedingBackslash = false;
if (bufLine.StartsWith("#"))
keyLen = bufLine.Length;
while (keyLen < limit) {
c = bufLine[keyLen];
if ((c == '=' || c == ':') & !precedingBackslash) {
valueStart = keyLen + 1;
hasSep = true;
break;
}
else if ((c == ' ' || c == '\t' || c == '\f') & !precedingBackslash) {
valueStart = keyLen + 1;
break;
}
if (c == '\\') {
precedingBackslash = !precedingBackslash;
}
else {
precedingBackslash = false;
}
keyLen++;
}
while (valueStart < limit) {
c = bufLine[valueStart];
if (c != ' ' && c != '\t' && c != '\f') {
if (!hasSep && (c == '=' || c == ':')) {
hasSep = true;
}
else {
break;
}
}
valueStart++;
}
string key = bufLine.Substring(0, keyLen);
string values = bufLine.Substring(valueStart, limit - valueStart);
if (key == "")
key += "#";
while (key.StartsWith("#") & this.Contains(key)) {
key += "#";
}
this.Add(key, values);
}
}
}
}
}

@ -0,0 +1,239 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace n5coredll
{
class ObjectUtil {
public static bool isNull(object obj) {
if (obj == null || "".Equals(obj.ToString())) {
return true;
}
return false;
}
public static TxnType getTxnType(String pTxnType) {
switch (pTxnType) {
case "SALE":
return TxnType.SALE;
case "REFUND":
return TxnType.REFUND;
default:
return TxnType.NONE;
}
}
public static string getTxnTypeValue(TxnType pTxnType) {
switch (pTxnType) {
case TxnType.SALE:
return "SALE";
case TxnType.REFUND:
return "REFUND";
default:
return "";
}
}
public static TxnStatus getTxnStatus(String pTxnStatus)
{
switch (pTxnStatus)
{
case "A":
return TxnStatus.Approved;
case "P":
return TxnStatus.Confirming;
case "V":
return TxnStatus.Voided;
case "S":
return TxnStatus.Settled;
default:
return TxnStatus.Failed;
}
}
public static LoyaltyType getLoyaltyType(String pLoyalType) {
switch (pLoyalType) {
case "UP":
return LoyaltyType.UP;
case "MT":
return LoyaltyType.MT;
case "BK":
return LoyaltyType.BK;
case "LM":
return LoyaltyType.LM;
default:
return LoyaltyType.NONE;
}
}
public static string getLoyaltyTypeValue(LoyaltyType pLoyalType) {
switch (pLoyalType) {
case LoyaltyType.UP:
return "UP";
case LoyaltyType.MT:
return "MT";
case LoyaltyType.BK:
return "BK";
case LoyaltyType.LM:
return "LM";
default:
return "";
}
}
public static PaymentApp getPaymentApp(String pPaymentApp) {
switch (pPaymentApp) {
case "CC":
return PaymentApp.CC;
case "QRC":
return PaymentApp.QRC;
case "CPN":
return PaymentApp.CPN;
case "AE":
return PaymentApp.AMEX;
case "DC":
return PaymentApp.DC;
case "FPS":
return PaymentApp.FPS;
case "EPS":
return PaymentApp.EPS;
case "OPS":
return PaymentApp.OPS;
default:
return PaymentApp.NONE;
}
}
public static string getPaymentAppValue(PaymentApp pPaymentApp) {
switch (pPaymentApp) {
case PaymentApp.CC:
return "CC";
case PaymentApp.QRC:
return "QRC";
case PaymentApp.CPN:
return "CPN";
case PaymentApp.AMEX:
return "AE";
case PaymentApp.DC:
return "DC";
case PaymentApp.FPS:
return "FPS";
case PaymentApp.EPS:
return "EPS";
case PaymentApp.OPS:
return "OPS";
default:
return "NONE";
}
}
public static PaymentType getPaymentType(String pPaymentType) {
switch (pPaymentType) {
case "VC":
return PaymentType.VC;
case "VC-QR":
return PaymentType.VC_QR;
case "MC":
return PaymentType.MC;
case "MC-QR":
return PaymentType.MC_QR;
case "JCB":
return PaymentType.JCB;
case "JCB-QR":
return PaymentType.JCB_QR;
case "UP":
return PaymentType.UP;
case "UP-QR":
return PaymentType.UP_QR;
case "AE":
return PaymentType.AE;
case "DC":
return PaymentType.DC;
case "ALP":
return PaymentType.ALP;
case "WCP":
return PaymentType.WCP;
default:
return PaymentType.NONE;
}
}
public static string getPaymentTypeValue(PaymentType pPaymentType) {
switch (pPaymentType) {
case PaymentType.VC:
return "VC";
case PaymentType.VC_QR:
return "VC-QR";
case PaymentType.MC:
return "MC";
case PaymentType.MC_QR:
return "MC-QR";
case PaymentType.JCB:
return "JCB";
case PaymentType.JCB_QR:
return "JCB-QR";
case PaymentType.UP:
return "UP";
case PaymentType.UP_QR:
return "UP-QR";
case PaymentType.AE:
return "AE";
case PaymentType.DC:
return "DC";
case PaymentType.ALP:
return "ALP";
case PaymentType.WCP:
return "WCP";
default:
return "";
}
}
public static Byte[] ConvertFrom(string strTemp) {
try {
if (Convert.ToBoolean(strTemp.Length & 1))//数字的二进制码最后1位是1则为奇数
{
strTemp = "0" + strTemp;//数位为奇数时前面补0
}
Byte[] aryTemp = new Byte[strTemp.Length / 2];
for (int i = 0; i < (strTemp.Length / 2); i++) {
aryTemp[i] = (Byte)(((strTemp[i * 2] - '0') << 4) | (strTemp[i * 2 + 1] - '0'));
}
return aryTemp;//高位在前
}
catch { return null; }
}
public static Byte lrc(Byte[] datas) {
byte tmp = 0;
for (int i = 0; i < datas.Length; i++) {
tmp ^= datas[i];
}
return tmp;
}
public static string bcd2Str(byte[] bytes) {
Console.WriteLine("Execute bcd2Str!");
StringBuilder temp = new StringBuilder();
for (int i = 0; i < bytes.Length; i++) {
int h = ((bytes[i] & 0xff) >> 4) + 48;
temp.Append((char)h);
int l = ((bytes[i] & 0x0f)) + 48;
temp.Append((char)l);
}
return temp.ToString();
}
public static string desToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < bytes.Length; i++) {
string st = string.Format("%02X", bytes[i]);
sb.Append(st);
}
return sb.ToString();
}
}
}

@ -0,0 +1,15 @@
using System;
namespace n5coredll
{
public enum PaymentApp {
CC,
QRC,
CPN,
AMEX,
DC,
FPS,
EPS,
OPS,
NONE
}
}

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace n5coredll
{
public enum PaymentType {
VC,
VC_QR,
MC,
MC_QR,
JCB,
JCB_QR,
UP,
UP_QR,
AE,
DC,
ALP,
WCP,
NONE
}
}

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("n5coredll")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Home")]
[assembly: AssemblyProduct("n5coredll")]
[assembly: AssemblyCopyright("Copyright © Home 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1f0c1d84-fd97-41f1-bc8b-f2f22c1997a1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace n5coredll.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
</SettingsFile>

@ -0,0 +1,374 @@
using System;
using System.Text;
namespace n5coredll
{
public class RefundResult {
private static string TXN_ID = "TXN_ID";
private static string STATUS = "STATUS";
private static string TXN_AMT = "TXN_AMT";
private static string PAYMENT_TYPE = "PAYMENT_TYPE";
private static string RESP_CODE = "RESP_CODE";
private static string TRACE_NO = "TRACE_NO";
private static string TXN_DATE = "TXN_DATE";
private static string TXN_TIME = "TXN_TIME";
private static string HOST_REF = "HOST_REF";
private static string AUTH_CODE = "AUTH_CODE";
private static string LOCAL_CUR = "LOCAL_CUR";
private static string FOREIGN_CUR = "FOREIGN_CUR";
private static string FXRATE = "FXRATE";
private static string FOREIGN_AMT = "FOREIGN_AMT";
private static string MID = "MID";
private static string TID = "TID";
private static string PAN = "PAN";
private static string EXPIRY_DATE = "EXPIRY_DATE";
private static string AID = "AID";
private static string ENTRY_MODE = "ENTRY_MODE";
private static string BATCH_NO = "BATCH_NO";
private static string TC = "TC";
private static string APP = "APP";
private static string ACQUIRER = "ACQUIRER";
private string ecrRefTxnId;
private string status;
private decimal txnAmt;
private PaymentType paymentType;
private string respCode;
private string traceNo;
private string txnDate;
private string txnTime;
private string hostRef;
private string couponId;
private string authCode;
private string localCur;
private string foreignCur;
private string fxRate;
private string foreignAmt;
private string mid;
private string tid;
private string pan;
private string expiryDate;
private string aid;
private string entryMode;
private string batchNo;
private string tc;
private string app;
private string acquirer;
private void setEcrRefTxnId(string pEcrRefTxnId) {
ecrRefTxnId = pEcrRefTxnId;
}
public string EcrRefTxnId {
get { return ecrRefTxnId; }
}
public string Status {
get { return status; }
}
private void setStatus(string pStatus) {
this.status = pStatus;
}
public decimal TxnAmt {
get { return txnAmt; }
}
private void setTxnAmt(decimal pTxnAmt) {
this.txnAmt = pTxnAmt;
}
public PaymentType PaymentType {
get { return paymentType; }
}
private void setPaymentType(PaymentType pPaymentType) {
this.paymentType = pPaymentType;
}
public string RespCode {
get { return respCode; }
}
private void setRespCode(string pRespCode) {
this.respCode = pRespCode;
}
public string TraceNo {
get { return traceNo; }
}
private void setTraceNo(string pTraceNo) {
this.traceNo = pTraceNo;
}
public string TxnDate {
get { return txnDate; }
}
private void setTxnDate(string pTxnDate) {
this.txnDate = pTxnDate;
}
public string TxnTime {
get { return txnTime; }
}
private void setTxnTime(string pTxnTime) {
this.txnTime = pTxnTime;
}
public string HostRef {
get { return hostRef; }
}
private void setHostRef(string pHostRef) {
this.hostRef = pHostRef;
}
public string CouponId {
get { return couponId; }
}
private void setCouponId(string pCouponId) {
this.couponId = pCouponId;
}
public string AuthCode {
get { return authCode; }
}
private void setAuthCode(string pAuthCode) {
this.authCode = pAuthCode;
}
public string LocalCur {
get { return localCur; }
}
private void setLocalCur(string pLocalCur) {
this.localCur = pLocalCur;
}
public string ForeignCur {
get { return foreignCur; }
}
private void setForeignCur(string pForeignCur) {
this.foreignCur = pForeignCur;
}
public string FxRate {
get { return fxRate; }
}
private void setFxRate(string pFxRate) {
this.fxRate = pFxRate;
}
public string ForeignAmt {
get { return foreignAmt; }
}
private void setForeignAmt(string pForeignAmt) {
this.foreignAmt = pForeignAmt;
}
public string Mid {
get { return mid; }
}
private void setMid(string pMid) {
this.mid = pMid;
}
public string Tid {
get { return tid; }
}
private void setTid(string pTid) {
this.tid = pTid;
}
public string Pan {
get { return pan; }
}
private void setPan(string pPan) {
this.pan = pPan;
}
public string ExpiryDate {
get { return expiryDate; }
}
private void setExpiryDate(string pExpiryDate) {
this.expiryDate = pExpiryDate;
}
public string Aid {
get { return aid; }
}
private void setAid(string pAid) {
this.aid = pAid;
}
public string EntryMode {
get { return entryMode; }
}
private void setEntryMode(string pEntryMode) {
this.entryMode = pEntryMode;
}
public string BatchNo {
get { return batchNo; }
}
private void setBatchNo(string pBatchNo) {
this.batchNo = pBatchNo;
}
public string Tc {
get { return tc; }
}
private void setTc(string pTc) {
this.tc = pTc;
}
public string App {
get { return app; }
}
private void setApp(string pApp) {
this.app = pApp;
}
public string Acquirer {
get { return acquirer; }
}
private void setAcquirer(string pAcquirer) {
this.acquirer = pAcquirer;
}
public RefundResult() {
}
public RefundResult(string pStatus) {
this.setStatus(pStatus);
}
private static string curTxnId;
public static string getCurTxnId()
{
return curTxnId;
}
public static string toJsonForRefund(decimal txnAmt, PaymentApp appId, string qrcValue) {
string thisTxnId = getTxnId();
if (thisTxnId == null || "".Equals(thisTxnId)) {
Console.WriteLine("getTxnId is null ");
return null;
}
curTxnId = thisTxnId;
string cardRefundMsg = "{\"EVENT_NAME\":\"REFUND\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + thisTxnId + "\",\"QRC_VALUE\":\"" + qrcValue + "\",\"TXN_AMT\":" + txnAmt.ToString() + "}";
return cardRefundMsg;
}
public static string toJsonForRefund(string txnIId, decimal txnAmt, PaymentApp appId, string qrcValue)
{
string cardRefundMsg = "{\"EVENT_NAME\":\"REFUND\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnIId + "\",\"QRC_VALUE\":\"" + qrcValue + "\",\"TXN_AMT\":" + txnAmt.ToString() + "}";
return cardRefundMsg;
}
private static string getTxnId() {
StringBuilder txnIdSb = new StringBuilder();
DateTime dt = DateTime.Now;
txnIdSb.Append(dt.ToString("yyyyMMddHHmmssfff"));
Console.WriteLine("txnIdSb = " + txnIdSb.ToString());
int randomTime = 0;
if (dt.Ticks.ToString().Length > 8) {
Console.WriteLine("Ticks.Length > 8 = " + dt.Ticks.ToString());
randomTime = int.Parse(dt.Ticks.ToString().Substring(0, 8));
}
else {
randomTime = int.Parse(dt.Ticks.ToString());
}
if (randomTime > 0) {
Random random = new Random(randomTime);
for (int i = 0; i < 15; i++) {
int thidRandom = random.Next(10);
txnIdSb.Append(thidRandom);
}
Console.WriteLine("txnIdSb.ToString = " + txnIdSb.ToString());
return txnIdSb.ToString();
}
else {
Console.WriteLine("randomTime is error = " + randomTime);
}
return "";
}
public static RefundResult toRefundResultFromJsonMsg(string jsonMsg) {
if (jsonMsg == null || !jsonMsg.StartsWith("{") || !jsonMsg.EndsWith("}")) {
return null;
}
int jsonLength = jsonMsg.Length;
jsonMsg = jsonMsg.Substring(0, jsonLength - 1);
jsonMsg = jsonMsg.Substring(1, jsonLength - 2);
string[] column = jsonMsg.Split(',');
string[] valueColumn = null;
string valueColumn0 = null;
string valueColumn1 = null;
RefundResult RefundResult = new RefundResult();
for (int i = 0; i < column.Length; i++) {
valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (RefundResult.TXN_ID.Equals(valueColumn0)) {
RefundResult.setEcrRefTxnId(valueColumn1);
}
if (RefundResult.STATUS.Equals(valueColumn0)) {
RefundResult.setStatus(valueColumn1);
}
if (RefundResult.TXN_AMT.Equals(valueColumn0)) {
if (valueColumn1 == null || "".Equals(valueColumn1)) {
RefundResult.setTxnAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else {
RefundResult.setTxnAmt(decimal.Parse(valueColumn1));
}
}
if (RefundResult.PAYMENT_TYPE.Equals(valueColumn0)) {
RefundResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1));
}
if (RefundResult.RESP_CODE.Equals(valueColumn0)) {
RefundResult.setRespCode(valueColumn1);
}
if (RefundResult.TRACE_NO.Equals(valueColumn0)) {
RefundResult.setTraceNo(valueColumn1);
}
if (RefundResult.TXN_DATE.Equals(valueColumn0)) {
RefundResult.setTxnDate(valueColumn1);
}
if (RefundResult.TXN_TIME.Equals(valueColumn0)) {
RefundResult.setTxnTime(valueColumn1);
}
if (RefundResult.HOST_REF.Equals(valueColumn0)) {
RefundResult.setHostRef(valueColumn1);
}
if (RefundResult.AUTH_CODE.Equals(valueColumn0)) {
RefundResult.setAuthCode(valueColumn1);
}
if (RefundResult.LOCAL_CUR.Equals(valueColumn0)) {
RefundResult.setLocalCur(valueColumn1);
}
if (RefundResult.FOREIGN_CUR.Equals(valueColumn0)) {
RefundResult.setForeignCur(valueColumn1);
}
if (RefundResult.FXRATE.Equals(valueColumn0)) {
RefundResult.setFxRate(valueColumn1);
}
if (RefundResult.FOREIGN_AMT.Equals(valueColumn0)) {
RefundResult.setForeignAmt(valueColumn1);
}
if (RefundResult.MID.Equals(valueColumn0)) {
RefundResult.setMid(valueColumn1);
}
if (RefundResult.TID.Equals(valueColumn0)) {
RefundResult.setTid(valueColumn1);
}
if (RefundResult.PAN.Equals(valueColumn0)) {
RefundResult.setPan(valueColumn1);
}
if (RefundResult.EXPIRY_DATE.Equals(valueColumn0)) {
RefundResult.setExpiryDate(valueColumn1);
}
if (RefundResult.AID.Equals(valueColumn0)) {
RefundResult.setAid(valueColumn1);
}
if (RefundResult.ENTRY_MODE.Equals(valueColumn0)) {
RefundResult.setEntryMode(valueColumn1);
}
if (RefundResult.BATCH_NO.Equals(valueColumn0)) {
RefundResult.setBatchNo(valueColumn1);
}
if (RefundResult.APP.Equals(valueColumn0)) {
RefundResult.setApp(valueColumn1);
}
if (RefundResult.TC.Equals(valueColumn0)) {
RefundResult.setTc(valueColumn1);
}
if (RefundResult.ACQUIRER.Equals(valueColumn0)) {
RefundResult.setAcquirer(valueColumn1);
}
}
return RefundResult;
}
}
}

@ -0,0 +1,164 @@
using System;
using System.Text;
namespace n5coredll
{
public class RequestResult {
private static string STATUS = "STATUS";
private string status;
public string Status {
get { return status; }
}
private void setStatus(string pStatus) {
this.status = pStatus;
}
public RequestResult() {
}
public RequestResult(string pStatus) {
this.setStatus(pStatus);
}
public static string toJsonForLinkTest() {
return "{\"EVENT_NAME\":\"ECHO\"}";
}
public static string toJsonForHealthCheck()
{
return "{\"EVENT_NAME\":\"HEALTH_CHECK\"}";
}
public static string toJsonForCreateOrder(string txnId, decimal txnAmt, string paymentType, string billType)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"CREATE_ORDER\",\"TXN_ID\":\"" + txnId + "\",\"TXN_AMT\":" + txnAmt + ",\"PAYMENT_TYPE\":\"" + paymentType + "\",\"BILL_TYPE_ID\":\"" + billType + "\"}";
return cardSaleMsg;
}
public static string toJsonForSettlement()
{
return "{\"EVENT_NAME\":\"SETTLE\"}";
}
public static string toJsonForSummaryEnquiry(String txnDateRange)
{
return "{\"EVENT_NAME\":\"SUMMARY_ENQUIRY\",\"TXN_DATE_START_TO_END\":\"" + txnDateRange + "\"}";
}
public static string toJsonForReprint(String txnId)
{
return "{\"EVENT_NAME\":\"PRINT\",\"TXN_ID\":\"" + txnId + "\",\"IS_REPRINT\":true}";
}
public static string toJsonForAbort()
{
return "{\"EVENT_NAME\":\"ABORT\"}";
}
public static string toJsonForScan()
{
return "{\"EVENT_NAME\":\"SCAN\"}";
}
public static string toJsonForReadCardNFC()
{
return "{\"EVENT_NAME\":\"READ_CARD\"}";
}
public static string toJsonForAddPoint(string inputTxnId, decimal txnAmt)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"ADD_POINT\",\"TXN_ID\":\"" + inputTxnId + "\",\"TXN_AMT\":" + txnAmt + "}";
return cardSaleMsg;
}
public static string toJsonForBatchEnquiry(string settleDate)
{
return "{\"EVENT_NAME\":\"BATCH_ENQUIRY\",\"SETTLE_DATE\":\"" + settleDate + "\"}";
}
public static string toJsonForSettleEnquiry(string batchId)
{
return "{\"EVENT_NAME\":\"SETTLE_ENQUIRY\",\"BATCH_ID\":\"" + batchId + "\"}";
}
public static RequestResult toReqResultFromJsonMsg(string jsonMsg) {
if (jsonMsg == null || !jsonMsg.StartsWith("{") || !jsonMsg.EndsWith("}")) {
return null;
}
int jsonLength = jsonMsg.Length;
jsonMsg = jsonMsg.Substring(0, jsonLength - 1);
jsonMsg = jsonMsg.Substring(1, jsonLength - 2);
string[] column = jsonMsg.Split(',');
string[] valueColumn = null;
string valueColumn0 = null;
string valueColumn1 = null;
RequestResult reqResult = new RequestResult();
for (int i = 0; i < column.Length; i++) {
valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (RequestResult.STATUS.Equals(valueColumn0)) {
reqResult.setStatus(valueColumn1);
}
}
return reqResult;
}
public static String createRespErrJson(String eventName, String status)
{
return "{\"EVENT_NAME\":\"" +eventName + "\",\"STATUS\":\"" + status + "\"}";
}
public static String createRespErrJson(String eventName, String status, String respCode, String errMsg)
{
return "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}";
}
public static String createRespErrJson(String functionName, String eventName, String status, String respCode, String errMsg)
{
LogUtil.getInstance().addRepeatLog("[result]: " + "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}");
LogUtil.getInstance().addRepeatLog("<<<<<<<<<<<<<<<< End Event [" + functionName + "] <<<<<<<<<<<<<<<<");
return "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}";
}
public static String createRespErrJson(String functionName, String eventName, String txnId, String paymentType, String txnAmt, String status, String respCode, String errMsg)
{
LogUtil.getInstance().addRepeatLog("[result]: " + "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}");
LogUtil.getInstance().addRepeatLog("<<<<<<<<<<<<<<<< End Event [" + functionName + "] <<<<<<<<<<<<<<<<");
if (txnId == null || txnId == "")
txnId = "";
return "{\"EVENT_NAME\":\"" + eventName + "\",\"TXN_ID\":\"" + txnId + "\",\"PAYMENT_TYPE\":\"" + paymentType + "\",\"TXN_AMT\":\"" + txnAmt + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}";
}
public static String createRespErrJson(String functionName, String eventName, String txnId, String status, String respCode, String errMsg)
{
LogUtil.getInstance().addRepeatLog("[result]: " + "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}");
LogUtil.getInstance().addRepeatLog("<<<<<<<<<<<<<<<< End Event [" + functionName + "] <<<<<<<<<<<<<<<<");
if (txnId == null || txnId == "")
txnId = "";
return "{\"EVENT_NAME\":\"" + eventName + "\",\"TXN_ID\":\"" + txnId + "\",\"STATUS\":\"" + status + "\",\"RESP_CODE\":\"" + respCode + "\",\"ERR_MSG\":\"" + errMsg + "\"}";
}
public static String createRespProcessingJson(String functionName, String eventName, String txnId, String paymentType, String txnAmt)
{
LogUtil.getInstance().addRepeatLog("[result]: " + "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + "03" + "\"}");
LogUtil.getInstance().addRepeatLog("<<<<<<<<<<<<<<<< End Event [" + functionName + "] <<<<<<<<<<<<<<<<");
if (txnId == null || txnId == "")
txnId = "";
return "{\"EVENT_NAME\":\"" + eventName + "\",\"TXN_ID\":\"" + txnId + "\",\"PAYMENT_TYPE\":\"" + paymentType + "\",\"TXN_AMT\":\"" + txnAmt + "\",\"STATUS\":\"" + "03" + "\"}";
}
public static String createRespProcessingJson(String functionName, String eventName, String txnId, String paymentType, String txnAmt, String respCode)
{
LogUtil.getInstance().addRepeatLog("[result]: " + "{\"EVENT_NAME\":\"" + eventName + "\",\"STATUS\":\"" + "03" + "\",\"RESP_CODE\":\"" + respCode + "\"}");
LogUtil.getInstance().addRepeatLog("<<<<<<<<<<<<<<<< End Event [" + functionName + "] <<<<<<<<<<<<<<<<");
if (txnId == null || txnId == "")
txnId = "";
return "{\"EVENT_NAME\":\"" + eventName + "\",\"TXN_ID\":\"" + txnId + "\",\"PAYMENT_TYPE\":\"" + paymentType + "\",\"TXN_AMT\":\"" + txnAmt + "\",\"STATUS\":\"" + "03" + "\",\"RESP_CODE\":\"" + respCode + "\"}";
}
}
}

@ -0,0 +1,468 @@
using System;
using System.Text;
namespace n5coredll
{
public class RetrievalResult {
private static string EVENT_NAME = "EVENT_NAME";
private static string TXN_TYPE = "TXN_TYPE";
private static string TXN_ID = "TXN_ID";
private static string STATUS = "STATUS";
private static string TXN_STATUS = "TXN_STATUS";
private static string TXN_AMT = "TXN_AMT";
private static string TIPS = "TIPS";
private static string PAYMENT_TYPE = "PAYMENT_TYPE";
private static string RESP_CODE = "RESP_CODE";
private static string LOYALTY_TYPE = "LOYALTY_TYPE";
private static string CAMPAIGN_ID = "CAMPAIGN_ID";
private static string TRACE_NO = "TRACE_NO";
private static string TXN_DATE = "TXN_DATE";
private static string TXN_TIME = "TXN_TIME";
private static string HOST_REF = "HOST_REF";
private static string COUPON_ID = "COUPON_ID";
private static string AUTH_CODE = "AUTH_CODE";
private static string TENDER = "TENDER";
private static string AUTH_AMT = "AUTH_AMT";
private static string DISCOUNT = "DISCOUNT";
private static string LOCAL_CUR = "LOCAL_CUR";
private static string FOREIGN_CUR = "FOREIGN_CUR";
private static string FXRATE = "FXRATE";
private static string FOREIGN_AMT = "FOREIGN_AMT";
private static string MID = "MID";
private static string TID = "TID";
private static string PAN = "PAN";
private static string EXPIRY_DATE = "EXPIRY_DATE";
private static string LOYALTY_REF = "LOYALTY_REF";
private static string AID = "AID";
private static string ENTRY_MODE = "ENTRY_MODE";
private static string BATCH_NO = "BATCH_NO";
private static string TC = "TC";
private static string APP = "APP";
private static string ACQUIRER = "ACQUIRER";
private string eventName;
private TxnType txnType;
private string ecrRefTxnId;
private string status;
private TxnStatus txnStatus;
private decimal txnAmt;
private decimal tipAmt;
private PaymentType paymentType;
private string respCode;
private LoyaltyType loyaltyType;
private string campaignId;
private string traceNo;
private string txnDate;
private string txnTime;
private string hostRef;
private string couponId;
private string authCode;
private string tender;
private string authAmt;
private string discAmt;
private string localCur;
private string foreignCur;
private string fxRate;
private string foreignAmt;
private string mid;
private string tid;
private string pan;
private string expiryDate;
private string loyaltyRef;
private string aid;
private string entryMode;
private string batchNo;
private string tc;
private string app;
private string acquirer;
public void setEventName(string pEventName)
{
eventName = pEventName;
}
public string EventName
{
get { return eventName; }
}
private void setTxnType(TxnType pTxnType) {
txnType = pTxnType;
}
public TxnType TxnType {
get { return txnType; }
}
private void setTxnStatus(TxnStatus pTxnStatus) {
txnStatus = pTxnStatus;
}
public TxnStatus TxnStatus {
get { return txnStatus; }
}
private void setTender(string pTender) {
tender = pTender;
}
public string Tender {
get { return tender; }
}
private void setEcrRefTxnId(string pEcrRefTxnId) {
ecrRefTxnId = pEcrRefTxnId;
}
public string EcrRefTxnId {
get { return ecrRefTxnId; }
}
public string Status {
get { return status; }
}
private void setStatus(string pStatus) {
this.status = pStatus;
}
public decimal TxnAmt {
get { return txnAmt; }
}
private void setTxnAmt(decimal pTxnAmt) {
this.txnAmt = pTxnAmt;
}
public decimal TipAmt {
get { return tipAmt; }
}
private void setTipAmt(decimal pTipAmt) {
this.tipAmt = pTipAmt;
}
public PaymentType PaymentType {
get { return paymentType; }
}
private void setPaymentType(PaymentType pPaymentType) {
this.paymentType = pPaymentType;
}
public string RespCode {
get { return respCode; }
}
private void setRespCode(string pRespCode) {
this.respCode = pRespCode;
}
public LoyaltyType LoyaltyType {
get { return loyaltyType; }
}
private void setLoyaltyType(LoyaltyType pLoyaltyType) {
this.loyaltyType = pLoyaltyType;
}
public string CampaignId {
get { return campaignId; }
}
private void setCampaignId(string pCampaignId) {
this.campaignId = pCampaignId;
}
public string TraceNo {
get { return traceNo; }
}
private void setTraceNo(string pTraceNo) {
this.traceNo = pTraceNo;
}
public string TxnDate {
get { return txnDate; }
}
private void setTxnDate(string pTxnDate) {
this.txnDate = pTxnDate;
}
public string TxnTime {
get { return txnTime; }
}
private void setTxnTime(string pTxnTime) {
this.txnTime = pTxnTime;
}
public string HostRef {
get { return hostRef; }
}
private void setHostRef(string pHostRef) {
this.hostRef = pHostRef;
}
public string CouponId {
get { return couponId; }
}
private void setCouponId(string pCouponId) {
this.couponId = pCouponId;
}
public string AuthCode {
get { return authCode; }
}
private void setAuthCode(string pAuthCode) {
this.authCode = pAuthCode;
}
public string AuthAmt {
get { return authAmt; }
}
private void setAuthAmt(string pAuthAmt) {
this.authAmt = pAuthAmt;
}
public string DiscAmt {
get { return discAmt; }
}
private void setDiscAmt(string pDiscAmt) {
this.discAmt = pDiscAmt;
}
public string LocalCur {
get { return localCur; }
}
private void setLocalCur(string pLocalCur) {
this.localCur = pLocalCur;
}
public string ForeignCur {
get { return foreignCur; }
}
private void setForeignCur(string pForeignCur) {
this.foreignCur = pForeignCur;
}
public string FxRate {
get { return fxRate; }
}
private void setFxRate(string pFxRate) {
this.fxRate = pFxRate;
}
public string ForeignAmt {
get { return foreignAmt; }
}
private void setForeignAmt(string pForeignAmt) {
this.foreignAmt = pForeignAmt;
}
public string Mid {
get { return mid; }
}
private void setMid(string pMid) {
this.mid = pMid;
}
public string Tid {
get { return tid; }
}
private void setTid(string pTid) {
this.tid = pTid;
}
public string Pan {
get { return pan; }
}
private void setPan(string pPan) {
this.pan = pPan;
}
public string ExpiryDate {
get { return expiryDate; }
}
private void setExpiryDate(string pExpiryDate) {
this.expiryDate = pExpiryDate;
}
public string LoyaltyRef {
get { return loyaltyRef; }
}
private void setLoyaltyRef(string pLoyaltyRef) {
this.loyaltyRef = pLoyaltyRef;
}
public string Aid {
get { return aid; }
}
private void setAid(string pAid) {
this.aid = pAid;
}
public string EntryMode {
get { return entryMode; }
}
private void setEntryMode(string pEntryMode) {
this.entryMode = pEntryMode;
}
public string BatchNo {
get { return batchNo; }
}
private void setBatchNo(string pBatchNo) {
this.batchNo = pBatchNo;
}
public string Tc {
get { return tc; }
}
private void setTc(string pTc) {
this.tc = pTc;
}
public string App {
get { return app; }
}
private void setApp(string pApp) {
this.app = pApp;
}
public string Acquirer {
get { return acquirer; }
}
private void setAcquirer(string pAcquirer) {
this.acquirer = pAcquirer;
}
public RetrievalResult() {
}
public RetrievalResult(string pStatus) {
this.setStatus(pStatus);
}
public static string toJsonForRetrieval(string txnId) {
if (txnId == null || "".Equals(txnId)) {
Console.WriteLine("txnId is null ");
return null;
}
string cardSaleMsg = "{\"EVENT_NAME\":\"RETRIEVAL\",\"TXN_ID\":\"" + txnId + "\"}";
return cardSaleMsg;
}
public static RetrievalResult toRetrievalResultFromJsonMsg(string jsonMsg) {
if (jsonMsg == null || !jsonMsg.StartsWith("{") || !jsonMsg.EndsWith("}")) {
return null;
}
int jsonLength = jsonMsg.Length;
jsonMsg = jsonMsg.Substring(0, jsonLength - 1);
jsonMsg = jsonMsg.Substring(1, jsonLength - 2);
string[] column = jsonMsg.Split(',');
string[] valueColumn = null;
string valueColumn0 = null;
string valueColumn1 = null;
RetrievalResult retrievalResult = new RetrievalResult();
for (int i = 0; i < column.Length; i++) {
valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (RetrievalResult.EVENT_NAME.Equals(valueColumn0))
{
retrievalResult.setEventName(valueColumn1);
}
if (RetrievalResult.TXN_TYPE.Equals(valueColumn0)) {
retrievalResult.setTxnType(ObjectUtil.getTxnType(valueColumn1));
}
if (RetrievalResult.TXN_ID.Equals(valueColumn0)) {
retrievalResult.setEcrRefTxnId(valueColumn1);
}
if (RetrievalResult.STATUS.Equals(valueColumn0)) {
retrievalResult.setStatus(valueColumn1);
}
if (RetrievalResult.TXN_STATUS.Equals(valueColumn0)) {
retrievalResult.setTxnStatus(ObjectUtil.getTxnStatus(valueColumn1));
}
if (RetrievalResult.TXN_AMT.Equals(valueColumn0)) {
if (valueColumn1 == null || "".Equals(valueColumn1)) {
retrievalResult.setTxnAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else {
retrievalResult.setTxnAmt(decimal.Parse(valueColumn1, System.Globalization.NumberStyles.AllowDecimalPoint));
}
}
if (RetrievalResult.TIPS.Equals(valueColumn0)) {
if (valueColumn1 == null || "".Equals(valueColumn1)) {
retrievalResult.setTipAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else {
retrievalResult.setTipAmt(decimal.Parse(valueColumn1, System.Globalization.NumberStyles.AllowDecimalPoint));
}
}
if (RetrievalResult.PAYMENT_TYPE.Equals(valueColumn0)) {
retrievalResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1));
}
if (RetrievalResult.RESP_CODE.Equals(valueColumn0)) {
retrievalResult.setRespCode(valueColumn1);
}
if (RetrievalResult.LOYALTY_TYPE.Equals(valueColumn0)) {
retrievalResult.setLoyaltyType(ObjectUtil.getLoyaltyType(valueColumn1));
}
if (RetrievalResult.CAMPAIGN_ID.Equals(valueColumn0)) {
retrievalResult.setCampaignId(valueColumn1);
}
if (RetrievalResult.TRACE_NO.Equals(valueColumn0)) {
retrievalResult.setTraceNo(valueColumn1);
}
if (RetrievalResult.TXN_DATE.Equals(valueColumn0)) {
retrievalResult.setTxnDate(valueColumn1);
}
if (RetrievalResult.TXN_TIME.Equals(valueColumn0)) {
retrievalResult.setTxnTime(valueColumn1);
}
if (RetrievalResult.HOST_REF.Equals(valueColumn0)) {
retrievalResult.setHostRef(valueColumn1);
}
if (RetrievalResult.COUPON_ID.Equals(valueColumn0)) {
retrievalResult.setCouponId(valueColumn1);
}
if (RetrievalResult.AUTH_CODE.Equals(valueColumn0)) {
retrievalResult.setAuthCode(valueColumn1);
}
if (RetrievalResult.TENDER.Equals(valueColumn0)) {
retrievalResult.setTender(valueColumn1);
}
if (RetrievalResult.AUTH_AMT.Equals(valueColumn0)) {
retrievalResult.setAuthAmt(valueColumn1);
}
if (RetrievalResult.DISCOUNT.Equals(valueColumn0)) {
retrievalResult.setDiscAmt(valueColumn1);
}
if (RetrievalResult.LOCAL_CUR.Equals(valueColumn0)) {
retrievalResult.setLocalCur(valueColumn1);
}
if (RetrievalResult.FOREIGN_CUR.Equals(valueColumn0)) {
retrievalResult.setForeignCur(valueColumn1);
}
if (RetrievalResult.FXRATE.Equals(valueColumn0)) {
retrievalResult.setFxRate(valueColumn1);
}
if (RetrievalResult.FOREIGN_AMT.Equals(valueColumn0)) {
retrievalResult.setForeignAmt(valueColumn1);
}
if (RetrievalResult.MID.Equals(valueColumn0)) {
retrievalResult.setMid(valueColumn1);
}
if (RetrievalResult.TID.Equals(valueColumn0)) {
retrievalResult.setTid(valueColumn1);
}
if (RetrievalResult.PAN.Equals(valueColumn0)) {
retrievalResult.setPan(valueColumn1);
}
if (RetrievalResult.EXPIRY_DATE.Equals(valueColumn0)) {
retrievalResult.setExpiryDate(valueColumn1);
}
if (RetrievalResult.LOYALTY_REF.Equals(valueColumn0)) {
retrievalResult.setLoyaltyRef(valueColumn1);
}
if (RetrievalResult.AID.Equals(valueColumn0)) {
retrievalResult.setAid(valueColumn1);
}
if (RetrievalResult.ENTRY_MODE.Equals(valueColumn0)) {
retrievalResult.setEntryMode(valueColumn1);
}
if (RetrievalResult.BATCH_NO.Equals(valueColumn0)) {
retrievalResult.setBatchNo(valueColumn1);
}
if (RetrievalResult.APP.Equals(valueColumn0)) {
retrievalResult.setApp(valueColumn1);
}
if (RetrievalResult.TC.Equals(valueColumn0)) {
retrievalResult.setTc(valueColumn1);
}
if (RetrievalResult.ACQUIRER.Equals(valueColumn0)) {
retrievalResult.setAcquirer(valueColumn1);
}
}
return retrievalResult;
}
}
}

@ -0,0 +1,461 @@
using System;
using System.Text;
namespace n5coredll
{
public class SaleResult {
private static string TXN_ID = "TXN_ID";
private static string STATUS = "STATUS";
private static string TXN_AMT = "TXN_AMT";
private static string TIPS = "TIPS";
private static string PAYMENT_TYPE = "PAYMENT_TYPE";
private static string RESP_CODE = "RESP_CODE";
private static string LOYALTY_TYPE = "LOYALTY_TYPE";
private static string CAMPAIGN_ID = "CAMPAIGN_ID";
private static string TRACE_NO = "TRACE_NO";
private static string TXN_DATE = "TXN_DATE";
private static string TXN_TIME = "TXN_TIME";
private static string HOST_REF = "HOST_REF";
private static string COUPON_ID = "COUPON_ID";
private static string AUTH_CODE = "AUTH_CODE";
private static string AUTH_AMT = "AUTH_AMT";
private static string DISCOUNT = "DISCOUNT";
private static string LOCAL_CUR = "LOCAL_CUR";
private static string FOREIGN_CUR = "FOREIGN_CUR";
private static string FXRATE = "FXRATE";
private static string FOREIGN_AMT = "FOREIGN_AMT";
private static string MID = "MID";
private static string TID = "TID";
private static string PAN = "PAN";
private static string EXPIRY_DATE = "EXPIRY_DATE";
private static string LOYALTY_REF = "LOYALTY_REF";
private static string AID = "AID";
private static string ENTRY_MODE = "ENTRY_MODE";
private static string BATCH_NO = "BATCH_NO";
private static string TC = "TC";
private static string APP = "APP";
private static string ACQUIRER = "ACQUIRER";
private string ecrRefTxnId;
private string status;
private decimal txnAmt;
private decimal tipAmt;
private PaymentType paymentType;
private string respCode;
private LoyaltyType loyaltyType;
private string campaignId;
private string traceNo;
private string txnDate;
private string txnTime;
private string hostRef;
private string couponId;
private string authCode;
private string authAmt;
private string discAmt;
private string localCur;
private string foreignCur;
private string fxRate;
private string foreignAmt;
private string mid;
private string tid;
private string pan;
private string expiryDate;
private string loyaltyRef;
private string aid;
private string entryMode;
private string batchNo;
private string tc;
private string app;
private string acquirer;
private void setEcrRefTxnId(string pEcrRefTxnId) {
ecrRefTxnId = pEcrRefTxnId;
}
public string EcrRefTxnId {
get { return ecrRefTxnId; }
}
public string Status {
get { return status; }
}
private void setStatus(string pStatus) {
this.status = pStatus;
}
public decimal TxnAmt {
get { return txnAmt; }
}
private void setTxnAmt(decimal pTxnAmt) {
this.txnAmt = pTxnAmt;
}
public decimal TipAmt {
get { return tipAmt; }
}
private void setTipAmt(decimal pTipAmt) {
this.tipAmt = pTipAmt;
}
public PaymentType PaymentType {
get { return paymentType; }
}
private void setPaymentType(PaymentType pPaymentType) {
this.paymentType = pPaymentType;
}
public string RespCode {
get { return respCode; }
}
private void setRespCode(string pRespCode) {
this.respCode = pRespCode;
}
public LoyaltyType LoyaltyType {
get { return loyaltyType; }
}
private void setLoyaltyType(LoyaltyType pLoyaltyType) {
this.loyaltyType = pLoyaltyType;
}
public string CampaignId {
get { return campaignId; }
}
private void setCampaignId(string pCampaignId) {
this.campaignId = pCampaignId;
}
public string TraceNo {
get { return traceNo; }
}
private void setTraceNo(string pTraceNo) {
this.traceNo = pTraceNo;
}
public string TxnDate {
get { return txnDate; }
}
private void setTxnDate(string pTxnDate) {
this.txnDate = pTxnDate;
}
public string TxnTime {
get { return txnTime; }
}
private void setTxnTime(string pTxnTime) {
this.txnTime = pTxnTime;
}
public string HostRef {
get { return hostRef; }
}
private void setHostRef(string pHostRef) {
this.hostRef = pHostRef;
}
public string CouponId {
get { return couponId; }
}
private void setCouponId(string pCouponId) {
this.couponId = pCouponId;
}
public string AuthCode {
get { return authCode; }
}
private void setAuthCode(string pAuthCode) {
this.authCode = pAuthCode;
}
public string AuthAmt {
get { return authAmt; }
}
private void setAuthAmt(string pAuthAmt) {
this.authAmt = pAuthAmt;
}
public string DiscAmt {
get { return discAmt; }
}
private void setDiscAmt(string pDiscAmt) {
this.discAmt = pDiscAmt;
}
public string LocalCur {
get { return localCur; }
}
private void setLocalCur(string pLocalCur) {
this.localCur = pLocalCur;
}
public string ForeignCur {
get { return foreignCur; }
}
private void setForeignCur(string pForeignCur) {
this.foreignCur = pForeignCur;
}
public string FxRate {
get { return fxRate; }
}
private void setFxRate(string pFxRate) {
this.fxRate = pFxRate;
}
public string ForeignAmt {
get { return foreignAmt; }
}
private void setForeignAmt(string pForeignAmt) {
this.foreignAmt = pForeignAmt;
}
public string getMid() {
return mid;
}
private void setMid(string pMid) {
this.mid = pMid;
}
public string getTid() {
return tid;
}
private void setTid(string pTid) {
this.tid = pTid;
}
public string getPan() {
return pan;
}
private void setPan(string pPan) {
this.pan = pPan;
}
public string getExpiryDate() {
return expiryDate;
}
private void setExpiryDate(string pExpiryDate) {
this.expiryDate = pExpiryDate;
}
public string getLoyaltyRef() {
return loyaltyRef;
}
private void setLoyaltyRef(string pLoyaltyRef) {
this.loyaltyRef = pLoyaltyRef;
}
public string getAid() {
return aid;
}
private void setAid(string pAid) {
this.aid = pAid;
}
public string EntryMode {
get { return entryMode; }
}
private void setEntryMode(string pEntryMode) {
this.entryMode = pEntryMode;
}
public string BatchNo {
get { return batchNo; }
}
private void setBatchNo(string pBatchNo) {
this.batchNo = pBatchNo;
}
public string Tc {
get { return tc; }
}
private void setTc(string pTc) {
this.tc = pTc;
}
public string App {
get { return app; }
}
private void setApp(string pApp) {
this.app = pApp;
}
public string Acquirer {
get { return acquirer; }
}
private void setAcquirer(string pAcquirer) {
this.acquirer = pAcquirer;
}
private static string curTxnId;
public static string toJsonForSale(string txnId, decimal txnAmt, decimal tipAmt, PaymentApp appId, string qrcValue) {
string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TIPS\":" + tipAmt + ",\"TXN_AMT\":" + txnAmt + ",\"QRC_VALUE\":\"" + qrcValue + "\"}";
return cardSaleMsg;
}
public static string toJsonForSale(string txnId, decimal txnAmt, string paymentType, string billType)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"TXN_ID\":\"" + txnId + "\",\"TXN_AMT\":" + txnAmt + ",\"PAYMENT_TYPE\":\"" + paymentType + "\",\"BILL_TYPE_ID\":\"" + billType + "\"}";
return cardSaleMsg;
}
public static string toJsonForPreauth(string txnId, decimal txnAmt, PaymentApp appId, string pan, string expDate)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"PREAUTH\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TXN_AMT\":" + txnAmt + ",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\"}";
return cardSaleMsg;
}
public static string toJsonForOffline(string txnId, decimal txnAmt, PaymentApp appId, string authCode, string pan, string expDate)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"OFFLINE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TXN_AMT\":" + txnAmt + ",\"AUTH_CODE\":\"" + authCode + "\""+ ",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\"}";
return cardSaleMsg;
}
public static string toJsonForAdjust(string txnId, decimal totalAmt, decimal totalForeignAmt, PaymentApp appId)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"ADJUST\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TOTAL_TXN_AMT\":" + totalAmt + ",\"TOTAL_FOREIGN_AMT\":" + totalForeignAmt + "}";
return cardSaleMsg;
}
private static string getTxnId() {
StringBuilder txnIdSb = new StringBuilder();
DateTime dt = DateTime.Now;
txnIdSb.Append(dt.ToString("yyyyMMddHHmmssfff"));
Console.WriteLine("txnIdSb = " + txnIdSb.ToString());
int randomTime = 0;
if (dt.Ticks.ToString().Length > 8) {
Console.WriteLine("Ticks.Length > 8 = " + dt.Ticks.ToString());
randomTime = int.Parse(dt.Ticks.ToString().Substring(0, 8));
}
else {
randomTime = int.Parse(dt.Ticks.ToString());
}
if (randomTime > 0) {
Random random = new Random(randomTime);
for (int i = 0; i < 15; i++) {
int thidRandom = random.Next(10);
txnIdSb.Append(thidRandom);
}
Console.WriteLine("txnIdSb.ToString = " + txnIdSb.ToString());
return txnIdSb.ToString();
}
else {
Console.WriteLine("randomTime is error = " + randomTime);
}
return "";
}
public SaleResult() {
}
public SaleResult(string pStatus) {
this.setStatus(pStatus);
}
public static SaleResult toSaleResultFromJsonMsg(string jsonMsg) {
if (jsonMsg == null || !jsonMsg.StartsWith("{") || !jsonMsg.EndsWith("}")) {
return null;
}
int jsonLength = jsonMsg.Length;
jsonMsg = jsonMsg.Substring(0, jsonLength - 1);
jsonMsg = jsonMsg.Substring(1, jsonLength - 2);
string[] column = jsonMsg.Split(',');
string[] valueColumn = null;
string valueColumn0 = null;
string valueColumn1 = null;
SaleResult saleResult = new SaleResult();
for (int i = 0; i < column.Length; i++) {
valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (SaleResult.TXN_ID.Equals(valueColumn0)) {
saleResult.setEcrRefTxnId(valueColumn1);
}
if (SaleResult.STATUS.Equals(valueColumn0)) {
saleResult.setStatus(valueColumn1);
}
if (SaleResult.TXN_AMT.Equals(valueColumn0)) {
if (valueColumn1 == null || "".Equals(valueColumn1)) {
saleResult.setTxnAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else {
saleResult.setTxnAmt(decimal.Parse(valueColumn1));
}
}
if (SaleResult.TIPS.Equals(valueColumn0)) {
if (valueColumn1 == null || "".Equals(valueColumn1)) {
saleResult.setTipAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else {
saleResult.setTipAmt(decimal.Parse(valueColumn1, System.Globalization.NumberStyles.AllowDecimalPoint));
}
}
if (SaleResult.PAYMENT_TYPE.Equals(valueColumn0)) {
saleResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1));
}
if (SaleResult.RESP_CODE.Equals(valueColumn0)) {
saleResult.setRespCode(valueColumn1);
}
if (SaleResult.LOYALTY_TYPE.Equals(valueColumn0)) {
saleResult.setLoyaltyType(ObjectUtil.getLoyaltyType(valueColumn1));
}
if (SaleResult.CAMPAIGN_ID.Equals(valueColumn0)) {
saleResult.setCampaignId(valueColumn1);
}
if (SaleResult.TRACE_NO.Equals(valueColumn0)) {
saleResult.setTraceNo(valueColumn1);
}
if (SaleResult.TXN_DATE.Equals(valueColumn0)) {
saleResult.setTxnDate(valueColumn1);
}
if (SaleResult.TXN_TIME.Equals(valueColumn0)) {
saleResult.setTxnTime(valueColumn1);
}
if (SaleResult.HOST_REF.Equals(valueColumn0)) {
saleResult.setHostRef(valueColumn1);
}
if (SaleResult.COUPON_ID.Equals(valueColumn0)) {
saleResult.setCouponId(valueColumn1);
}
if (SaleResult.AUTH_CODE.Equals(valueColumn0)) {
saleResult.setAuthCode(valueColumn1);
}
if (SaleResult.AUTH_AMT.Equals(valueColumn0)) {
saleResult.setAuthAmt(valueColumn1);
}
if (SaleResult.DISCOUNT.Equals(valueColumn0)) {
saleResult.setDiscAmt(valueColumn1);
}
if (SaleResult.LOCAL_CUR.Equals(valueColumn0)) {
saleResult.setLocalCur(valueColumn1);
}
if (SaleResult.FOREIGN_CUR.Equals(valueColumn0)) {
saleResult.setForeignCur(valueColumn1);
}
if (SaleResult.FXRATE.Equals(valueColumn0)) {
saleResult.setFxRate(valueColumn1);
}
if (SaleResult.FOREIGN_AMT.Equals(valueColumn0)) {
saleResult.setForeignAmt(valueColumn1);
}
if (SaleResult.MID.Equals(valueColumn0)) {
saleResult.setMid(valueColumn1);
}
if (SaleResult.TID.Equals(valueColumn0)) {
saleResult.setTid(valueColumn1);
}
if (SaleResult.PAN.Equals(valueColumn0)) {
saleResult.setPan(valueColumn1);
}
if (SaleResult.EXPIRY_DATE.Equals(valueColumn0)) {
saleResult.setExpiryDate(valueColumn1);
}
if (SaleResult.LOYALTY_REF.Equals(valueColumn0)) {
saleResult.setLoyaltyRef(valueColumn1);
}
if (SaleResult.AID.Equals(valueColumn0)) {
saleResult.setAid(valueColumn1);
}
if (SaleResult.ENTRY_MODE.Equals(valueColumn0)) {
saleResult.setEntryMode(valueColumn1);
}
if (SaleResult.BATCH_NO.Equals(valueColumn0)) {
saleResult.setBatchNo(valueColumn1);
}
if (SaleResult.APP.Equals(valueColumn0)) {
saleResult.setApp(valueColumn1);
}
if (SaleResult.TC.Equals(valueColumn0)) {
saleResult.setTc(valueColumn1);
}
if (SaleResult.ACQUIRER.Equals(valueColumn0)) {
saleResult.setAcquirer(valueColumn1);
}
}
return saleResult;
}
}
}

@ -0,0 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace n5coredll
{
public enum TxnStatus { Approved, Confirming, Voided, Settled, Failed }
}

@ -0,0 +1,5 @@
using System;
namespace n5coredll
{
public enum TxnType { SALE, REFUND, NONE }
}

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace n5coredll
{
public class Util
{
public static string bcd2Str(byte[] bytes)
{
Console.WriteLine("Execute bcd2Str!");
StringBuilder temp = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
int h = ((bytes[i] & 0xff) >> 4) + 48;
temp.Append((char)h);
int l = ((bytes[i] & 0x0f)) + 48;
temp.Append((char)l);
}
return temp.ToString();
}
public static string desToHex(byte[] bytes)
{
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < bytes.Length; i++)
{
string st = string.Format("%02X", bytes[i]);
sb.Append(st);
}
return sb.ToString();
}
}
}

@ -0,0 +1,169 @@
using System;
using System.Text;
namespace n5coredll
{
public class VoidResult {
private static string TXN_ID = "TXN_ID";
private static string STATUS = "STATUS";
private static string PAYMENT_TYPE = "PAYMENT_TYPE";
private static string RESP_CODE = "RESP_CODE";
private static string TXN_DATE = "TXN_DATE";
private static string TXN_TIME = "TXN_TIME";
private static string HOST_REF = "HOST_REF";
private static string TC = "TC";
private static string APP = "APP";
private static string ACQUIRER = "ACQUIRER";
private string ecrRefTxnId;
private string status;
private PaymentType paymentType;
private string respCode;
private string txnDate;
private string txnTime;
private string hostRef;
private string tc;
private string app;
private string acquirer;
private void setEcrRefTxnId(string pEcrRefTxnId) {
ecrRefTxnId = pEcrRefTxnId;
}
public string EcrRefTxnId {
get { return ecrRefTxnId; }
}
public string Status {
get { return status; }
}
private void setStatus(string pStatus) {
this.status = pStatus;
}
public PaymentType PaymentType {
get { return paymentType; }
}
private void setPaymentType(PaymentType pPaymentType) {
this.paymentType = pPaymentType;
}
public string RespCode {
get { return respCode; }
}
private void setRespCode(string pRespCode) {
this.respCode = pRespCode;
}
public string TxnDate {
get { return txnDate; }
}
private void setTxnDate(string pTxnDate) {
this.txnDate = pTxnDate;
}
public string TxnTime {
get { return txnTime; }
}
private void setTxnTime(string pTxnTime) {
this.txnTime = pTxnTime;
}
public string HostRef {
get { return hostRef; }
}
private void setHostRef(string pHostRef) {
this.hostRef = pHostRef;
}
public string Tc {
get { return tc; }
}
private void setTc(string pTc) {
this.tc = pTc;
}
public string App {
get { return app; }
}
private void setApp(string pApp) {
this.app = pApp;
}
public string Acquirer {
get { return acquirer; }
}
private void setAcquirer(string pAcquirer) {
this.acquirer = pAcquirer;
}
public VoidResult() {
}
public VoidResult(string pStatus) {
this.setStatus(pStatus);
}
public static string toJsonForVoid(string txnId, string qrcValue) {
if (txnId == null || "".Equals(txnId)) {
Console.WriteLine("txnId is null ");
return null;
}
string cardVoidMsg = "{\"EVENT_NAME\":\"VOID\",\"TXN_ID\":\"" + txnId + "\",\"QRC_VALUE\":\"" + qrcValue + "\",\"PAYMENT_APP_ID\":\"CC\"}";
return cardVoidMsg;
}
public static VoidResult toVoidResultFromJsonMsg(string jsonMsg) {
if (jsonMsg == null || !jsonMsg.StartsWith("{") || !jsonMsg.EndsWith("}")) {
return null;
}
int jsonLength = jsonMsg.Length;
jsonMsg = jsonMsg.Substring(0, jsonLength - 1);
jsonMsg = jsonMsg.Substring(1, jsonLength - 2);
string[] column = jsonMsg.Split(',');
string[] valueColumn = null;
string valueColumn0 = null;
string valueColumn1 = null;
VoidResult VoidResult = new VoidResult();
for (int i = 0; i < column.Length; i++) {
valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (VoidResult.TXN_ID.Equals(valueColumn0)) {
VoidResult.setEcrRefTxnId(valueColumn1);
}
if (VoidResult.STATUS.Equals(valueColumn0)) {
VoidResult.setStatus(valueColumn1);
}
if (VoidResult.PAYMENT_TYPE.Equals(valueColumn0)) {
VoidResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1));
}
if (VoidResult.RESP_CODE.Equals(valueColumn0)) {
VoidResult.setRespCode(valueColumn1);
}
if (VoidResult.TXN_DATE.Equals(valueColumn0)) {
VoidResult.setTxnDate(valueColumn1);
}
if (VoidResult.TXN_TIME.Equals(valueColumn0)) {
VoidResult.setTxnTime(valueColumn1);
}
if (VoidResult.HOST_REF.Equals(valueColumn0)) {
VoidResult.setHostRef(valueColumn1);
}
if (VoidResult.APP.Equals(valueColumn0)) {
VoidResult.setApp(valueColumn1);
}
if (VoidResult.TC.Equals(valueColumn0)) {
VoidResult.setTc(valueColumn1);
}
if (VoidResult.ACQUIRER.Equals(valueColumn0)) {
VoidResult.setAcquirer(valueColumn1);
}
}
return VoidResult;
}
}
}

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

Binary file not shown.

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1F0C1D84-FD97-41F1-BC8B-F2F22C1997A1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>n5coredll</RootNamespace>
<AssemblyName>n5coredll</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<RegisterForComInterop>true</RegisterForComInterop>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RegisterForComInterop>true</RegisterForComInterop>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>n5codedll.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="LogUtil.cs" />
<Compile Include="LoyaltyType.cs" />
<Compile Include="N5Core.cs" />
<Compile Include="N5PropertyOper.cs" />
<Compile Include="ObjectUtil.cs" />
<Compile Include="PaymentApp.cs" />
<Compile Include="PaymentType.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="RefundResult.cs" />
<Compile Include="RequestResult.cs" />
<Compile Include="RetrievalResult.cs" />
<Compile Include="SaleResult.cs" />
<Compile Include="TxnStatus.cs" />
<Compile Include="TxnType.cs" />
<Compile Include="Util.cs" />
<Compile Include="VoidResult.cs" />
</ItemGroup>
<ItemGroup>
<None Include="n5codedll.snk" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Loading…
Cancel
Save