|
@@ -1,4 +1,5 @@
|
|
|
-using Lib.AspNetCore.ServerSentEvents;
|
|
|
+using Azure.Cosmos;
|
|
|
+using Lib.AspNetCore.ServerSentEvents;
|
|
|
using Microsoft.AspNetCore.Cors;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Microsoft.Extensions.Options;
|
|
@@ -102,13 +103,14 @@ namespace TEAMModelOS.Controllers
|
|
|
if (response.IsSuccessful())
|
|
|
{
|
|
|
order.qrcode_url=response.QrcodeUrl;
|
|
|
- order.id=order.id;
|
|
|
+ order.id=order.order_no;
|
|
|
order.pk="TMDOrder";
|
|
|
order.code="TMDOrder";
|
|
|
order.ttl=-1;
|
|
|
order.qrcode_time=DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
- await _azureCosmosFactory.GetCosmosClient().GetContainer(Constant.TEAMModelOS,Constant.Normal).UpsertItemAsync(order,new Azure.Cosmos.PartitionKey(order.code));
|
|
|
- return Redirect($"https://teammodeltest.blob.core.chinacloudapi.cn/0-public/index_cn.html?order_no={order.order_no}&amount={order.amount}&count=1&buyer_name={HttpUtility.UrlEncode(order.buyer_name, Encoding.UTF8)}&item_desc={HttpUtility.UrlEncode(order.item_desc, Encoding.UTF8)}&buyer_tmid={order.buyer_tmid}&item_desc={HttpUtility.UrlEncode(order.return_url, Encoding.UTF8)}&buyer_email={HttpUtility.UrlEncode(order.buyer_email, Encoding.UTF8)}");
|
|
|
+ await _azureCosmosFactory.GetCosmosClient().GetContainer(Constant.TEAMModelOS,Constant.Normal).UpsertItemAsync(order,new PartitionKey(order.code));
|
|
|
+ string url = $"https://teammodeltest.blob.core.chinacloudapi.cn/0-public/index_cn.html?order_no={order.order_no}&amount={order.amount}&count=1&buyer_name={HttpUtility.UrlEncode(order.buyer_name, Encoding.UTF8)}&item_desc={HttpUtility.UrlEncode(order.item_desc, Encoding.UTF8)}&buyer_tmid={order.buyer_tmid}&return_url={HttpUtility.UrlEncode(order.return_url, Encoding.UTF8)}&buyer_email={HttpUtility.UrlEncode(order.buyer_email, Encoding.UTF8)}";
|
|
|
+ return Redirect(url);
|
|
|
//return Ok(new { code = 200, qrcodeUrl = response.QrcodeUrl, orderId = orderId });
|
|
|
}
|
|
|
else
|
|
@@ -171,7 +173,8 @@ namespace TEAMModelOS.Controllers
|
|
|
order.pay_type=callbackResource.TradeType;
|
|
|
order.openid=callbackResource.Payer.OpenId;
|
|
|
await _azureCosmosFactory.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).UpsertItemAsync(order, new Azure.Cosmos.PartitionKey(order.code));
|
|
|
- if (!string.IsNullOrWhiteSpace(order.client_id)) {
|
|
|
+ if (!string.IsNullOrWhiteSpace(order.client_id))
|
|
|
+ {
|
|
|
if ((sseClient = _sse.GetClient(new Guid(order.client_id))) != null)
|
|
|
{
|
|
|
await sseClient.SendEventAsync(new { data, grant_type = "pay_success" }.ToJsonString());
|
|
@@ -179,6 +182,16 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ if (!string.IsNullOrWhiteSpace($"{json.GetProperty("clientId")}"))
|
|
|
+ {
|
|
|
+ if ((sseClient = _sse.GetClient(new Guid($"{json.GetProperty("clientId")}"))) != null)
|
|
|
+ {
|
|
|
+ await sseClient.SendEventAsync(new { data, grant_type = "pay_success" }.ToJsonString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ok(new { code = 404, msg = "订单不存在" });
|
|
|
+ }
|
|
|
}
|
|
|
else {
|
|
|
await _dingDing.SendBotMsg($"微信支付通知(解析数据)支付失败结果:{callbackModel.EventType}", GroupNames.成都开发測試群組);
|