无法记录条带支付,错误:将循环结构转换为 JSON?

问题描述 投票:0回答:1

好吧,我希望进行付款,进行测试,当然,正在确认,它应该返回包含付款的日志,但它给出了错误,我不知道如何解决它。

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
node.js rabbitmq nestjs stripe-payments
1个回答
0
投票

嗯,我用一种非常简单的方式解决了这个问题,我使用了一个 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)

  }

一切正常

© www.soinside.com 2019 - 2024. All rights reserved.