推送订单

This commit is contained in:
18631081161 2026-04-22 15:22:37 +08:00
parent 0a65290940
commit 9d07af1b23
2 changed files with 4 additions and 7 deletions

View File

@ -65,7 +65,7 @@ public class TldChargeOrder
public int StopReason { get; set; }
public int? SumPeriod { get; set; }
public List<TldChargeDetail>? ChargeDetails { get; set; }
/// <summary>手机号(非标准字段,需与特来电确认是否在订单推送中携带)</summary>
/// <summary>手机号(特来电在订单推送中携带)</summary>
public string? PhoneNum { get; set; }
}

View File

@ -121,11 +121,8 @@ public class TldService : ITldService
/// 处理充电订单推送(核心接口)
/// 特来电充电完成后推送订单 → 解密验签 → 根据手机号找用户 → 计算并发放积分
///
/// 用户关联方案:充电订单号格式为"运营商ID+唯一编号"27字符
/// 其中运营商ID前9位可提取。但订单中无手机号字段。
/// 实际对接中特来电会在启动充电时通过PhoneNum字段传入手机号
/// 该手机号会包含在订单推送的扩展字段中。
/// 如果订单中确实没有手机号则需要通过TldChargeRecord表预先记录关联关系。
/// 用户关联方案特来电在订单推送中携带PhoneNum字段
/// 通过手机号匹配本平台用户,匹配成功则发放积分。
/// </summary>
public async Task<TldChargeOrderResponse> HandleChargeOrderAsync(TldRequest request)
{
@ -216,7 +213,7 @@ public class TldService : ITldService
chargeRecord.UpdatedAt = DateTime.UtcNow;
}
// 方案B通过订单中的手机号直接匹配用户需与特来电确认是否携带PhoneNum
// 方案B通过订单中的手机号匹配用户
if (userId is null && !string.IsNullOrEmpty(order.PhoneNum))
{
var user = await _db.Users.FirstOrDefaultAsync(u => u.Phone == order.PhoneNum);