Comments (17)
@AmandaDLyon I am going to attempt to add PaymentIntent which would allow 3D secure to work. Once I have successfully implemented and tested it, I'll submit a PR and you can take it ahead from there.
from veniqa.
Thanks for bringing up this issue. I looked up and I am getting an authentication issue. It is going to take some time for us to look into it, but feel free to go around these parts to try to debug it if you would like to contribute to have a quick fix.
from veniqa.
@AmandaDLyon you are receiving the following error because your Stripe Account may have been set up with India as you Account's location. Change that to the United States to make this error go away.
completeCheckoutUsingCard Service Error: As per Indian regulations, export transactions require a customer name and address
As for 3D secure, I am facing the same issue and I think that it might have something to do with this part
@smaharj1 will be the best person to guide you here
from veniqa.
Hey @AmandaDLyon, good to know you're adopting Veniqa for your use case!
Regarding the As per Indian regulations...
error, @gfyre is spot on about that.
And as per the 3D Secure payment, the reason the payments aren't going through is because of the fact that 3D Secure card payments require an additional level of authentication which typically requires the user to be redirected to the authentication page on the Bank's website. MFA with a text code being sent to the user's phone is also involved.
More about that described on official Stripe Documentation.
This is something Veniqa doesn't support at the moment. If that's a must for your project, you'd have to implement that by updating
- Payment layout and flow on the web-client.
PaymentService
on the shopping-server (I have a feeling this might not be necessary if the frontend flow ends with stripe issuing a payment token ID as it normally does with its regular credit card payments. In this case, the backend should work as is)
In order to accept additional fields like Billing Customer Name, etc, it'd be the same.
from veniqa.
@Viveckh I don't know if I'd need 3D Secure but it seems like Indian Banks require support for MFA and it would be necessary for me to implement it.
It would be much better if guys could do this as it would be a lot quicker if the guys who made this platform integrated it. I know its asking a lot but it would mean a lot if you could make it happen...
from veniqa.
I couldn't help but notice, when you are in the Order window, you would see Stripe AUTHORIZATION
What does that mean exactly?
from veniqa.
@AmandaDLyon Hey Amanda! At the moment, we're only doing bugfixes and patches for the platform, due to our limited bandwidth and commitment to other projects. If you'd like a custom enhancement for your use case from one of us original developers, it is still available as a premium service. You can find out more about that by emailing us.
from veniqa.
Hey @Viveckh, a premium service won't be possible for me at the moment however (since this is my first project as a freelancer). I will try the implementation myself and hopefully @gfyre is able to make 3D secure work.
However, if absolutely needed, I will consider taking you up on your service.
Thanks for offering it though.
Could you also assist me on
I couldn't help but notice, when you are in the Order window, you would see
Stripe AUTHORIZATION
What does that mean exactly?
Cheers!
from veniqa.
@AmandaDLyon
If you are referring to the Stripe Authorization
within the order details page, then that refers to a Stripe payment has been authorized but the card hasn't been charged yet. When an admin confirms a customer order (assuring that the order can be fulfilled), the card gets charged then. 1
from veniqa.
@Viveckh @smaharj1 I have been dabbling around with Stripe and it turns out that 3D secure runs over a different Stripe API (Payment Intent API) whereas Veniqa uses Stripe Charges API.
Implementing 3D secure would hence require edits to the Webclient-Server as well.
Refer to this
from veniqa.
Hey Amanda, I've looked at Stripe Migration documents and am trying to implement Payment Intents API into Veniqa. However, I have hit a snag. I'll keep you @Viveckh and @smaharj1 updated upon when I am done implementing and testing the same.
from veniqa.
@smaharj1 @Viveckh I have managed to migrate the backend to the Payment Intents api. Essentially go into orderService.js
and under const chargeObj
in completeCheckoutUsingCard
, replace that bit of code with the following:
const chargeObj = stripe.paymentIntents.create({
amount: Math.round(checkout.cart.totalPrice.amount * 100),
currency: 'usd',
payment_method: 'pm_card_visa',
confirmation_method: 'manual',
metadata: {
user_email: userObj.email
},
description: "Veniqa Order " + checkoutId.substr(checkoutId.length - 6), // Last six chars of id
statement_descriptor: "Veniqa Order " + checkoutId.substr(checkoutId.length - 6)
});
Now what needs to be done next is to take the client-secret id
which is generated by the payment intent
we created above needs to be made accessible on the client side where you would then Use the confirmCardPayment
function, which collects the payment information and submits it directly to Stripe where the payment would be processed after the 3D secure window shows up.
from veniqa.
I need one of you to help me out with this bit
from veniqa.
@AmandaDLyon Hey Amanda! At the moment, we're only doing bugfixes and patches for the platform, due to our limited bandwidth and commitment to other projects. If you'd like a custom enhancement for your use case from one of us original developers, it is still available as a premium service. You can find out more about that by emailing us.
@Viveckh @smaharj1 I have emailed you on this address. Please take a look. Thanks.
from veniqa.
I managed to get 3D secure to work. Soon I'll submit a pull request. @smaharj1 @Viveckh
from veniqa.
I managed to get 3D secure to work. Soon I'll submit a pull request. @smaharj1 @Viveckh
Awesome! That'd be a great help. If possible make sure the PR explains what you did to make it work.
from veniqa.
@smaharj1 Once I have launched my clients project, I'll implement my solution into Veniqa submit a pull request along with what I did to make it work.
However, basically, these are the steps to follow:
Stripe 3DS SCA integration needs to be done on the Client and Server end. Below are the steps in general:
- Create a paymentIntent (ID essentially) on the server when the client is on the checkout page (for example)
- You then take the “client_secret” (which is within the paymentIntent created above) and make it accessible to the web client (customer-facing frontend)
- Then you collect the card details which in our case is collected by Stripe Elements
- Then call
stripe.confirmCardPayment
- Handle a declined payment by asking the customer to re-check their card details and only if the payment is successful, push the order to an approved checkout bucket and push the customer to the checkout page.
from veniqa.
Related Issues (20)
- New order does not show in admin dashboard HOT 3
- getting error during installation HOT 2
- BUG: Issue with Safari not passing cookie/session info HOT 11
- Re-routing to last open URL upon login HOT 2
- Visual Bug HOT 1
- Visual Bug HOT 2
- Mongo DB HOT 19
- Cannot Add/Edit a product HOT 6
- Order Recieved Email HOT 1
- Deploying to Production HOT 4
- Admin Login Credentials HOT 2
- Lots of deprecated packages HOT 2
- BUG HOT 1
- Feature request: Register as a seller HOT 1
- Empty database, how am I supposed to login on my local env? HOT 1
- Demo admin panel credentials not working HOT 1
- BUG <Config docker> Docker compose up error E11000 duplicate key error collection HOT 1
- BUG: docker-compose up dependency issue: cannot resolve axios@"^0.16.2” HOT 1
- BUG #0 99.25 npm ERR! code 1 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from veniqa.