【问题标题】:how to create payment source to be used with stripe subscription with invoice如何创建用于带发票的条带订阅的付款来源
【发布时间】:2023-03-28 08:10:01
【问题描述】:

我需要创建一个条带订阅,客户使用发票付款,然后进入付款页面 所以我没有客户卡详细信息,当我尝试为客户创建付款来源时需要该详细信息 这就是我所做的

def createStripeCustomer(profile,request):
    host=request.build_absolute_uri()
    parts=host.split('/')
    host=parts[0]+'//'+parts[2]
    source=stripe.Source.create(
        type='card',
        currency='gbp',
        redirect={'return_url':host + '/payments/success/'},
        owner={
            'email': profile.user.email
        }
        )
    customer=stripe.Customer.create(
            description="My First Test Customer ",
            email=profile.user.email,
            name=profile.full_name,
            phone=profile.phone_no,
            address={'line1':profile.address},

            )
    source = stripe.Customer.create_source(
        customer.id,
        source=source.id
        )
    profile.stripe_customer=customer.id
    profile.stripe_source=source.id

    profile.save()

订阅

def createStripeSubscription(subscription):
    price=subscription.course.get_pay_price()
    stripe_price=stripe.Price.create(
            unit_amount=price,
            currency=subscription.course.currency,
            recurring={"interval": "week"},
            product=subscription.course.stripe_product,
            )
    stripe_subscription=stripe.Subscription.create(
            customer=subscription.student.stripe_customer,
            items=[
                {"price": stripe_price.id,
                  'quantity': 1,
                  },
                
            ],
            metadata={
                    "subscription_pk": subscription.pk
                },
            )

    subscription.stripe_price=stripe_price.id
    subscription.stripe_subscription=stripe_subscription.id

    subscription.save()

任何人都可以帮助请人们通过发票输入他们的卡

【问题讨论】:

    标签: python django stripe-payments subscription


    【解决方案1】:

    您的代码正在创建源,这些被认为是遗留的,不要使用它们。

    您需要改为创建一个 PaymentMethod。这样做的方法是您使用 Stripe.js 和 Stripe 托管的 UI“元素”,它允许客户输入他们的卡详细信息(在符合 PCI、Stripe 托管的 iframe 输入字段中)(by following Step 3 here),您可以@987654322 @。

    然后,您将该 PaymentMethod 发送到您的服务器,将其附加到客户,并在您创建订阅时将其作为 default_payment_method 传递。

    【讨论】:

      猜你喜欢
      • 2021-11-02
      • 2020-01-16
      • 2022-08-12
      • 2020-01-14
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 2022-01-19
      • 2019-07-07
      相关资源
      最近更新 更多