Stripe의 subscriptions에서 `This customer has no attached payment source or default payment method.` 오류가 발생하여 결제 처리가 불가능합니다.

4563 단어 스트라이프결제

배경


  • StripeConnect를 사용하여 플랫폼을 구축하고 싶었습니다.
         const result = await stripe.subscriptions.create({
              customer: customerId,
              items: [
                {
                  price: priceId,
                },
              ],
    
              application_fee_percent: 10,
              transfer_data: {
                destination: connectAccountId,
              },
          }, {
              idempotencyKey: idempotencyKey,
          });
    
  • 이런 식으로 서브스크 결제를 실행하고 싶었지만, 결제 처리가 This customer has no attached payment source or default payment method. 와의 에러가 나서 실행할 수 없다.

  • 대응


  • 스트라이프 API 문서 검토
  • htps : // st 리페. 코 m / 드 cs / 아피 / 스 bsc p 치온 s / c 레테 # c 레테 _스 bsc 리 p 치온으로 보이는 lt_paymen t_me d
  • subscriptions의 POST API의 옵셔널 파라미터로, default_payment_method를 설정할 수 있는 것 같기 때문에, 명시적으로 지정했다.
  • 아래와 같은 느낌으로.

  •       const result = await stripe.subscriptions.create({
              customer: customerId,
              items: [
                {
                  price: priceId,
                },
              ],
              // consumerのpayment_methodを取得してきて、明示的に指定した。
              default_payment_method: paymentMethodList.data[0].id,
              application_fee_percent: 10,
              transfer_data: {
                destination: connectAccountId,
              },
          }, {
              idempotencyKey: idempotencyKey,
          });
    
  • 상기의 대응으로, 무사 API가 통과해, 서브스크 과금을 구현할 수 있었습니다.



  • 비고



    default_payment_method
    optional
    ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over default_source. If neither are set, invoices will use the customer’s invoice_settings.default_payment_method or default

    API 문서에, customerinvoice_settingsdefault_payment_method 로 설정해도 마찬가지일 수 있다고 기재가 있으므로 그쪽을 설정하는 것이 better일지도 모른다.

    좋은 웹페이지 즐겨찾기