fix: 修复微信发货接口 UTF8 编码问题
- 使用字符串模板直接构建 JSON,与 PHP 实现保持一致 - 移除 JsonSerializer 的 SnakeCaseLower 策略避免双重转换 - 添加请求内容的调试日志
This commit is contained in:
parent
d9dc8e4a6e
commit
ba0d0548d3
|
|
@ -1013,38 +1013,35 @@ public class WechatService : IWechatService
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. 构建请求参数
|
// 4. 构建请求参数 - 直接构建 JSON 字符串,与 PHP 保持一致
|
||||||
var itemDesc = request.ItemDesc ?? GetDefaultItemDesc(request.OrderNo);
|
var itemDesc = request.ItemDesc ?? GetDefaultItemDesc(request.OrderNo);
|
||||||
var uploadTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "+08:00";
|
var uploadTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + "+08:00";
|
||||||
|
|
||||||
var requestBody = new
|
// 使用字符串模板构建 JSON,确保格式与微信要求一致
|
||||||
|
var jsonContent = $$"""
|
||||||
{
|
{
|
||||||
order_key = new
|
"order_key": {
|
||||||
{
|
"order_number_type": 1,
|
||||||
order_number_type = 1, // 使用商户订单号
|
"mchid": "{{mchId}}",
|
||||||
mchid = mchId,
|
"out_trade_no": "{{request.OrderNo}}"
|
||||||
out_trade_no = request.OrderNo
|
|
||||||
},
|
},
|
||||||
logistics_type = request.LogisticsType, // 4=虚拟商品
|
"logistics_type": {{request.LogisticsType}},
|
||||||
delivery_mode = 1, // 1=统一发货
|
"delivery_mode": 1,
|
||||||
shipping_list = new[]
|
"shipping_list": [
|
||||||
{
|
{
|
||||||
new { item_desc = itemDesc }
|
"item_desc": "{{itemDesc}}"
|
||||||
},
|
|
||||||
upload_time = uploadTime,
|
|
||||||
payer = new
|
|
||||||
{
|
|
||||||
openid = request.OpenId
|
|
||||||
}
|
}
|
||||||
};
|
],
|
||||||
|
"upload_time": "{{uploadTime}}",
|
||||||
var jsonContent = JsonSerializer.Serialize(requestBody, new JsonSerializerOptions
|
"payer": {
|
||||||
{
|
"openid": "{{request.OpenId}}"
|
||||||
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower
|
}
|
||||||
});
|
}
|
||||||
|
""";
|
||||||
|
|
||||||
_logger.LogInformation("调用微信发货接口: OrderNo={OrderNo}, MchId={MchId}, OpenId={OpenId}",
|
_logger.LogInformation("调用微信发货接口: OrderNo={OrderNo}, MchId={MchId}, OpenId={OpenId}",
|
||||||
request.OrderNo, mchId, request.OpenId);
|
request.OrderNo, mchId, request.OpenId);
|
||||||
|
_logger.LogDebug("发货请求内容: {JsonContent}", jsonContent);
|
||||||
|
|
||||||
// 5. 发送请求
|
// 5. 发送请求
|
||||||
var url = $"{uploadShippingUrl}?access_token={accessToken}";
|
var url = $"{uploadShippingUrl}?access_token={accessToken}";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user