Commit 7d84f33a by 陶然

init

parent d655ed6d
...@@ -67,7 +67,20 @@ namespace Com.Bocom.OpenApi ...@@ -67,7 +67,20 @@ namespace Com.Bocom.OpenApi
/// </summary> /// </summary>
internal static string MPNG210001RequestV1 = "/api/pmssMpng/MPNG210001/v1"; internal static string MPNG210001RequestV1 = "/api/pmssMpng/MPNG210001/v1";
/// <summary>
/// 2.10 查询订单@MPNG-MAPIMPNG020702
/// </summary>
internal static string MPNG020702RequestV1 = "/api/pmssMpng/MPNG020702/v1"; internal static string MPNG020702RequestV1 = "/api/pmssMpng/MPNG020702/v1";
/// <summary>
/// 2.7 交易关闭@MPNG-CIPPMPNG020705
/// </summary>
internal static string MPNG020705RequestV1 = "/api/pmssMpng/MPNG020705/v1";
/// <summary>
/// 2.8 撤销订单@MPNG-CIPPMPNG020706
/// </summary>
internal static string MPNG020706RequestV1 = "/api/pmssMpng/MPNG020706/v1";
} }
} }
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>..\..\k5-njzj\appextend\</OutputPath> <OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
...@@ -82,6 +82,8 @@ ...@@ -82,6 +82,8 @@
<Compile Include="Sdk\request\IntegralExchangeCheckRequestV1.cs" /> <Compile Include="Sdk\request\IntegralExchangeCheckRequestV1.cs" />
<Compile Include="Sdk\request\IntegralExchangeCreateUrlRequestV1.cs" /> <Compile Include="Sdk\request\IntegralExchangeCreateUrlRequestV1.cs" />
<Compile Include="Sdk\request\MPNG020702RequestV1.cs" /> <Compile Include="Sdk\request\MPNG020702RequestV1.cs" />
<Compile Include="Sdk\request\MPNG020705RequestV1.cs" />
<Compile Include="Sdk\request\MPNG020706RequestV1.cs" />
<Compile Include="Sdk\request\MPNG210001RequestV1.cs" /> <Compile Include="Sdk\request\MPNG210001RequestV1.cs" />
<Compile Include="Sdk\request\QueryContractOrderRequestV2.cs" /> <Compile Include="Sdk\request\QueryContractOrderRequestV2.cs" />
<Compile Include="Sdk\request\ScfCreateUrlRequestV1.cs" /> <Compile Include="Sdk\request\ScfCreateUrlRequestV1.cs" />
...@@ -96,6 +98,8 @@ ...@@ -96,6 +98,8 @@
<Compile Include="Sdk\response\IntegralExchangeCreateUrlResponseV1.cs" /> <Compile Include="Sdk\response\IntegralExchangeCreateUrlResponseV1.cs" />
<Compile Include="Sdk\response\IntegralExchangeNotifyResponseV1.cs" /> <Compile Include="Sdk\response\IntegralExchangeNotifyResponseV1.cs" />
<Compile Include="Sdk\response\MPNG020702ResponseV1.cs" /> <Compile Include="Sdk\response\MPNG020702ResponseV1.cs" />
<Compile Include="Sdk\response\MPNG020705ResponseV1.cs" />
<Compile Include="Sdk\response\MPNG020706ResponseV1.cs" />
<Compile Include="Sdk\response\MPNG210001ResponseV1.cs" /> <Compile Include="Sdk\response\MPNG210001ResponseV1.cs" />
<Compile Include="Sdk\response\QueryContractOrderResponseV2.cs" /> <Compile Include="Sdk\response\QueryContractOrderResponseV2.cs" />
<Compile Include="Sdk\response\ScfCreateUrlResponseV1.cs" /> <Compile Include="Sdk\response\ScfCreateUrlResponseV1.cs" />
......
...@@ -315,7 +315,7 @@ namespace Com.Bocom.OpenApi ...@@ -315,7 +315,7 @@ namespace Com.Bocom.OpenApi
throw new Exception("only support json format, current format is not supported. format: " + format); throw new Exception("only support json format, current format is not supported. format: " + format);
} }
private BocomResponse ParseJsonWithBocomSign<T>(BocomRequest<T> request, string respStr, string encryptType, public BocomResponse ParseJsonWithBocomSign<T>(BocomRequest<T> request, string respStr, string encryptType,
string encryptKey) where T : BocomResponse string encryptKey) where T : BocomResponse
{ {
if (request is BocomDownloadRequest<T> || request is BocomDownloadEncryptRequest<T>) if (request is BocomDownloadRequest<T> || request is BocomDownloadEncryptRequest<T>)
......
...@@ -7,6 +7,9 @@ using System.Threading.Tasks; ...@@ -7,6 +7,9 @@ using System.Threading.Tasks;
namespace Com.Bocom.OpenApi namespace Com.Bocom.OpenApi
{ {
/// <summary>
/// 2.10 查询订单@MPNG-MAPIMPNG020702
/// </summary>
public class MPNG020702RequestV1 : BocomRequest<MPNG020702ResponseV1> public class MPNG020702RequestV1 : BocomRequest<MPNG020702ResponseV1>
{ {
public override Type GetResponseClass() public override Type GetResponseClass()
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace Com.Bocom.OpenApi
{
/// <summary>
/// 2.7 交易关闭@MPNG-CIPPMPNG020705
/// </summary>
public class MPNG020705RequestV1 : BocomRequest<MPNG020705ResponseV1>
{
public override Type GetResponseClass()
{
return typeof(MPNG020705ResponseV1);
}
public override bool IsNeedEncrypt()
{
return false;
}
public override string GetMethod()
{
return "POST";
}
public override Type GetBizContentClass()
{
return typeof(MPNG020705RequestV1Biz);
}
[DataContract]
public class MPNG020705RequestV1Biz : BizContent
{
/// <summary>
/// "req_head" </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("req_head") private ReqHead reqHead;
[DataMember]
public ReqHead req_head { get; set; }
[DataMember]
public ReqBody req_body { get; set; }
public class ReqHead
{
/// <summary>
/// 交易时间 yyyymmddhhmmss </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("trans_time") private String transTime;
//internal string transTime;
public string trans_time { get; set; }
/// <summary>
/// 版本信息 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("version") private String version;
public string version { get; set; }
}
public class ReqBody
{
/// <summary>
/// 商户侧原交易日期 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("mer_trade_date") private String merTradeDate;
//internal string merTradeDate;
public string mer_trade_date { get; set; }
/// <summary>
/// 服务商编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("partner_id") private String partnerId;
//internal string partnerId;
public string partner_id { get; set; }
/// <summary>
/// 支付交易商户交易编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("pay_mer_tran_no") private String payMerTranNo;
//internal string payMerTranNo;
public string pay_mer_tran_no { get; set; }
/// <summary>
/// 商户编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("mer_ptc_id") private String merPtcId;
//internal string merPtcId;
public string mer_ptc_id { get; set; }
/// <summary>
/// 商户交易编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("close_mer_tran_no") private String closeMerTranNo;
//internal string closeMerTranNo;
public string close_mer_tran_no { get; set; }
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using static Com.Bocom.OpenApi.MPNG020702RequestV1;
using static Com.Bocom.OpenApi.MPNG020705RequestV1;
namespace Com.Bocom.OpenApi
{
/// <summary>
/// 2.8 撤销订单@MPNG-CIPPMPNG020706
/// </summary>
public class MPNG020706RequestV1 : BocomRequest<MPNG020706ResponseV1>
{
public override Type GetResponseClass()
{
return typeof(MPNG020706ResponseV1);
}
public override bool IsNeedEncrypt()
{
return false;
}
public override string GetMethod()
{
return "POST";
}
public override Type GetBizContentClass()
{
return typeof(MPNG020706RequestV1Biz);
}
[DataContract]
public class MPNG020706RequestV1Biz : BizContent
{
/// <summary>
/// "req_head" </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("req_head") private ReqHead reqHead;
//internal ReqHead reqHead;
[DataMember]
public ReqHead req_head { get; set; }
public class ReqHead
{
/// <summary>
/// 交易时间 yyyymmddhhmmss </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("trans_time") private String transTime;
//internal string transTime;
public string trans_time { get; set; }
/// <summary>
/// 终端版本信息 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("version") private String version;
//internal string version;
public string version { get; set; }
}
//* "req_body"
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("req_body") private ReqBody reqBody;
[DataMember]
public ReqBody req_body { get; set; }
public class ReqBody
{
/// <summary>
/// 商户交易编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("cancel_mer_tran_no") private String cancelMerTranNo;
//internal string cancelMerTranNo;
public string cancel_mer_tran_no { get; set; }
/// <summary>
/// 商户侧原交易日期 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotatio ns will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("mer_trade_date") private String merTradeDate;
//internal string merTradeDate;
public string mer_trade_date { get; set; }
/// <summary>
/// 服务商编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("partner_id") private String partnerId;
//internal string partnerId;
public string partner_id { get; set; }
/// <summary>
/// 商户支付交易编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("pay_mer_tran_no") private String payMerTranNo;
//internal string payMerTranNo;
public string pay_mer_tran_no { get; set; }
/// <summary>
/// 交易金额,与原交易金额一致 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("refund_amount") private String refundAmount;
//internal string refundAmount;
public string refund_amount { get; set; }
/// <summary>
/// 商户编号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("mer_ptc_id") private String merPtcId;
//internal string merPtcId;
public string mer_ptc_id { get; set; }
/// <summary>
/// 订单号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("sys_order_no") private String sysOrderNo;
//internal string sysOrderNo;
public string sys_order_no { get; set; }
}
}
}
}
...@@ -7,6 +7,9 @@ using System.Threading.Tasks; ...@@ -7,6 +7,9 @@ using System.Threading.Tasks;
namespace Com.Bocom.OpenApi namespace Com.Bocom.OpenApi
{ {
/// <summary>
/// 2.4 主扫聚合码接口@MPNG-CIPPMPNG210001
/// </summary>
public class MPNG210001RequestV1 : BocomRequest<MPNG210001ResponseV1> public class MPNG210001RequestV1 : BocomRequest<MPNG210001ResponseV1>
{ {
......
...@@ -6,6 +6,9 @@ using System.Threading.Tasks; ...@@ -6,6 +6,9 @@ using System.Threading.Tasks;
namespace Com.Bocom.OpenApi namespace Com.Bocom.OpenApi
{ {
/// <summary>
/// 2.10 查询订单@MPNG-MAPIMPNG020702
/// </summary>
public class MPNG020702ResponseV1 : BocomResponse public class MPNG020702ResponseV1 : BocomResponse
{ {
/// <summary> /// <summary>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Com.Bocom.OpenApi
{
/// <summary>
/// 2.7 交易关闭@MPNG-CIPPMPNG020705
/// </summary>
public class MPNG020705ResponseV1: BocomResponse
{
public RspBody rsp_body { get; set; }
public RspHead rsp_head { get; set; }
public class RspHead
{
/// <summary>
/// 交易标识 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("trans_code") private String transCode;
//internal string transCode;
public string trans_code { get; set; }
/// <summary>
/// 返回码 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_code") private String responseCode;
//internal string responseCode;
public string response_code { get; set; }
/// <summary>
/// 交易状态 P-处理中 F-失败 S-成功 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_status") private String responseStatus;
//internal string responseStatus;
public string response_status { get; set; }
/// <summary>
/// 响应时间 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_time") private String responseTime;
//internal string responseTime;
public string response_time { get; set; }
/// <summary>
/// 返回码描述 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_msg") private String responseMsg;
//internal string responseMsg;
public string response_msg { get; set; }
}
public class RspBody
{
/// <summary>
/// 订单号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("close_mer_tran_no") private String closeMerTranNo;
//internal string closeMerTranNo;
public string close_mer_tran_no { get; set; }
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Com.Bocom.OpenApi
{
/// <summary>
/// 2.8 撤销订单@MPNG-CIPPMPNG020706
/// </summary>
public class MPNG020706ResponseV1 : BocomResponse
{
public RspBody rsp_body { get; set; }
public RspHead rsp_head { get; set; }
public class RspBody
{
/// <summary>
/// 订单号 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("cancel_mer_tran_no") private String cancelMerTranNo;
//internal string cancelMerTranNo;
public string cancel_mer_tran_no { get; set; }
}
public class RspHead
{
/// <summary>
/// 交易标识 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("trans_code") private String transCode;
//internal string transCode;
public string trans_code { get; set; }
/// <summary>
/// 返回码 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_code") private String responseCode;
//internal string responseCode;
public string response_code { get; set; }
/// <summary>
/// 交易状态 P-处理中 F-失败 S-成功 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_status") private String responseStatus;
//internal string responseStatus;
public string response_status { get; set; }
/// <summary>
/// 响应时间 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_time") private String responseTime;
//internal string responseTime;
public string response_time { get; set; }
/// <summary>
/// 返回码描述 </summary>
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @JsonProperty("response_msg") private String responseMsg;
//internal string responseMsg;
public string response_msg { get; set; }
}
}
}
...@@ -6,6 +6,9 @@ using System.Threading.Tasks; ...@@ -6,6 +6,9 @@ using System.Threading.Tasks;
namespace Com.Bocom.OpenApi namespace Com.Bocom.OpenApi
{ {
/// <summary>
/// 2.4 主扫聚合码接口@MPNG-CIPPMPNG210001
/// </summary>
public class MPNG210001ResponseV1 : BocomResponse public class MPNG210001ResponseV1 : BocomResponse
{ {
/// <summary> /// <summary>
......
using Com.Bocom.OpenApi; using Com.Bocom.OpenApi;
using Kivii;
using Kivii.DataAnnotations; using Kivii.DataAnnotations;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -599,4 +600,68 @@ namespace Com.Bocom.OpenApi ...@@ -599,4 +600,68 @@ namespace Com.Bocom.OpenApi
} }
} }
[Alias("BCOM_WriteOffResultNotifys")]
public class WriteOffResultNotify:EntityWithMetadata
{
public WriteOffBizContent biz_content { get; set; }
[StringLength(2000)]
public string encrypt_key { get; set; }
[StringLength(2000)]
public string msg_id { get; set; }
[StringLength(2000)]
public string timestamp { get; set; }
[StringLength(2000)]
public string sign { get; set; }
//public Dictionary<string, string> Metadata { get; set; }
}
public class WriteOffBizContent
{
public string transcode { get; set; }
/// <summary>
///
/// </summary>
public string term_trans_time { get; set; }
/// <summary>
///
/// </summary>
public string requester_type { get; set; }
/// <summary>
///
/// </summary>
public string trace_no { get; set; }
/// <summary>
///
/// </summary>
public string version { get; set; }
/// <summary>
///
/// </summary>
public string mer_ptc_id { get; set; }
/// <summary>
///
/// </summary>
public string mobile_no { get; set; }
/// <summary>
///
/// </summary>
public string cert_type { get; set; }
/// <summary>
///
/// </summary>
public string cert_no { get; set; }
/// <summary>
///
/// </summary>
public string cus_name { get; set; }
/// <summary>
///
/// </summary>
public string reserved { get; set; }
/// <summary>
///
/// </summary>
public string communication_url { get; set; }
}
} }
...@@ -36,8 +36,7 @@ namespace Com.Bocom.OpenApi ...@@ -36,8 +36,7 @@ namespace Com.Bocom.OpenApi
{ {
try try
{ {
//byte[] contentBytes = Encoding.GetEncoding(charset).GetBytes(content); byte[] contentBytes = Encoding.GetEncoding(charset).GetBytes(content);
return RSACryptor.RSAFromPkcs8.VerifySHA256(content, sign, publicKey, charset); return RSACryptor.RSAFromPkcs8.VerifySHA256(content, sign, publicKey, charset);
} }
catch (Exception e) catch (Exception e)
......
...@@ -3,6 +3,7 @@ using System.Text; ...@@ -3,6 +3,7 @@ using System.Text;
using System.IO; using System.IO;
using System.Runtime.Serialization.Json; using System.Runtime.Serialization.Json;
using Com.Bocom.OpenApi.Security.Sign; using Com.Bocom.OpenApi.Security.Sign;
using System.Collections.Generic;
namespace Com.Bocom.OpenApi namespace Com.Bocom.OpenApi
{ {
...@@ -57,6 +58,48 @@ namespace Com.Bocom.OpenApi ...@@ -57,6 +58,48 @@ namespace Com.Bocom.OpenApi
T, e); T, e);
} }
} }
public static Object ParseCommunicationJsonWithBocomSign(string respStr, string charset, string MY_PRIVATE_KEY, string APIGW_PUBLIC_KEY)
{
string bizContentStr;
string sign;
try
{
//int indexOfRootStart = respStr.IndexOf(BocomConstants.BIZ_CONTENT) + BocomConstants.BIZ_CONTENT.Length + 2;
int indexOfRootEnd = respStr.LastIndexOf(",");
int indexOfSignStart = respStr.LastIndexOf(BocomConstants.SIGN + "\"") + BocomConstants.SIGN.Length + 3;
int indexOfSignEnd = respStr.LastIndexOf("\"");
bizContentStr = respStr.Substring(1, indexOfRootEnd - 1);
sign = respStr.Substring(indexOfSignStart, indexOfSignEnd - indexOfSignStart);
}
catch (Exception e)
{
throw new Exception("response is not format json. respStr :\n" + respStr, e);
}
Boolean passed = BocomSignature.Verify(BocomConstants.ENCRYPT_TYPE_RSA_AND_AES, bizContentStr, APIGW_PUBLIC_KEY, charset, sign);
if (!passed)
{
throw new Exception("Bocom sign verify not passed.");
}
try
{
var jsonDic = Kivii.Text.JsonSerializer.DeserializeFromString<Dictionary<string, string>>(respStr);
var encryptKeyEncrypt = jsonDic["encrypt_key"];
var reqBizContentEncrypt = jsonDic["biz_content"];
var encryptKey = BocomEncrypt.AsymmetricalDecrypt(encryptKeyEncrypt, BocomConstants.ENCRYPT_TYPE_RSA_AND_AES, MY_PRIVATE_KEY, charset);
var reqBizContent = BocomEncrypt.SymmetricalDecrypt(reqBizContentEncrypt, BocomConstants.ENCRYPT_TYPE_RSA_AND_AES, encryptKey, charset);
jsonDic["encrypt_key"] = encryptKey;
jsonDic["biz_content"] = reqBizContent;
//var rtns=Kivii.Text.JsonSerializer.SerializeToString(jsonDic);
return jsonDic;
}
catch (Exception e)
{
throw new Exception("Bocom decrypt not success.", e);
}
}
} }
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment