Commit a5ce2103 by 陶然

更新扫码支付

parent 7c4771f4
......@@ -16,7 +16,8 @@ namespace Com.Bocom.OpenApi
/// 测试环境
/// </summary>
//internal static string APIGW_URL_ADDRESS = "https://open.test.bankcomm.com:9443/uat";//"https://117.184.192.242:9443";
internal static string basicUrlQrCode = "https://117.184.192.242:9443";//"https://open.test.bankcomm.com:9443";
internal static string basicUrlQrCode = "https://open.test.bankcomm.com:9443";
//internal static string basicUrlQrCode = "https://117.184.192.242:9443";//"https://open.test.bankcomm.com:9443";
//internal static string basicUrlQrCode = "https://open.test.bankcomm.com:9443";
/// <summary>
......
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAihC4Qj8mlFxlO54qhUOmwWTKqhTCrfzZIeWFqS+QH9BxiChja6Za8oYVhyP+kiRiWxffBTzT25DPUfaDiQVCnlhdqlfOHHZ2Gp291pKrmF/E4WxLk50zYE1d69osw20GY0EVxhpml5bOxumxughpKwPKCrcYtN7MXAeWUEpl7AzqPNUgV+KlmE7TxB9tWcP6jeSn4/PQ47BfYmi2LI25UXfaFrUSNITkePoIYVZnP6FVpsC2grTdnPeUgfaCB3f/fPjEwRPrCHXCMopEWQQGIvqZuaZkFaQAd5XYfQnRytnF8nPofuRCDOHZYV2ldb5fVfsne/PuWmKBnBghebcw+QIDAQAB
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAihC4Qj8mlFxlO54qhUOmwWTKqhTCrfzZIeWFqS+QH9BxiChja6Za8oYVhyP+kiRiWxffBTzT25DPUfaDiQVCnlhdqlfOHHZ2Gp291pKrmF/E4WxLk50zYE1d69osw20GY0EVxhpml5bOxumxughpKwPKCrcYtN7MXAeWUEpl7AzqPNUgV+KlmE7TxB9tWcP6jeSn4/PQ47BfYmi2LI25UXfaFrUSNITkePoIYVZnP6FVpsC2grTdnPeUgfaCB3f/fPjEwRPrCHXCMopEWQQGIvqZuaZkFaQAd5XYfQnRytnF8nPofuRCDOHZYV2ldb5fVfsne/PuWmKBnBghebcw+QIDAQAB
\ No newline at end of file
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4gZgdtCHtPNxMFYFLC1/8CnGKuMxph+E9gnC0VQczh0rdp8zNoBEKD0c6J77fhyIfUetzRmjQbE3kAs4L6Us1bhHzRaAKAP5hdAyMcb6XqET6WLxN/kA3jvPqteG2yXLnGtY+SxUGNmptluAC2AdvRECg4ui1sLNC/MWpsLzXDu5yIBMqnbHOig4cJOdCgVk+vEFi92niVAAdOfsbqMhT/nmWkFfFH2EbSxsN5+ihZ39VQJ1CTG2HBMUEvbjr0aHgn1rcMNyRAx2jM+XhoyZe/BIyTV2zI0xH0sc1d3jfmYn733/gmjZ01ikiG0eqBZJMEIJYBk/7M6h9dv+Ao61cQIDAQAB
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4gZgdtCHtPNxMFYFLC1/8CnGKuMxph+E9gnC0VQczh0rdp8zNoBEKD0c6J77fhyIfUetzRmjQbE3kAs4L6Us1bhHzRaAKAP5hdAyMcb6XqET6WLxN/kA3jvPqteG2yXLnGtY+SxUGNmptluAC2AdvRECg4ui1sLNC/MWpsLzXDu5yIBMqnbHOig4cJOdCgVk+vEFi92niVAAdOfsbqMhT/nmWkFfFH2EbSxsN5+ihZ39VQJ1CTG2HBMUEvbjr0aHgn1rcMNyRAx2jM+XhoyZe/BIyTV2zI0xH0sc1d3jfmYn733/gmjZ01ikiG0eqBZJMEIJYBk/7M6h9dv+Ao61cQIDAQAB
\ No newline at end of file
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
\ No newline at end of file
......@@ -15,6 +15,7 @@ using static Com.Bocom.OpenApi.AddContractOrderRequestV2.AddContractOrderRequest
using static System.Net.Mime.MediaTypeNames;
using System.Reflection;
using System.Web.Caching;
using Njzj.Bocoms.Openapis.Entities;
namespace Com.Bocom.OpenApi
{
......@@ -242,7 +243,7 @@ namespace Com.Bocom.OpenApi
//-----------------------记录下这份收款码的数据的信息,如果这份订单取消了就要作废--------------------------------
var rtns = response as MPNG210001ResponseV1;
if (rtns.rsp_head.response_status != "S") throw new Exception(rtns.rsp_head.response_msg);
//rtns.rsp_body.display_code_text = $"http://yunbanktest.bankcomm.com/tcipp/pmss/cipp.jsp?qrCode={rtns.rsp_body.display_code_text}";
rtns.rsp_body.display_code_text = $"http://yunbanktest.bankcomm.com/tcipp/pmss/cipp.jsp?qrCode={rtns.rsp_body.display_code_text}";
return rtns;
}
else
......@@ -291,5 +292,45 @@ namespace Com.Bocom.OpenApi
throw new Exception($"ReturnCode:{response.GetRspCode()}{Environment.NewLine}ReturnMsg:{response.GetRspMsg()}");
}
}
/// <summary>
/// 删除收款码订单信息
/// </summary>
/// <param name="receiveCode"></param>
/// <param name="conn"></param>
/// <returns></returns>
public static bool ReceiveCodeDelete(this ReceiveCode receiveCode, IDbConnection conn = null)
{
bool useTransaction = conn == null;//是否启用事务,如果外部未传入conn,启用内部事务
if (conn == null)
{
conn = KiviiContext.GetOpenedDbConnection<ReceiveCode>();
}
var details = conn.Select<ReceiveCodeDetail>(o => o.ReceiveCodeKvid == receiveCode.Kvid);
IDbTransaction trans = null;//事务,如果外部来了Connection,不生成事务
if (useTransaction) trans = conn.OpenTransaction();
try
{
if (!details.IsNullOrEmpty())
{
foreach (var item in details)
{
conn.DeleteById<ReceiveCodeDetail>(item.Kvid);
}
}
conn.DeleteById<ReceiveCode>(receiveCode.Kvid);
trans?.Commit();
return true;
}
catch (Exception ex)
{
trans?.Rollback();
throw ex;
}
}
}
}
......@@ -129,6 +129,14 @@
<Compile Include="WriteOffJob.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Content\2023_08_21_南京质检智慧记帐系统公钥\南京质检智慧记帐系统公钥%28交行提供的_使用此公钥%29.pub" />
<None Include="Content\2023_08_21_南京质检智慧记帐系统公钥\南京质检智慧记帐系统公钥.pub" />
<None Include="Content\2023_08_21_南京质检智慧记帐系统公钥\南京质检智慧记帐系统私钥.pri" />
<None Include="Content\bocom-api-sdk_v1_条码_0926.zip" />
<None Include="Content\bocom-api-sdk_新通知示例demo.zip" />
<None Include="Content\Fw_ Fw_ 转发_ 智慧记账开放银行新版sdk(9月15日投产版本).zip" />
<None Include="Content\product_smtbknotify_api_0580_智慧记账通知 %28变更后%29.zip" />
<None Include="Content\智慧记账 对外接口sdk_v2.zip" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
......
......@@ -33,5 +33,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("5.4.2023.8290")]
[assembly: AssemblyFileVersion("5.4.2023.8290")]
[assembly: AssemblyVersion("5.4.2023.10190")]
[assembly: AssemblyFileVersion("5.4.2023.10190")]
......@@ -12,6 +12,7 @@ using System.Threading.Tasks;
namespace Njzj.Bocoms.Openapis
{
[RequiresAnyRole(SystemRoles.Everyone)]
public class SettlementGenerateReceiveCode : RestfulExecution<Settlement>
{
public List<Guid> SettlementKvids { get; set; }
......@@ -106,47 +107,100 @@ namespace Njzj.Bocoms.Openapis
}
}
[RequiresAnyRole(SystemRoles.Everyone)]
public class ReceiveCodeCheckState : RestfulExecution<ReceiveCode>
{
public string PayMerTranNo { get; set; }
public List<Guid> SettlementKvids { get; set; }
public override object OnExecution(IRequest req, IResponse res)
{
PayMerTranNo.ThrowIfNullOrEmpty("请传入订单号!");
(PayMerTranNo.IsNullOrEmpty() && SettlementKvids.IsNullOrEmpty()).ThrowIfTrue("请传入订单号!");
//PayMerTranNo.ThrowIfNullOrEmpty("请传入订单号!");
var conn = KiviiContext.GetOpenedDbConnection<ReceiveCode>();
var existCode = conn.Single<ReceiveCode>(o => o.pay_mer_tran_no == PayMerTranNo);
if (existCode == null) throw new Exception("未找到此扫码订单");
var rtns = new RestfulExecutionResponse<ReceiveCode>();
rtns.Results = new List<ReceiveCode>();
if (existCode.tran_state != "PROCESS")
List<string> payTranNos = new List<string>();
if (!PayMerTranNo.IsNullOrEmpty()) payTranNos.Add(PayMerTranNo);
if (!SettlementKvids.IsNullOrEmpty())
{
rtns.Results.Add(existCode);
return rtns;
}
conn.InitEntityType<ReceiveCodeDetail>();
var query = conn.From<ReceiveCodeDetail>();
query.Where(o => Sql.In(o.BizKvid, SettlementKvids));
query.OrderByDescending(o => o.CreateTime);
var existDetails = conn.Select<ReceiveCodeDetail>(query);
if (!existDetails.IsNullOrEmpty())
{
var paymerNos = existDetails.ConvertAll(o => o.PayMerTranNo).Distinct().ToList();
if (!paymerNos.IsNullOrEmpty())
{
foreach (var o in paymerNos)
{
if (!o.IsNullOrEmpty() && !payTranNos.Contains(o)) payTranNos.Add(o);
}
}
}
var order = Extension.GetReceiveCodeOrder(PayMerTranNo);
if (order.rsp_body.tran_state != existCode.tran_state)
}
if (!payTranNos.IsNullOrEmpty())
{
existCode.tran_state = order.rsp_body.tran_state;
existCode.AddOnlyProperties(o => o.tran_state);
existCode.tran_state_code = order.rsp_body.tran_state_code;
existCode.AddOnlyProperties(o => o.tran_state_code);
existCode.tran_state_msg = order.rsp_body.tran_state_msg;
existCode.AddOnlyProperties(o => o.tran_state_msg);
existCode.mer_memo = order.rsp_body.mer_memo;
existCode.AddOnlyProperties(o => o.mer_memo);
existCode.total_amount = order.rsp_body.total_amount;
existCode.AddOnlyProperties(o => o.total_amount);
existCode.order_status = order.rsp_body.order_status;
existCode.AddOnlyProperties(o => o.order_status);
existCode.tran_content = order.rsp_body.tran_content;
existCode.AddOnlyProperties(o => o.tran_content);
conn.UpdateOnly(existCode);
existCode.RemoveAllOnlyProperties();
var existCodes = conn.Select<ReceiveCode>(o => Sql.In(o.pay_mer_tran_no, payTranNos));
if (!existCodes.IsNullOrEmpty())
{
foreach (var existCode in existCodes)
{
if (existCode.tran_state.ToUpper() == "SUCCESS")//查出来已经成功付款了 直接返回
{
rtns.Results.Add(existCode);
}
else//如果查出来并不是成功付款,就去调用交行接口查看返回值情况,根据返回值选择性更新当前订单信息或者订单超时支付等一些问题就要从系统中删除
{
try
{
var order = Extension.GetReceiveCodeOrder(existCode.pay_mer_tran_no);
if (order.rsp_body.tran_state.ToUpper() == "SUCCESS")//成功付款的情况
{
existCode.tran_state = order.rsp_body.tran_state;
existCode.AddOnlyProperties(o => o.tran_state);
existCode.tran_state_code = order.rsp_body.tran_state_code;
existCode.AddOnlyProperties(o => o.tran_state_code);
existCode.tran_state_msg = order.rsp_body.tran_state_msg;
existCode.AddOnlyProperties(o => o.tran_state_msg);
existCode.mer_memo = order.rsp_body.mer_memo;
existCode.AddOnlyProperties(o => o.mer_memo);
existCode.total_amount = order.rsp_body.total_amount;
existCode.AddOnlyProperties(o => o.total_amount);
existCode.order_status = order.rsp_body.order_status;
existCode.AddOnlyProperties(o => o.order_status);
existCode.tran_content = order.rsp_body.tran_content;
existCode.AddOnlyProperties(o => o.tran_content);
conn.UpdateOnly(existCode);
existCode.RemoveAllOnlyProperties();
}
else if (order.rsp_body.tran_state.ToUpper() == "PROCESS")//仍然在操作中的情况
{
if (existCode.CreateTime.AddMinutes(6) < DateTime.Now) existCode.ReceiveCodeDelete();//超过6分钟 二维码已经过期,直接删除
else rtns.Results.Add(existCode);
}
else//失败的情况
{
existCode.ReceiveCodeDelete();
}
}
catch (Exception ex)
{
existCode.ReceiveCodeDelete();
throw ex;
}
}
}
}
}
rtns.Results.Add(existCode);
return rtns;
}
......
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