|
@@ -214,13 +214,43 @@ describe('支付回调API集成测试 - 多租户版本', () => {
|
|
|
const tenant1Data = multiTenantData.tenant1;
|
|
const tenant1Data = multiTenantData.tenant1;
|
|
|
const tenant2Data = multiTenantData.tenant2;
|
|
const tenant2Data = multiTenantData.tenant2;
|
|
|
|
|
|
|
|
|
|
+ // 为租户1创建特定的回调数据,使用租户1支付记录的outTradeNo
|
|
|
|
|
+ const tenant1RawBody = JSON.stringify({
|
|
|
|
|
+ "id": "495e231b-9fd8-54a1-8a30-2a38a807744c",
|
|
|
|
|
+ "create_time": "2025-10-25T12:48:11+08:00",
|
|
|
|
|
+ "resource_type": "encrypt-resource",
|
|
|
|
|
+ "event_type": "TRANSACTION.SUCCESS",
|
|
|
|
|
+ "summary": "支付成功",
|
|
|
|
|
+ "resource": {
|
|
|
|
|
+ "original_type": "transaction",
|
|
|
|
|
+ "algorithm": "AEAD_AES_256_GCM",
|
|
|
|
|
+ "ciphertext": "tl1/8FRRn6g0gRq8IoVR8+95VuIADYBDOt6N9PKiHVhiD6l++W5g/wg6VlsCRIZJ+KWMYTaf5FzQHMjCs8o9otIkLLuJA2aZC+kCQtGxNfyVBwxool/tLT9mHd0dFGThqbj8vb/lm+jjNcmmiWHz+J1ZRvGl7mH4I714vudok7JRt5Q0u0tYaLWr76TTXuQErlA7T4KbeVeGAj8iMpu2ErCpR9QRif36Anc5ARjNYrIWfraXlmUXVbXermDyJ8r4o/4QCFfGk8L1u1WqNYASrRTQvQ8OPqj/J21OkDxbPPrOiEmAX1jOvONvIVEe9Lbkm6rdhW4aLRoZYtiusAk/Vm7MI/UYPwRZbyuc4wwdA1T1D4RdJd/m2I4KSvZHQgs0DM0tLqlb0z3880XYNr8iPFnyu2r8Z8LGcXD+COm06vc7bvNWh3ODwmMrmZQkym/Y/T3X/h/4MZj7+1h2vYHqnnrsgtNPHc/2IwWC/fQlPwtSrLh6iUxSd0betFpKLSq08CaJZvnenpDf1ORRMvd8EhTtIJJ4mV4v+VzCOYNhIcBhKp9XwsuhxIdkpGGmNPpow2c2BXY=",
|
|
|
|
|
+ "associated_data": "transaction",
|
|
|
|
|
+ "nonce": "sTnWce32BTQP"
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 模拟微信支付SDK解密,返回租户1的商户订单号
|
|
|
|
|
+ const mockWxPay = {
|
|
|
|
|
+ verifySign: vi.fn().mockResolvedValue(true),
|
|
|
|
|
+ decipher_gcm: vi.fn().mockReturnValue(JSON.stringify({
|
|
|
|
|
+ out_trade_no: tenant1Data.payment.outTradeNo, // 使用租户1的支付记录outTradeNo
|
|
|
|
|
+ trade_state: 'SUCCESS',
|
|
|
|
|
+ transaction_id: 'test_transaction_id',
|
|
|
|
|
+ amount: {
|
|
|
|
|
+ total: 1
|
|
|
|
|
+ }
|
|
|
|
|
+ }))
|
|
|
|
|
+ };
|
|
|
|
|
+ vi.mocked(WxPay).mockImplementation(() => mockWxPay as any);
|
|
|
|
|
+
|
|
|
// 处理租户1的支付回调
|
|
// 处理租户1的支付回调
|
|
|
const response = await client.payment.callback.$post({
|
|
const response = await client.payment.callback.$post({
|
|
|
json: {}
|
|
json: {}
|
|
|
}, {
|
|
}, {
|
|
|
headers: callbackHeader,
|
|
headers: callbackHeader,
|
|
|
init: {
|
|
init: {
|
|
|
- body: rawBody
|
|
|
|
|
|
|
+ body: tenant1RawBody
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|