fix Json parsing

master
rexlin 5 years ago
parent beaf945a41
commit ca13143060
  1. 0
      DLL_HK_EPS.sln
  2. 4
      ECR_N5_DLL_TestUI/ECR_N5_DLL_TestUI.csproj
  3. 129
      ECR_N5_DLL_TestUI/MainWindow.xaml
  4. 884
      ECR_N5_DLL_TestUI/MainWindow.xaml.cs
  5. 4
      ECR_N5_DLL_TestUI/packages.config
  6. 72
      n5coredll/LogUtil.cs
  7. 1036
      n5coredll/N5Core.cs
  8. 4
      n5coredll/ObjectUtil.cs
  9. 1
      n5coredll/PaymentType.cs
  10. 21
      n5coredll/RequestResult.cs
  11. 156
      n5coredll/RetrievalResult.cs
  12. 286
      n5coredll/SaleResult.cs
  13. 482
      n5coredll/SettleResult.cs
  14. 6
      n5coredll/n5coredll.csproj
  15. 4
      n5coredll/packages.config

@ -51,6 +51,9 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
@ -102,6 +105,7 @@
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput> <LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>

@ -5,51 +5,34 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ECR_N5_DLL_TestUI" xmlns:local="clr-namespace:ECR_N5_DLL_TestUI"
mc:Ignorable="d" mc:Ignorable="d"
Title="ECR N5 DLL TEST" Height="881" Width="810"> Title="ECR N5 DLL TEST" Height="1062" Width="1174">
<ScrollViewer> <ScrollViewer Margin="0,0,-371,0">
<Grid> <Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="207*"/>
<ColumnDefinition Width="1313*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="644*"/> <RowDefinition Height="787*"/>
<RowDefinition Height="68*"/> <RowDefinition Height="64*"/>
<RowDefinition Height="2*"/> <RowDefinition Height="0*"/>
<RowDefinition Height="5*"/> <RowDefinition Height="0*"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="331" Margin="46,445,0,0" VerticalAlignment="Top" Width="702" Grid.RowSpan="2" /> <Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="570" Margin="61,395,0,0" VerticalAlignment="Top" Width="1089" Grid.ColumnSpan="2" />
<TextBox x:Name="result1TextBox" HorizontalAlignment="Left" Height="258" Margin="406,485,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="330"/> <TextBox x:Name="result1TextBox" HorizontalAlignment="Left" Height="515" Margin="413,432,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="520" Grid.Column="1"/>
<Label Content="ECR N5 TEST" HorizontalAlignment="Left" Margin="248,-1,0,0" VerticalAlignment="Top" Width="304" Height="75" FontSize="48"/> <Label Content="ECR N5 TEST" HorizontalAlignment="Left" Margin="217,0,0,0" VerticalAlignment="Top" Width="304" Height="75" FontSize="48" Grid.Column="1"/>
<RadioButton Content="Refund" HorizontalAlignment="Left" Margin="264,77,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/> <RadioButton Content="RETRIEVAL" HorizontalAlignment="Left" Margin="62,97,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked" Height="17" Width="93" Grid.Column="1"/>
<RadioButton Content="Retrieval" HorizontalAlignment="Left" Margin="409,77,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/> <RadioButton Content="SALE" HorizontalAlignment="Left" Margin="171,97,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked" Height="17" Width="70" Grid.ColumnSpan="2"/>
<RadioButton Content="Sale" HorizontalAlignment="Left" Margin="26,77,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/> <Label Content="Please select test function:" HorizontalAlignment="Left" Margin="48,61,0,0" VerticalAlignment="Top" FontSize="16" Height="30" Width="213" Grid.ColumnSpan="2"/>
<RadioButton Content="Void" HorizontalAlignment="Left" Margin="145,77,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<Label Content="Please select test function:" HorizontalAlignment="Left" Margin="46,49,0,0" VerticalAlignment="Top" FontSize="16"/>
<Label Content="Please input test data:" HorizontalAlignment="Left" Margin="46,174,0,0" VerticalAlignment="Top" FontSize="16"/>
<Label Content="Payment Application : " HorizontalAlignment="Left" Margin="434,204,0,0" VerticalAlignment="Top"/>
<Label Content="Transaction Amount : " HorizontalAlignment="Left" Margin="61,208,0,0" VerticalAlignment="Top" Width="140"/>
<TextBox x:Name="txnAmtTextBox" HorizontalAlignment="Left" Height="23" Margin="201,208,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="205"/>
<Label Content="QR Code Value : " HorizontalAlignment="Left" Margin="61,234,0,0" VerticalAlignment="Top" Width="114"/>
<TextBox x:Name="qrValueTextBox" HorizontalAlignment="Left" Height="23" Margin="201,234,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="543"/>
<Button x:Name="submit_1_Button" Content="Submit" HorizontalAlignment="Left" Margin="494,405,0,0" VerticalAlignment="Top" Width="104" Click="Submit_1_Button_Click" Height="27"/>
<Label Content="response:" HorizontalAlignment="Left" Margin="402,455,0,0" VerticalAlignment="Top"/>
<ComboBox x:Name="paymentAppIdComboBox" SelectedIndex="0" HorizontalAlignment="Left" Margin="578,208,0,0" VerticalAlignment="Top" Width="164" > <Button x:Name="submit_1_Button" Content="Submit" HorizontalAlignment="Left" Margin="708,337,0,0" VerticalAlignment="Top" Width="166" Click="Submit_1_Button_Click" Height="27" Grid.Column="1"/>
<ComboBoxItem Content="CC"/> <Label Content="response:" HorizontalAlignment="Left" Margin="413,395,0,0" VerticalAlignment="Top" Height="32" Width="73" Grid.Column="1"/>
<ComboBoxItem Content="QRC"/>
<ComboBoxItem Content="CPN"/> <RadioButton Content="SETTLE" HorizontalAlignment="Left" Margin="334,96,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked" Height="17" Width="89" Grid.Column="1"/>
<ComboBoxItem Content="AE"/> <RadioButton Content="PRINT" HorizontalAlignment="Left" Margin="214,97,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked" Height="17" Width="72" Grid.Column="1"/>
<ComboBoxItem Content="DC"/> <RadioButton Content="Link Test" HorizontalAlignment="Left" Margin="53,96,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked" Height="17" Width="78"/>
<ComboBoxItem Content="EPS"/> <Label Content="portName : " HorizontalAlignment="Left" Margin="61,320,0,0" VerticalAlignment="Top" Height="26" Width="78"/>
<ComboBoxItem Content="OPS"/> <ComboBox x:Name="portNameComboBox" SelectedIndex="2" HorizontalAlignment="Left" Margin="171,320,0,0" VerticalAlignment="Top" Width="225" SelectionChanged="PortNameComboBox_SelectionChanged" Height="21" Grid.ColumnSpan="2">
<ComboBoxItem Content="FPS"/>
<ComboBoxItem Content="EPS"/>
<ComboBoxItem Content="NONE"/>
</ComboBox>
<Label Content="Transaction Id : " HorizontalAlignment="Left" Margin="61,261,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="ecrTxnIdTextBox" HorizontalAlignment="Left" Height="23" Margin="201,261,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="543"/>
<RadioButton Content="Settlement" HorizontalAlignment="Left" Margin="26,106,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="Reprint" HorizontalAlignment="Left" Margin="145,106,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="Link Request" HorizontalAlignment="Left" Margin="264,106,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<Label Content="portName : " HorizontalAlignment="Left" Margin="59,405,0,0" VerticalAlignment="Top"/>
<ComboBox x:Name="portNameComboBox" SelectedIndex="2" HorizontalAlignment="Left" Margin="145,409,0,0" VerticalAlignment="Top" Width="205" SelectionChanged="PortNameComboBox_SelectionChanged">
<ComboBoxItem Content="COM1"/> <ComboBoxItem Content="COM1"/>
<ComboBoxItem Content="COM2"/> <ComboBoxItem Content="COM2"/>
<ComboBoxItem Content="COM3"/> <ComboBoxItem Content="COM3"/>
@ -71,31 +54,47 @@
<ComboBoxItem Content="COM19"/> <ComboBoxItem Content="COM19"/>
<ComboBoxItem Content="COM20"/> <ComboBoxItem Content="COM20"/>
</ComboBox> </ComboBox>
<TextBox x:Name="requestTextBox" HorizontalAlignment="Left" Height="258" Margin="58,487,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="330"/> <TextBox x:Name="requestTextBox" HorizontalAlignment="Left" Height="515" Margin="73,432,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="520" Grid.ColumnSpan="2"/>
<Label Content="request:" HorizontalAlignment="Left" Margin="48,455,0,0" VerticalAlignment="Top"/> <Label Content="request:" HorizontalAlignment="Left" Margin="66,395,0,0" VerticalAlignment="Top" Height="32" Width="65"/>
<TextBox x:Name="logPathTextBox" HorizontalAlignment="Left" Height="23" Margin="48,29.667,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="680" Grid.Row="1"/> <TextBox x:Name="logPathTextBox" HorizontalAlignment="Left" Height="23" Margin="48,19,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="680" Grid.Row="1" Grid.ColumnSpan="2"/>
<Button x:Name="reset_Button" Content="Reset" HorizontalAlignment="Left" Margin="375,405,0,0" VerticalAlignment="Top" Width="101" Click="Reset_Button_Click" Height="27"/> <Button x:Name="reset_Button" Content="Reset" HorizontalAlignment="Left" Margin="489,337,0,0" VerticalAlignment="Top" Width="176" Click="Reset_Button_Click" Height="27" Grid.Column="1"/>
<RadioButton Content="Terminaion" HorizontalAlignment="Left" Margin="409,106,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="Scan" HorizontalAlignment="Left" Margin="528,106,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="ReadCard" HorizontalAlignment="Left" Margin="528,77,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="AddPoint" HorizontalAlignment="Left" Margin="647,77,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<Label Content="Pan : " HorizontalAlignment="Left" Margin="61,290,0,0" VerticalAlignment="Top" Width="114"/>
<TextBox x:Name="panTextBox" HorizontalAlignment="Left" Height="23" Margin="201,290,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="543"/>
<Label Content="Exp Date : " HorizontalAlignment="Left" Margin="61,317,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="expDateTextBox" HorizontalAlignment="Left" Height="23" Margin="201,317,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="543"/>
<RadioButton Content="PreAuth" HorizontalAlignment="Left" Margin="647,105,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="Offline" HorizontalAlignment="Left" Margin="26,137,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="Adjust" HorizontalAlignment="Left" Margin="145,137,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="BatchEnquiry" HorizontalAlignment="Left" Margin="264,137,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<RadioButton Content="SettleEnquiry" HorizontalAlignment="Left" Margin="408,137,0,0" VerticalAlignment="Top" FontSize="14" Checked="RadioButton_Checked"/>
<Label Content="Authcode" HorizontalAlignment="Left" Margin="61,345,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="authCodeTextBox" Height="23" Margin="201,345,40.667,0" TextWrapping="Wrap" VerticalAlignment="Top"/>
<Label Content="SettleDate" HorizontalAlignment="Left" Margin="489,375,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="settleDateTextBox" Height="23" Margin="578,375,41,0" TextWrapping="Wrap" VerticalAlignment="Top"/>
<Label Content="BatchId" HorizontalAlignment="Left" Margin="63,375,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="batchIdTextBox" Height="23" Margin="201,375,341,0" TextWrapping="Wrap" VerticalAlignment="Top"/>
<Button x:Name="submit_repeat_Button" Content="Start Repeat" Margin="616,405,65,0" VerticalAlignment="Top" Click="Submit_Repeat_Button_Click" Height="27"/>
<Label x:Name="sale_lbl_txnAmtTextBox" Content="Transaction Amount : " HorizontalAlignment="Left" Margin="54,144,0,0" VerticalAlignment="Top" Width="140" Height="26" Visibility="Hidden"/>
<TextBox x:Name="sale_txnAmtTextBox" HorizontalAlignment="Left" Height="23" Margin="197,145,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="199" Visibility="Hidden" Grid.ColumnSpan="2"/>
<Label x:Name="sale_lbl_paymentAppId" Content="Payment Application : " HorizontalAlignment="Left" Margin="270,144,0,0" VerticalAlignment="Top" Height="26" Width="138" Visibility="Hidden" Grid.Column="1"/>
<ComboBox x:Name="sale_paymentAppIdComboBox" SelectedIndex="0" HorizontalAlignment="Left" Margin="413,146,0,0" VerticalAlignment="Top" Width="164" Height="21" Visibility="Hidden" Grid.Column="1">
<ComboBoxItem Content="EPS"/>
</ComboBox>
<Label x:Name="retrieval_lbl_paymentAppId" Content="Payment Application : " HorizontalAlignment="Left" Margin="270,144,0,0" VerticalAlignment="Top" Height="26" Width="138" Visibility="Hidden" Grid.Column="1"/>
<ComboBox x:Name="retrieval_paymentAppIdComboBox" SelectedIndex="0" HorizontalAlignment="Left" Margin="413,146,0,0" VerticalAlignment="Top" Width="164" Height="21" Visibility="Hidden" Grid.Column="1">
<ComboBoxItem Content="EPS"/>
</ComboBox>
<Label x:Name="print_lbl_paymentAppId" Content="Payment Application : " HorizontalAlignment="Left" Margin="270,144,0,0" VerticalAlignment="Top" Height="26" Width="138" Visibility="Hidden" Grid.Column="1"/>
<ComboBox x:Name="print_paymentAppIdComboBox" SelectedIndex="0" HorizontalAlignment="Left" Margin="413,146,0,0" VerticalAlignment="Top" Width="164" Height="21" Visibility="Hidden" Grid.Column="1">
<ComboBoxItem Content="EPS"/>
</ComboBox>
<Label x:Name="settle_lbl_paymentAppId" Content="Payment Application : " HorizontalAlignment="Left" Margin="270,144,0,0" VerticalAlignment="Top" Height="26" Width="138" Visibility="Hidden" Grid.Column="1"/>
<ComboBox x:Name="settle_paymentAppIdComboBox" SelectedIndex="0" HorizontalAlignment="Left" Margin="413,146,0,0" VerticalAlignment="Top" Width="164" Height="21" Visibility="Hidden" Grid.Column="1">
<ComboBoxItem Content="EPS"/>
</ComboBox>
<Label x:Name="sale_lbl_currency" Content="Currency : " HorizontalAlignment="Left" Margin="270,175,0,0" VerticalAlignment="Top" Height="26" Width="70" Visibility="Hidden" Grid.Column="1"/>
<ComboBox x:Name="sale_currencyComboBox" SelectedIndex="0" HorizontalAlignment="Left" Margin="413,180,0,0" VerticalAlignment="Top" Width="164" Height="21" Visibility="Hidden" Grid.Column="1">
<ComboBoxItem Content="HKD"/>
<ComboBoxItem Content="MOP"/>
<ComboBoxItem Content="CNY"/>
</ComboBox>
<Label x:Name="sale_lbl_cashbackAmtTextBox" Content="Cashback Amount : " HorizontalAlignment="Left" Margin="54,176,0,0" VerticalAlignment="Top" Width="140" Height="26" Visibility="Hidden"/>
<TextBox x:Name="sale_cashbackAmtTextBox" HorizontalAlignment="Left" Height="23" Margin="197,176,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="199" Visibility="Hidden" Grid.ColumnSpan="2"/>
<Label x:Name="sale_lbl_ecrRefNoTextBox" Content="ECR Ref No : " HorizontalAlignment="Left" Margin="54,238,0,0" VerticalAlignment="Top" Height="26" Width="86" RenderTransformOrigin="-3.372,2.154" Visibility="Hidden"/>
<TextBox x:Name="sale_ecrRefNoTextBox" HorizontalAlignment="Left" Height="23" Margin="197,241,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="229" RenderTransformOrigin="0.515,1.087" Visibility="Hidden" Grid.ColumnSpan="2"/>
<Label x:Name="retrieval_lbl_isnTextBox" Content="ISN : " HorizontalAlignment="Left" Margin="87,272,0,0" VerticalAlignment="Top" Height="26" Width="44" RenderTransformOrigin="-8.795,2.269" Visibility="Hidden"/>
<TextBox x:Name="retrieval_traceNoTextBox" HorizontalAlignment="Left" Height="23" Margin="197,275,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="229" Visibility="Hidden" Grid.ColumnSpan="2"/>
<Label x:Name="print_lbl_isnTextBox" Content="ISN : " HorizontalAlignment="Left" Margin="87,272,0,0" VerticalAlignment="Top" Height="26" Width="44" RenderTransformOrigin="-8.795,2.269" Visibility="Hidden"/>
<TextBox x:Name="print_traceNoTextBox" HorizontalAlignment="Left" Height="23" Margin="197,275,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="229" Visibility="Hidden" Grid.ColumnSpan="2"/>
<Label x:Name="sale_lbl_txnId" Content="Transaction Id : " HorizontalAlignment="Left" Margin="54,208,0,0" VerticalAlignment="Top" Height="26" Width="101" Visibility="Hidden"/>
<TextBox x:Name="sale_ecrTxnIdTextBox" HorizontalAlignment="Left" Height="23" Margin="197,208,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="229" Visibility="Hidden" Grid.ColumnSpan="2"/>
<Label x:Name="settle_valuedate_lbl" Content="BankInValueDate : " HorizontalAlignment="Left" Margin="34,359,0,0" VerticalAlignment="Top" Height="26" Width="121" Visibility="Hidden"/>
<ComboBox x:Name="settle_valuedate_combox" SelectedIndex="0" HorizontalAlignment="Left" Margin="171,359,0,0" VerticalAlignment="Top" Width="164" Height="21" SelectionChanged="ValueDayComboBox_SelectionChanged" Grid.ColumnSpan="2" Visibility="Hidden"/>
</Grid> </Grid>
</ScrollViewer> </ScrollViewer>
</Window> </Window>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>

@ -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);
}
}
}
}

File diff suppressed because it is too large Load Diff

@ -155,6 +155,8 @@ namespace n5coredll
return PaymentType.ALP; return PaymentType.ALP;
case "WCP": case "WCP":
return PaymentType.WCP; return PaymentType.WCP;
case "EPS":
return PaymentType.EPS;
default: default:
return PaymentType.NONE; return PaymentType.NONE;
} }
@ -186,6 +188,8 @@ namespace n5coredll
return "ALP"; return "ALP";
case PaymentType.WCP: case PaymentType.WCP:
return "WCP"; return "WCP";
case PaymentType.EPS:
return "EPS";
default: default:
return ""; return "";
} }

@ -18,6 +18,7 @@ namespace n5coredll
DC, DC,
ALP, ALP,
WCP, WCP,
EPS,
NONE NONE
} }
} }

@ -27,7 +27,7 @@ namespace n5coredll
public static string toJsonForSettlement() public static string toJsonForSettlement()
{ {
return "{\"EVENT_NAME\":\"SETTLE\"}"; return "{\"EVENT_NAME\":\"SETTLE\",\"PAYMENT_APP_ID\":\"EPS\"}";
} }
public static string toJsonForReprint() public static string toJsonForReprint()
@ -35,6 +35,25 @@ namespace n5coredll
return "{\"EVENT_NAME\":\"PRINT\",\"IS_REPRINT\":true}"; return "{\"EVENT_NAME\":\"PRINT\",\"IS_REPRINT\":true}";
} }
public static string toJsonForReprint(string txnId, string traceNo, bool isReprint)
{
string reprintStr = "";
if (isReprint)
reprintStr = "true";
else
reprintStr = "false";
string result = "";
if (txnId!="" && traceNo!="")
result = "{\"EVENT_NAME\":\"PRINT\",\"PAYMENT_APP_ID\":\"EPS\",\"TXN_ID\":\"" + txnId + "\",\"TRACE_NO\":\"" + traceNo + "\",\"IS_REPRINT\":" + reprintStr + "}";
else if(txnId!="" && traceNo == "")
result = "{\"EVENT_NAME\":\"PRINT\",\"PAYMENT_APP_ID\":\"EPS\",\"TXN_ID\":\"" + txnId + "\",\"IS_REPRINT\":" + reprintStr + "}";
else if (traceNo != "" && txnId == "")
result = "{\"EVENT_NAME\":\"PRINT\",\"PAYMENT_APP_ID\":\"EPS\",\"TRACE_NO\":\"" + traceNo + "\",\"IS_REPRINT\":" + reprintStr + "}";
return result;
}
public static string toJsonForAbort() public static string toJsonForAbort()
{ {
return "{\"EVENT_NAME\":\"ABORT\"}"; return "{\"EVENT_NAME\":\"ABORT\"}";

@ -1,4 +1,6 @@
using System; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Text; using System.Text;
namespace n5coredll namespace n5coredll
@ -39,8 +41,11 @@ namespace n5coredll
private static string TC = "TC"; private static string TC = "TC";
private static string APP = "APP"; private static string APP = "APP";
private static string ACQUIRER = "ACQUIRER"; private static string ACQUIRER = "ACQUIRER";
private static string AC_INDICATOR = "AC_INDICATOR";
private string eventName; private static string ECR_REF_NO = "ECR_REF_NO";
private static string BANKIN_VALUE_DATE = "BANKIN_VALUE_DATE";
private static string ACCOUNT_NO = "ACCOUNT_NO";
private static string BANK_ADDITIONAL_RESPONSE = "BANK_ADDITIONAL_RESPONSE";
private TxnType txnType; private TxnType txnType;
private string ecrRefTxnId; private string ecrRefTxnId;
private string status; private string status;
@ -75,6 +80,14 @@ namespace n5coredll
private string tc; private string tc;
private string app; private string app;
private string acquirer; private string acquirer;
private string eventName = "";
private string responseText = "";
private string acIndicator = "";
private string ecrRefNo = "";
private string bankinValueDate = "";
private string accountNo = "";
private string bankAdditionalResponse = "";
private decimal cashbackAmt;
public void setEventName(string pEventName) public void setEventName(string pEventName)
{ {
@ -298,6 +311,57 @@ namespace n5coredll
private void setAcquirer(string pAcquirer) { private void setAcquirer(string pAcquirer) {
this.acquirer = pAcquirer; this.acquirer = pAcquirer;
} }
private void setBankinValueDate(string pBankinValueDate)
{
bankinValueDate = pBankinValueDate;
}
public string BankinValueDate
{
get { return bankinValueDate; }
}
private void setAccountNo(string pAccountNo)
{
accountNo = pAccountNo;
}
public string AccountNo
{
get { return accountNo; }
}
private void setBankAdditionalResponse(string pBankAdditionalResponse)
{
bankAdditionalResponse = pBankAdditionalResponse;
}
public string BankAdditionalResponse
{
get { return bankAdditionalResponse; }
}
private void setECRRefNo(string pECRRefNo)
{
ecrRefNo = pECRRefNo;
}
public string ECRRefNo
{
get { return ecrRefNo; }
}
private void setACIndicator(string pACIndicator)
{
acIndicator = pACIndicator;
}
public string ACIndicator
{
get { return acIndicator; }
}
public RetrievalResult() { public RetrievalResult() {
} }
@ -306,13 +370,13 @@ namespace n5coredll
this.setStatus(pStatus); this.setStatus(pStatus);
} }
public static string toJsonForRetrieval(string txnId) { public static string toJsonForRetrieval(string txnId, string traceNo) {
if (txnId == null || "".Equals(txnId)) { if (txnId == null) {
Console.WriteLine("txnId is null "); Console.WriteLine("txnId is null ");
return null; return null;
} }
string cardSaleMsg = "{\"EVENT_NAME\":\"RETRIEVAL\",\"TXN_ID\":\"" + txnId + "\"}"; string cardSaleMsg = "{\"EVENT_NAME\":\"RETRIEVAL\",\"TXN_ID\":\"" + txnId + "\",\"PAYMENT_APP_ID\":\"EPS\",\"TRACE_NO\":\"" + traceNo + "\"}";
return cardSaleMsg; return cardSaleMsg;
} }
@ -448,9 +512,6 @@ namespace n5coredll
if (RetrievalResult.ENTRY_MODE.Equals(valueColumn0)) { if (RetrievalResult.ENTRY_MODE.Equals(valueColumn0)) {
retrievalResult.setEntryMode(valueColumn1); retrievalResult.setEntryMode(valueColumn1);
} }
if (RetrievalResult.BATCH_NO.Equals(valueColumn0)) {
retrievalResult.setBatchNo(valueColumn1);
}
if (RetrievalResult.APP.Equals(valueColumn0)) { if (RetrievalResult.APP.Equals(valueColumn0)) {
retrievalResult.setApp(valueColumn1); retrievalResult.setApp(valueColumn1);
} }
@ -460,9 +521,86 @@ namespace n5coredll
if (RetrievalResult.ACQUIRER.Equals(valueColumn0)) { if (RetrievalResult.ACQUIRER.Equals(valueColumn0)) {
retrievalResult.setAcquirer(valueColumn1); retrievalResult.setAcquirer(valueColumn1);
} }
if (RetrievalResult.AC_INDICATOR.Equals(valueColumn0))
{
retrievalResult.setACIndicator(valueColumn1);
}
if (RetrievalResult.ECR_REF_NO.Equals(valueColumn0))
{
retrievalResult.setECRRefNo(valueColumn1);
}
if (RetrievalResult.BANKIN_VALUE_DATE.Equals(valueColumn0))
{
retrievalResult.setBankinValueDate(valueColumn1);
}
if (RetrievalResult.ACCOUNT_NO.Equals(valueColumn0))
{
retrievalResult.setAccountNo(valueColumn1);
}
if (RetrievalResult.BANK_ADDITIONAL_RESPONSE.Equals(valueColumn0))
{
retrievalResult.setBankAdditionalResponse(valueColumn1);
}
} }
return retrievalResult; return retrievalResult;
} }
public static string rebuildRetrievalRespMsg(string retrievalJsonStr)
{
JObject tmp = (JObject)JsonConvert.DeserializeObject(retrievalJsonStr);
StringBuilder sb = new StringBuilder("");
sb.Append("{");
sb.Append("\"EVENT_NAME\":\"" + tmp.GetValue("EVENT_NAME") + "\",");
sb.Append("\"TXN_TYPE\":\"" + tmp.GetValue("TXN_TYPE") + "\",");
sb.Append("\"TXN_ID\":\"" + tmp.GetValue("TXN_ID") + "\",");
sb.Append("\"STATUS\":\"" + tmp.GetValue("STATUS") + "\",");
sb.Append("\"TXN_STATUS\":\"" + tmp.GetValue("TXN_STATUS") + "\",");
sb.Append("\"TXN_AMT\":" + tmp.GetValue("TXN_AMT") + ",");
if (tmp.GetValue("CASHBACK_AMT") != null)
sb.Append("\"CASHBACK_AMT\":" + tmp.GetValue("CASHBACK_AMT") + ",");
if (tmp.GetValue("PAYMENT_TYPE") != null)
sb.Append("\"PAYMENT_TYPE\":\"" + tmp.GetValue("PAYMENT_TYPE") + "\",");
if (tmp.GetValue("LOCAL_CUR") != null)
sb.Append("\"CURRENCY\":\"" + tmp.GetValue("LOCAL_CUR") + "\",");
sb.Append("\"RESP_CODE\":\"" + tmp.GetValue("RESP_CODE") + "\",");
if (tmp.GetValue("RESPONSE_TEXT") != null)
sb.Append("\"RESPONSE_TEXT\":\"" + tmp.GetValue("RESPONSE_TEXT") + "\",");
if (tmp.GetValue("TRACE_NO") != null)
sb.Append("\"TRACE_NO\":\"" + tmp.GetValue("TRACE_NO") + "\",");
if (tmp.GetValue("TXN_DATE") != null)
sb.Append("\"TXN_DATE\":\"" + tmp.GetValue("TXN_DATE") + "\",");
if (tmp.GetValue("TXN_TIME") != null)
sb.Append("\"TXN_TIME\":\"" + tmp.GetValue("TXN_TIME") + "\",");
if (tmp.GetValue("MID") != null)
sb.Append("\"MID\":\"" + tmp.GetValue("MID") + "\",");
if (tmp.GetValue("TID") != null)
sb.Append("\"TID\":\"" + tmp.GetValue("TID") + "\",");
if (tmp.GetValue("PAN") != null)
sb.Append("\"PAN\":\"" + tmp.GetValue("PAN") + "\",");
if (tmp.GetValue("ENTRYMODE") != null)
sb.Append("\"ENTRYMODE\":\"" + tmp.GetValue("PAN") + "\",");
if (tmp.GetValue("AC_INDICATOR") != null)
sb.Append("\"AC_INDICATOR\":\"" + tmp.GetValue("PAN") + "\",");
if (tmp.GetValue("AID") != null)
sb.Append("\"AID\":\"" + tmp.GetValue("AID") + "\",");
if (tmp.GetValue("TC") != null)
sb.Append("\"TC\":\"" + tmp.GetValue("TC") + "\",");
if (tmp.GetValue("APP") != null)
sb.Append("\"APP\":\"" + tmp.GetValue("APP") + "\",");
if (tmp.GetValue("ECR_REF_NO") != null)
sb.Append("\"ECR_REF_NO\":\"" + tmp.GetValue("ECR_REF_NO") + "\",");
if (tmp.GetValue("BANKIN_VALUE_DATE") != null)
sb.Append("\"BANKIN_VALUE_DATE\":\"" + tmp.GetValue("BANKIN_VALUE_DATE") + "\",");
if (tmp.GetValue("ACCOUNT_NO") != null)
sb.Append("\"ACCOUNT_NO\":\"" + tmp.GetValue("ACCOUNT_NO") + "\",");
if (tmp.GetValue("BANK_ADDITIONAL_RESPONSE") != null)
sb.Append("\"BANK_ADDITIONAL_RESPONSE\":\"" + tmp.GetValue("BANK_ADDITIONAL_RESPONSE") + "\"");
sb.Append("}");
return sb.ToString();
}
} }
} }

@ -1,44 +1,42 @@
using System; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Text; using System.Text;
namespace n5coredll namespace n5coredll
{ {
public class SaleResult { public class SaleResult {
private static string EVENT_NAME = "EVENT_NAME";
private static string TXN_ID = "TXN_ID"; private static string TXN_ID = "TXN_ID";
private static string STATUS = "STATUS"; private static string STATUS = "STATUS";
private static string TXN_AMT = "TXN_AMT"; private static string TXN_AMT = "TXN_AMT";
private static string TIPS = "TIPS"; private static string CASHBACK_AMT = "CASHBACK_AMT";
private static string PAYMENT_TYPE = "PAYMENT_TYPE"; private static string PAYMENT_TYPE = "PAYMENT_TYPE";
private static string LOCAL_CUR = "LOCAL_CUR";
private static string RESP_CODE = "RESP_CODE"; private static string RESP_CODE = "RESP_CODE";
private static string LOYALTY_TYPE = "LOYALTY_TYPE"; private static string RESPONSE_TEXT = "RESPONSE_TEXT";
private static string CAMPAIGN_ID = "CAMPAIGN_ID";
private static string TRACE_NO = "TRACE_NO"; private static string TRACE_NO = "TRACE_NO";
private static string TXN_DATE = "TXN_DATE"; private static string TXN_DATE = "TXN_DATE";
private static string TXN_TIME = "TXN_TIME"; 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 MID = "MID";
private static string TID = "TID"; private static string TID = "TID";
private static string PAN = "PAN"; 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 ENTRY_MODE = "ENTRY_MODE";
private static string BATCH_NO = "BATCH_NO"; private static string AC_INDICATOR = "AC_INDICATOR";
private static string AID = "AID";
private static string TC = "TC"; private static string TC = "TC";
private static string APP = "APP"; private static string APP = "APP";
private static string ACQUIRER = "ACQUIRER"; private static string ECR_REF_NO = "ECR_REF_NO";
private static string BATCH_NO = "BATCH_NO";
private static string BANKIN_VALUE_DATE = "BANKIN_VALUE_DATE";
private static string ACCOUNT_NO = "ACCOUNT_NO";
private static string BANK_ADDITIONAL_RESPONSE = "BANK_ADDITIONAL_RESPONSE";
private string ecrRefTxnId; private string ecrRefTxnId;
private string status; private string status;
private decimal txnAmt; private decimal txnAmt;
private decimal cashbackAmt;
private decimal tipAmt; private decimal tipAmt;
private PaymentType paymentType; private PaymentType paymentType;
private string respCode; private string respCode;
@ -64,9 +62,77 @@ namespace n5coredll
private string aid; private string aid;
private string entryMode; private string entryMode;
private string batchNo; private string batchNo;
private string tc; private string tc = "";
private string app; private string app = "";
private string acquirer; private string acquirer = "";
private string eventName = "";
private string responseText = "";
private string acIndicator = "";
private string ecrRefNo = "";
private string bankinValueDate = "";
private string accountNo = "";
private string bankAdditionalResponse="";
private void setBankinValueDate(string pBankinValueDate)
{
bankinValueDate = pBankinValueDate;
}
public string BankinValueDate
{
get { return bankinValueDate; }
}
private void setAccountNo(string pAccountNo)
{
accountNo = pAccountNo;
}
public string AccountNo
{
get { return accountNo; }
}
private void setBankAdditionalResponse(string pBankAdditionalResponse)
{
bankAdditionalResponse = pBankAdditionalResponse;
}
public string BankAdditionalResponse
{
get { return bankAdditionalResponse; }
}
private void setECRRefNo(string pECRRefNo)
{
ecrRefNo = pECRRefNo;
}
public string ECRRefNo
{
get { return ecrRefNo; }
}
private void setACIndicator(string pACIndicator)
{
acIndicator = pACIndicator;
}
public string ACIndicator
{
get { return acIndicator; }
}
private void setEventName(string pEventName)
{
eventName = pEventName;
}
public string EventName
{
get { return eventName; }
}
private void setEcrRefTxnId(string pEcrRefTxnId) { private void setEcrRefTxnId(string pEcrRefTxnId) {
ecrRefTxnId = pEcrRefTxnId; ecrRefTxnId = pEcrRefTxnId;
@ -88,6 +154,14 @@ namespace n5coredll
private void setTxnAmt(decimal pTxnAmt) { private void setTxnAmt(decimal pTxnAmt) {
this.txnAmt = pTxnAmt; this.txnAmt = pTxnAmt;
} }
public decimal CashbackAmt
{
get { return cashbackAmt; }
}
private void setCashbackAmt(decimal pCashbackAmt)
{
this.cashbackAmt = pCashbackAmt;
}
public decimal TipAmt { public decimal TipAmt {
get { return tipAmt; } get { return tipAmt; }
} }
@ -106,6 +180,14 @@ namespace n5coredll
private void setRespCode(string pRespCode) { private void setRespCode(string pRespCode) {
this.respCode = pRespCode; this.respCode = pRespCode;
} }
public string ResponseText
{
get { return responseText; }
}
private void setResponseText(string pResponseText)
{
this.responseText = pResponseText;
}
public LoyaltyType LoyaltyType { public LoyaltyType LoyaltyType {
get { return loyaltyType; } get { return loyaltyType; }
} }
@ -264,10 +346,10 @@ namespace n5coredll
return cardSaleMsg; return cardSaleMsg;
} }
public static string toJsonForSale(string txnId, decimal txnAmt, decimal tipAmt, PaymentApp appId, string qrcValue, string pan, string expDate) public static string toJsonForSale(string txnId, decimal txnAmt, decimal tipAmt, decimal cashbackAmt, string ecrRefNo, String currency, PaymentApp appId, string qrcValue, string pan, string expDate)
{ {
string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TIPS\":" + tipAmt + ",\"TXN_AMT\":" + txnAmt + ",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\",\"QRC_VALUE\":\"" + qrcValue + "\"}"; string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TIPS\":" + tipAmt + ",\"TXN_AMT\":" + txnAmt + ",\"CASHBACK_AMT\":" + cashbackAmt + ",\"ECR_REF_NO\":\"" + ecrRefNo + "\",\"CURRENCY\":\"" + currency + "\",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\",\"QRC_VALUE\":\"" + qrcValue + "\"}";
return cardSaleMsg; return cardSaleMsg;
} }
public static string toJsonForPreauth(string txnId, decimal txnAmt, PaymentApp appId, string pan, string expDate) public static string toJsonForPreauth(string txnId, decimal txnAmt, PaymentApp appId, string pan, string expDate)
@ -342,6 +424,10 @@ namespace n5coredll
valueColumn = column[i].Split(':'); valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim(); valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim(); valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (SaleResult.EVENT_NAME.Equals(valueColumn0))
{
saleResult.setEventName(valueColumn1);
}
if (SaleResult.TXN_ID.Equals(valueColumn0)) { if (SaleResult.TXN_ID.Equals(valueColumn0)) {
saleResult.setEcrRefTxnId(valueColumn1); saleResult.setEcrRefTxnId(valueColumn1);
} }
@ -358,31 +444,32 @@ namespace n5coredll
} }
} }
if (SaleResult.TIPS.Equals(valueColumn0)) { if (SaleResult.CASHBACK_AMT.Equals(valueColumn0))
if (valueColumn1 == null || "".Equals(valueColumn1)) { {
saleResult.setTipAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint)); if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setCashbackAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
} }
else { else
saleResult.setTipAmt(decimal.Parse(valueColumn1, System.Globalization.NumberStyles.AllowDecimalPoint)); {
saleResult.setCashbackAmt(decimal.Parse(valueColumn1));
} }
} }
if (SaleResult.PAYMENT_TYPE.Equals(valueColumn0)) { if (SaleResult.PAYMENT_TYPE.Equals(valueColumn0)) {
saleResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1)); saleResult.setPaymentType(ObjectUtil.getPaymentType(valueColumn1));
} }
if (SaleResult.LOCAL_CUR.Equals(valueColumn0))
{
saleResult.setLocalCur(valueColumn1);
}
if (SaleResult.RESP_CODE.Equals(valueColumn0)) { if (SaleResult.RESP_CODE.Equals(valueColumn0)) {
saleResult.setRespCode(valueColumn1); saleResult.setRespCode(valueColumn1);
} }
if (SaleResult.RESPONSE_TEXT.Equals(valueColumn0))
if (SaleResult.LOYALTY_TYPE.Equals(valueColumn0)) { {
saleResult.setLoyaltyType(ObjectUtil.getLoyaltyType(valueColumn1)); saleResult.setResponseText(valueColumn1);
}
if (SaleResult.CAMPAIGN_ID.Equals(valueColumn0)) {
saleResult.setCampaignId(valueColumn1);
} }
if (SaleResult.TRACE_NO.Equals(valueColumn0)) { if (SaleResult.TRACE_NO.Equals(valueColumn0)) {
saleResult.setTraceNo(valueColumn1); saleResult.setTraceNo(valueColumn1);
} }
@ -392,70 +479,109 @@ namespace n5coredll
if (SaleResult.TXN_TIME.Equals(valueColumn0)) { if (SaleResult.TXN_TIME.Equals(valueColumn0)) {
saleResult.setTxnTime(valueColumn1); saleResult.setTxnTime(valueColumn1);
} }
if (SaleResult.MID.Equals(valueColumn0))
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); saleResult.setMid(valueColumn1);
} }
if (SaleResult.TID.Equals(valueColumn0)) { if (SaleResult.TID.Equals(valueColumn0))
{
saleResult.setTid(valueColumn1); saleResult.setTid(valueColumn1);
} }
if (SaleResult.PAN.Equals(valueColumn0)) { if (SaleResult.PAN.Equals(valueColumn0)) {
saleResult.setPan(valueColumn1); saleResult.setPan(valueColumn1);
} }
if (SaleResult.EXPIRY_DATE.Equals(valueColumn0)) {
saleResult.setExpiryDate(valueColumn1); if (SaleResult.ENTRY_MODE.Equals(valueColumn0))
{
saleResult.setEntryMode(valueColumn1);
} }
if (SaleResult.LOYALTY_REF.Equals(valueColumn0)) { if (SaleResult.AC_INDICATOR.Equals(valueColumn0))
saleResult.setLoyaltyRef(valueColumn1); {
saleResult.setACIndicator(valueColumn1);
} }
if (SaleResult.AID.Equals(valueColumn0)) { if (SaleResult.AID.Equals(valueColumn0)) {
saleResult.setAid(valueColumn1); saleResult.setAid(valueColumn1);
} }
if (SaleResult.ENTRY_MODE.Equals(valueColumn0)) { if (SaleResult.TC.Equals(valueColumn0))
saleResult.setEntryMode(valueColumn1); {
} saleResult.setTc(valueColumn1);
if (SaleResult.BATCH_NO.Equals(valueColumn0)) {
saleResult.setBatchNo(valueColumn1);
} }
if (SaleResult.APP.Equals(valueColumn0)) { if (SaleResult.APP.Equals(valueColumn0)) {
saleResult.setApp(valueColumn1); saleResult.setApp(valueColumn1);
} }
if (SaleResult.TC.Equals(valueColumn0)) { if (SaleResult.ECR_REF_NO.Equals(valueColumn0))
saleResult.setTc(valueColumn1); {
saleResult.setECRRefNo(valueColumn1);
}
if (SaleResult.BANKIN_VALUE_DATE.Equals(valueColumn0))
{
saleResult.setBankinValueDate(valueColumn1);
} }
if (SaleResult.ACQUIRER.Equals(valueColumn0)) { if (SaleResult.ACCOUNT_NO.Equals(valueColumn0))
saleResult.setAcquirer(valueColumn1); {
saleResult.setAccountNo(valueColumn1);
}
if (SaleResult.BANK_ADDITIONAL_RESPONSE.Equals(valueColumn0))
{
saleResult.setECRRefNo(valueColumn1);
} }
} }
return saleResult; return saleResult;
} }
public static string rebuildSaleRespMsg(string saleResultJsonStr)
{
//SaleResult tmp = toSaleResultFromJsonMsg(saleResultJsonStr);
JObject tmp = (JObject)JsonConvert.DeserializeObject(saleResultJsonStr);
StringBuilder sb = new StringBuilder("");
sb.Append("{");
sb.Append("\"EVENT_NAME\":\"" + tmp.GetValue("EVENT_NAME") +"\",");
sb.Append("\"TXN_ID\":\"" + tmp.GetValue("TXN_ID") + "\",");
sb.Append("\"STATUS\":\"" + tmp.GetValue("STATUS") + "\",");
sb.Append("\"TXN_AMT\":" + tmp.GetValue("TXN_AMT") + ",");
if (tmp.GetValue("CASHBACK_AMT") != null)
sb.Append("\"CASHBACK_AMT\":" + tmp.GetValue("CASHBACK_AMT") + ",");
if (tmp.GetValue("PAYMENT_TYPE") != null)
sb.Append("\"PAYMENT_TYPE\":\"" + tmp.GetValue("PAYMENT_TYPE") + "\",");
if (tmp.GetValue("LOCAL_CUR") != null)
sb.Append("\"CURRENCY\":\"" + tmp.GetValue("LOCAL_CUR") + "\",");
sb.Append("\"RESP_CODE\":\"" + tmp.GetValue("RESP_CODE") + "\",");
if (tmp.GetValue("RESPONSE_TEXT") != null)
sb.Append("\"RESPONSE_TEXT\":\"" + tmp.GetValue("RESPONSE_TEXT") + "\",");
if (tmp.GetValue("TRACE_NO") != null)
sb.Append("\"TRACE_NO\":\"" + tmp.GetValue("TRACE_NO") + "\",");
if (tmp.GetValue("TXN_DATE") != null)
sb.Append("\"TXN_DATE\":\"" + tmp.GetValue("TXN_DATE") + "\",");
if (tmp.GetValue("TXN_TIME") != null)
sb.Append("\"TXN_TIME\":\"" + tmp.GetValue("TXN_TIME") + "\",");
if (tmp.GetValue("MID") != null)
sb.Append("\"MID\":\"" + tmp.GetValue("MID") + "\",");
if (tmp.GetValue("TID") != null)
sb.Append("\"TID\":\"" + tmp.GetValue("TID") + "\",");
if (tmp.GetValue("PAN") != null)
sb.Append("\"PAN\":\"" + tmp.GetValue("PAN") + "\",");
if (tmp.GetValue("ENTRYMODE") != null)
sb.Append("\"ENTRYMODE\":\"" + tmp.GetValue("PAN") + "\",");
if (tmp.GetValue("AC_INDICATOR") != null)
sb.Append("\"AC_INDICATOR\":\"" + tmp.GetValue("PAN") + "\",");
if (tmp.GetValue("AID") != null)
sb.Append("\"AID\":\"" + tmp.GetValue("AID") + "\",");
if (tmp.GetValue("TC") != null)
sb.Append("\"TC\":\"" + tmp.GetValue("TC") + "\",");
if (tmp.GetValue("APP") != null)
sb.Append("\"APP\":\"" + tmp.GetValue("APP") + "\",");
if (tmp.GetValue("ECR_REF_NO") != null)
sb.Append("\"ECR_REF_NO\":\"" + tmp.GetValue("ECR_REF_NO") + "\",");
if (tmp.GetValue("BANKIN_VALUE_DATE") != null)
sb.Append("\"BANKIN_VALUE_DATE\":\"" + tmp.GetValue("BANKIN_VALUE_DATE") + "\",");
if (tmp.GetValue("ACCOUNT_NO") != null)
sb.Append("\"ACCOUNT_NO\":\"" + tmp.GetValue("ACCOUNT_NO") + "\",");
if (tmp.GetValue("BANK_ADDITIONAL_RESPONSE") != null)
sb.Append("\"BANK_ADDITIONAL_RESPONSE\":\"" + tmp.GetValue("BANK_ADDITIONAL_RESPONSE") + "\"");
sb.Append("}");
return sb.ToString();
}
} }
} }

@ -0,0 +1,482 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Text;
namespace n5coredll
{
public class SettleResult {
private static string EVENT_NAME = "EVENT_NAME";
private static string STATUS = "STATUS";
private static string RESP_CODE = "RESP_CODE";
private static string RESPONSE_TEXT = "RESPONSE_TEXT";
private static string TXN_DATE = "TXN_DATE";
private static string TXN_TIME = "TXN_TIME";
private static string MID = "MID";
private static string TID = "TID";
private static string HOST_COUNT = "HOST_COUNT";
private static string HOST_AMT = "HOST_AMT";
private static string BATCH = "BATCH";
private static string BANKIN_VALUE_DATE = "BANKIN_VALUE_DATE";
private static string EPS_TOTAL_COUNT = "EPS_TOTAL_COUNT";
private static string EPS_TOTAL_AMT = "EPS_TOTAL_AMT";
private static string CASHBACK_COUNT = "CASHBACK_COUNT";
private static string CASHBACK_AMT = "CASHBACK_AMT";
private static string PURCHASE_COUNT = "PURCHASE_COUNT";
private static string PURCHASE_AMT = "PURCHASE_AMT";
private static string TRACE_NO = "TRACE_NO";
private string eventName = "";
private string status;
private string respCode;
private string responseText = "";
private string txnDate;
private string txnTime;
private string mid;
private string tid;
private decimal hostCount;
private decimal hostAmt;
private string bankinValueDate = "";
private decimal eptTotalCount;
private decimal eptTotalAmt;
private decimal cashbackCount;
private decimal cashbackAmt;
private decimal purchaseCount;
private decimal purchaseAmt;
private string traceNo;
private void setEventName(string pEventName)
{
eventName = pEventName;
}
public string EventName
{
get { return eventName; }
}
public string Status {
get { return status; }
}
private void setStatus(string pStatus) {
this.status = pStatus;
}
public string RespCode
{
get { return respCode; }
}
private void setRespCode(string pRespCode)
{
this.respCode = pRespCode;
}
public string ResponseText
{
get { return responseText; }
}
private void setResponseText(string pResponseText)
{
this.responseText = pResponseText;
}
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 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 decimal HostCount
{
get { return hostCount; }
}
private void setHostCount(decimal pHostCount)
{
this.hostCount = pHostCount;
}
public decimal HostAmt
{
get { return hostAmt; }
}
private void setHostAmt(decimal pHostAmt)
{
this.hostAmt = pHostAmt;
}
private void setBankinValueDate(string pBankinValueDate)
{
bankinValueDate = pBankinValueDate;
}
public string BankinValueDate
{
get { return bankinValueDate; }
}
public decimal EPSTotalCount
{
get { return eptTotalCount; }
}
private void setEPSTotalCount(decimal pEptTotalCount)
{
this.eptTotalCount = pEptTotalCount;
}
public decimal EPSTotalAmt
{
get { return eptTotalAmt; }
}
private void setEPSTotalAmt(decimal pEptTotalAmt)
{
this.eptTotalAmt = pEptTotalAmt;
}
public decimal CashbackCount
{
get { return cashbackCount; }
}
private void setCashbackCount(decimal pCashbackCount)
{
this.cashbackCount = pCashbackCount;
}
public decimal CashbackAmt
{
get { return cashbackAmt; }
}
private void setCashbackAmt(decimal pCashbackAmt)
{
this.cashbackAmt = pCashbackAmt;
}
public decimal PurchaseCount
{
get { return purchaseCount; }
}
private void setPurchaseCount(decimal pPurchaseCount)
{
this.purchaseCount = pPurchaseCount;
}
public decimal PurchaseAmt
{
get { return purchaseAmt; }
}
private void setPurchaseAmt(decimal pPurchaseAmt)
{
this.purchaseAmt = pPurchaseAmt;
}
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, decimal tipAmt, decimal cashbackAmt, string ecrRefNo, String currency, PaymentApp appId, string qrcValue, string pan, string expDate)
{
string cardSaleMsg = "{\"EVENT_NAME\":\"SALE\",\"PAYMENT_APP_ID\":\"" + ObjectUtil.getPaymentAppValue(appId) + "\",\"TXN_ID\":\"" + txnId + "\",\"TIPS\":" + tipAmt + ",\"TXN_AMT\":" + txnAmt + ",\"CASHBACK_AMT\":" + cashbackAmt + ",\"ECR_REF_NO\":\"" + ecrRefNo + "\",\"CURRENCY\":\"" + currency + "\",\"PAN\":\"" + pan + "\",\"EXPIRY_DATE\":\"" + expDate + "\",\"QRC_VALUE\":\"" + qrcValue + "\"}";
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 SettleResult() {
}
public SettleResult(string pStatus) {
this.setStatus(pStatus);
}
public static SettleResult toSettleResultFromJsonMsg(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;
SettleResult saleResult = new SettleResult();
for (int i = 0; i < column.Length; i++) {
valueColumn = column[i].Split(':');
valueColumn0 = valueColumn[0].Replace('"', ' ').Trim();
valueColumn1 = valueColumn[1].Replace('"', ' ').Trim();
if (SettleResult.EVENT_NAME.Equals(valueColumn0))
{
saleResult.setEventName(valueColumn1);
}
if (SettleResult.STATUS.Equals(valueColumn0)) {
saleResult.setStatus(valueColumn1);
}
if (SettleResult.RESP_CODE.Equals(valueColumn0))
{
saleResult.setRespCode(valueColumn1);
}
if (SettleResult.RESPONSE_TEXT.Equals(valueColumn0))
{
saleResult.setResponseText(valueColumn1);
}
if (SettleResult.TXN_DATE.Equals(valueColumn0))
{
saleResult.setTxnDate(valueColumn1);
}
if (SettleResult.TXN_TIME.Equals(valueColumn0))
{
saleResult.setTxnTime(valueColumn1);
}
if (SettleResult.MID.Equals(valueColumn0))
{
saleResult.setMid(valueColumn1);
}
if (SettleResult.TID.Equals(valueColumn0))
{
saleResult.setTid(valueColumn1);
}
if (SettleResult.HOST_COUNT.Equals(valueColumn0)) {
if (valueColumn1 == null || "".Equals(valueColumn1)) {
saleResult.setHostCount(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else {
saleResult.setHostCount(decimal.Parse(valueColumn1));
}
}
if (SettleResult.HOST_AMT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setHostAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setHostAmt(decimal.Parse(valueColumn1));
}
}
if (SettleResult.BANKIN_VALUE_DATE.Equals(valueColumn0))
{
saleResult.setBankinValueDate(valueColumn1);
}
if (SettleResult.EPS_TOTAL_COUNT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setEPSTotalCount(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setEPSTotalCount(decimal.Parse(valueColumn1));
}
}
if (SettleResult.EPS_TOTAL_AMT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setEPSTotalAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setEPSTotalAmt(decimal.Parse(valueColumn1));
}
}
if (SettleResult.CASHBACK_COUNT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setCashbackCount(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setCashbackCount(decimal.Parse(valueColumn1));
}
}
if (SettleResult.CASHBACK_AMT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setCashbackAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setCashbackAmt(decimal.Parse(valueColumn1));
}
}
if (SettleResult.PURCHASE_COUNT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setPurchaseCount(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setPurchaseCount(decimal.Parse(valueColumn1));
}
}
if (SettleResult.PURCHASE_AMT.Equals(valueColumn0))
{
if (valueColumn1 == null || "".Equals(valueColumn1))
{
saleResult.setPurchaseAmt(decimal.Parse("0.00", System.Globalization.NumberStyles.AllowDecimalPoint));
}
else
{
saleResult.setPurchaseAmt(decimal.Parse(valueColumn1));
}
}
if (SettleResult.TRACE_NO.Equals(valueColumn0)) {
saleResult.setTraceNo(valueColumn1);
}
}
return saleResult;
}
public static string rebuildSettleRespMsg(string saleResultJsonStr)
{
//saleResultJsonStr = "{\"EVENT_NAME\":\"SETTLE_RESP\",\"MID\":\"000000888\",\"STATUS\":\"00\",\"TRACE_NO\":\"000485\",\"HOST_AMT\":2030.1,\"HOST_COUNT\":13,\"BATCH\":\"[{\\\"BANKIN_VALUE_DATE\\\":\\\"1117\\\",\\\"EPS_TOTAL_COUNT\\\":\\\"7\\\",\\\"EPS_TOTAL_AMT\\\":\\\"1118.10\\\"},{\\\"BANKIN_VALUE_DATE\\\":\\\"1118\\\",\\\"EPS_TOTAL_COUNT\\\":\\\"2\\\",\\\"EPS_TOTAL_AMT\\\":\\\"303.00\\\"},{\\\"BANKIN_VALUE_DATE\\\":\\\"1119\\\",\\\"EPS_TOTAL_COUNT\\\":\\\"4\\\",\\\"EPS_TOTAL_AMT\\\":\\\"609.00\\\"}]\",\"TID\":\"123372\",\"TXN_DATE\":\"091217\"}";
//saleResultJsonStr = "{\"EVENT_NAME\":\"SETTLE_RESP\",\"MID\":\"000000888\",\"STATUS\":\"00\",\"TRACE_NO\":\"000485\",\"HOST_AMT\":2030.1,\"HOST_COUNT\":13,\"TID\":\"123372\",\"TXN_DATE\":\"091217\"}";
StringBuilder sb = new StringBuilder("");
JObject jsonObj = null;
try
{
jsonObj = JObject.Parse(saleResultJsonStr);
sb.Append("{");
sb.Append("\"EVENT_NAME\":\"" + jsonObj.GetValue("EVENT_NAME") + "\",");
sb.Append("\"STATUS\":\"" + jsonObj.GetValue("STATUS") + "\",");
sb.Append("\"RESP_CODE\":\"" + jsonObj.GetValue("RESP_CODE") + "\",");
sb.Append("\"RESPONSE_TEXT\":\"" + jsonObj.GetValue("RESPONSE_TEXT") + "\",");
sb.Append("\"TXN_DATE\":\"" + jsonObj.GetValue("TXN_DATE") + "\",");
sb.Append("\"TXN_TIME\":\"" + jsonObj.GetValue("TXN_TIME") + "\",");
sb.Append("\"MID\":\"" + jsonObj.GetValue("MID") + "\",");
sb.Append("\"TID\":\"" + jsonObj.GetValue("TID") + "\",");
sb.Append("\"HOST_COUNT\":" + jsonObj.GetValue("HOST_COUNT") + ",");
sb.Append("\"HOST_AMT\":" + jsonObj.GetValue("HOST_AMT") + ",");
String batchJson = (String)jsonObj.GetValue("BATCH");
if (batchJson != null)
{
sb.Append("\"TRACE_NO\":\"" + jsonObj.GetValue("TRACE_NO") + "\",");
sb.Append("\"BATCH\":\"[");
JArray jlist = JArray.Parse(batchJson);
for (int i = 0; i < jlist.Count; ++i) //遍历JArray
{
JObject tempo = JObject.Parse(jlist[i].ToString());
sb.Append("{");
sb.Append("\\\"BANKIN_VALUE_DATE\\\":\\\"" + tempo.GetValue("BANKIN_VALUE_DATE") + "\\\",");
sb.Append("\\\"EPS_TOTAL_COUNT\\\":\\\"" + tempo.GetValue("EPS_TOTAL_COUNT") + "\\\",");
if (tempo.GetValue("CASHBACK_COUNT") != null && tempo.GetValue("PURCHASE_COUNT") != null)
{
sb.Append("\\\"EPS_TOTAL_AMT\\\":\\\"" + tempo.GetValue("EPS_TOTAL_AMT") + "\\\",");
sb.Append("\\\"CASHBACK_COUNT\\\":\\\"" + tempo.GetValue("CASHBACK_COUNT") + "\\\",");
sb.Append("\\\"CASHBACK_AMT\\\":\\\"" + tempo.GetValue("CASHBACK_AMT") + "\\\",");
sb.Append("\\\"PURCHASE_COUNT\\\":\\\"" + tempo.GetValue("PURCHASE_COUNT") + "\\\"");
}
else
{
sb.Append("\\\"EPS_TOTAL_AMT\\\":\\\"" + tempo.GetValue("EPS_TOTAL_AMT") + "\\\"");
}
if (i != jlist.Count - 1)
{
sb.Append("},");
}
else {
sb.Append("}]\"");
}
}
}
else
{
sb.Append("\"TRACE_NO\":\"" + jsonObj.GetValue("TRACE_NO") +"\"");
}
sb.Append("}");
}
catch (Exception ex) { }
return sb.ToString();
}
}
}

@ -41,6 +41,9 @@
<AssemblyOriginatorKeyFile>n5codedll.snk</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>n5codedll.snk</AssemblyOriginatorKeyFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
@ -49,6 +52,7 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="LogUtil.cs" />
<Compile Include="LoyaltyType.cs" /> <Compile Include="LoyaltyType.cs" />
<Compile Include="N5Core.cs" /> <Compile Include="N5Core.cs" />
<Compile Include="N5PropertyOper.cs" /> <Compile Include="N5PropertyOper.cs" />
@ -64,6 +68,7 @@
<Compile Include="RefundResult.cs" /> <Compile Include="RefundResult.cs" />
<Compile Include="RequestResult.cs" /> <Compile Include="RequestResult.cs" />
<Compile Include="RetrievalResult.cs" /> <Compile Include="RetrievalResult.cs" />
<Compile Include="SettleResult.cs" />
<Compile Include="SaleResult.cs" /> <Compile Include="SaleResult.cs" />
<Compile Include="TxnStatus.cs" /> <Compile Include="TxnStatus.cs" />
<Compile Include="TxnType.cs" /> <Compile Include="TxnType.cs" />
@ -72,6 +77,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="n5codedll.snk" /> <None Include="n5codedll.snk" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net40" />
</packages>
Loading…
Cancel
Save