好吧,我希望进行付款,进行测试,当然,正在确认,它应该返回包含付款的日志,但它给出了错误,我不知道如何解决它。
stripe服务支付配置:
const session = await stripe.checkout.sessions.create({
line_items: [{ price: 'price_1PC5bHRuHnjMMxEpI1UEGeJC', quantity: 1 }],
mode: 'payment',
payment_intent_data: {
setup_future_usage: 'on_session',
},
customer: 'cus_Q29t0zXFIFRChZ',
success_url:
'http://localhost:4000' +
'/pay/success/checkout/session?session_id={CHECKOUT_SESSION_ID}',
cancel_url: 'http://localhost:4000' + '/pay/failed/checkout/session',
});
//console.log(session)
return session
我的服务:
async SuccessSession(Session: any) {
console.log(Session);
}
我的控制器:
@MessagePattern({ cmd: 'payment-succes'})
async pagamentoPS(@Ctx() contexto: RmqContext, @Payload() Session: any){
const channel = contexto.getChannelRef()
const message = contexto.getMessage()
channel.ack(message)
return this.reservaService.SuccessSession(Session)
}
我的API网关控制器:
@Get('pay/success/checkout/session')
paymentSuccess(@Res({ passthrough: true }) res ) {
return this.authServico.send(
{
cmd: 'payment-succes'
}, res
)
}
我收到的错误而不是确认付款的日志:
[Nest] 31 - 05/03/2024, 6:02:02 PM ERROR [ExceptionsHandler] Converting circular structure to JSON
嗯,我用一种非常简单的方式解决了这个问题,我使用了一个 api 网关,正如我所展示的,但我很快想到,我没有使用rabbitmq,而是没有 AppService,只有一个用于我的 api 网关的控制器,所以我创建了一个 AppService 并将其首先放在 appModule Providers 模块中:
@Module({
imports: [rmqModule.registrarRmq('Nestor_Service', process.env.RABBITMQ_AUTH_QUEUE)],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
然后我重新编写了appService中的SuccessSession方法,并同时使用了appService和我的clientProxy,但是我使用appService来使用这个方法:
export class AppController {
constructor(private readonly appService: AppService, @Inject('Nestor_Service') private readonly authServico: ClientProxy) {}
@Get('pay/success/checkout/session')
paymentSuccess(@Res({ passthrough: true }) res ) {
return this.appService.SuccessSession(res)
}
一切正常