#Marco Túlio Rocha
1 messages · Page 1 of 1 (latest)
I need to create a signature with a credit card, where do I associate the credit card?
I'm not exactly sure what specific feature or integration you're talking about -can you give more detail? Are you looking at a specific doc or guide?
That image isn't loading for me (Discord is still flaky), but what integration are you working with? Checkout? Elements? Something else?
I'm working with the integration.
I've already created product, price and costumer.
Do I need to create the PaymentMethod and associate the credit card?
my doubt and at this stage, the subscription....
Have you looked at our docs that walk through how to create this? https://stripe.com/docs/billing/subscriptions/build-subscriptions?ui=elements
It sounds like you're on step 5 (https://stripe.com/docs/billing/subscriptions/build-subscriptions?ui=elements) - you need to create the subscription, and then collect the payment information using elements
Create and manage subscriptions to accept recurring payments.
I don't use stripe elements, I have a custom page
where do i enter my credit card details
You're collecting card details without using elements?
Are you PCI compliant? We strongly recommend using Stripe Elements, and not your own custom page - otherwise, you have to make sure you're PCI compliant which you can read more about in the "API Direct" section here https://stripe.com/docs/security/guide#validating-pci-compliance
exactly
Please review the information karbi shared above
In order to do this you'll need to reach out to our support team and work with them to validate your PCI compliance documentation
How would this validation be?
Have you reviewed the documentation shared above?
The "API direct" tab currently says:
We strongly discourage passing card information directly to Stripe’s API as it means your integration is directly handling card information. Even if you do not store any payment information, we can only help simplify PCI compliance if you’ve integrated with Checkout, Elements, or our mobile SDKs.
If you continue to send card details directly to our API, you’ll be required to upload your SAQ D annually to prove your business is PCI compliant. SAQ D is the most onerous of all the SAQs, with over 40 pages of requirements you must implement to remain PCI compliant. We highly recommend you migrate to client-side tokenization of card information to substantially reduce the scope of your PCI compliance.
In addition to the significant PCI burden that this method places on you, it is not supported by Radar, our fraud prevention toolset. Radar’s functionality (for example, risk evaluation, rules, and so on) is only available when using any of our methods of client-side tokenization.
You'll need to reach out to support to complete the SAQ D documentation to continue with this pattern: https://support.stripe.com/contact
Find help and support for Stripe. Our support center provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
It's strongly recommended for you to use Elements to collect card details
It is - you'd do so by sending the details within the card hash with the payment method API: https://stripe.com/docs/api/payment_methods/create#create_payment_method-card-number
after checking the PCI compliance documentation, right?
Yes, that's required to collect payments using a flow like this.
then to confirm the steps:
- stripe.products.create
- stripe.customers.create
- stripe.paymentMethods.create
- stripe.subscriptions.create
- ???
You'd need a Price too, somewhere between 1 and 4
But yes, that looks like an accurate summary
yes yes, forgot:
- stripe.products.create
- stripe.prices.create
- stripe.customers.create
- stripe.paymentMethods.create
- stripe.subscriptions.create
- ???
would I need a confirmation in step 7?
Potentially, we recommend using default_incomplete and confirming the payment intent client side, but that uses Stripe.js and Elements which you're not doing. If you set a subscription for automatic payment you may need to handle eg authentication flow:
https://stripe.com/docs/payments/3d-secure#manual-redirect
confused, in which case I don't use the stripe.subscriptions.create method anymore ?
This would be in the result of that, if authentication were needed. This is made much easier by Stripe.js/Elements.
can i call Stripe.js/Elements redirecting the user to a confirmation stripe url?
What do you mean?
the way I'm doing it, can I redirect the user to a confirmation screen?
the screen where the customer confirms the intention to pay, do you think it's necessary?
can i do it by the server automatically?
Do you mean specifically for 3ds authentication, or some part of your own payment flow?
yes
I'm seeing it here, I think I can create a subscription with status already active, right?
That was not a yes or no question
It was A or B
It would be much more helpful for you to work on your integration then share specific examples where you're having trouble for us to help
part of your own payment flow
I suggest you work on that, go through your implementation and testing first
I'm doing this
I'm seeing it here, I think I can create a subscription with status already active, right?
That depends on how you create subscriptions and what options you use. It's not something you set explicitly. Do you have an example request/subscription we can discuss?
eg req_12345 https://stripe.com/docs/api/request_ids
or sub_12345
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
I'm creating this way
step 6:
- stripe.products.create
- stripe.prices.create
- stripe.customers.create
- stripe.paymentMethods.create
- stripe.subscriptions.create
- ???
Right, so that default_incomplete would be what we suggest when authenticating on the client with Stripe.js
If you want to do that, you can get the client_secret from the payment intent you expanded, and send that and the payment method id to your client app
Then use Stripe.js and confirmCardPayment to finish the payment in a way that supports 3ds:
I understood
stripe
.confirmCardPayment('{PAYMENT_INTENT_CLIENT_SECRET}', {
payment_method: '{PAYMENT_METHOD_ID}',
})