Skip to content
This repository has been archived by the owner on Aug 18, 2021. It is now read-only.

Stripe.js compatibility #2

Open
ivanweiler opened this issue Sep 13, 2014 · 3 comments
Open

Stripe.js compatibility #2

ivanweiler opened this issue Sep 13, 2014 · 3 comments

Comments

@ivanweiler
Copy link
Contributor

Logic: Instead of posting cc, cvv, etc, grab them with js, call stripe.js, get token, inject token, post token

Problem: Hook on what, Magento isn't submiting forms on checkout, he's "collecting" payment info with js and sends it with ajax on both payment continue and place order. Sending payment info through ajax 2 times + validate() in pgw 2 times. So we can't use onsubmit or similar.

_ajax( something + payment.form.serialize() )

Integration:
It seems the only way to achieve this is to mess with Magento checkout javascript (rewrite core widgets, block on continue click or similar) which is slightly aggressive. Also, I assume things are different in onepage vs multishipping vs order from admin, not to mention future onestep checkouts.
I also can't find custom "fire" events in js which exists in Mage1. Most likely they didn't need them yet for Mage2 EE :)

It's interesting that similar rewrites are seen in \app\code\Magento\Authorizenet\view\frontend\web\js\direct-post.js ( placeOrder.off('click').on('click', new_logic) )

One more thing, I didn't test, but it's mentioned at one place that "stripe tokens can only be used once". Since multishipping is creating multiple orders in a loop, multiple payment calls are executed, so token approach can't work here ?!?

Conclusion:
Funny thing is, if we implement usual backend cc non-token way, we're compatible with everything at the same time.

Go with backend cc approach, branch stripe.js approach and make it work on onepage as Mage2 practice for start? Suggestions?

@udovicic
Copy link
Member

Since implementation as usual backend cc wouldn't require almost any changes compared to Mage1 version, I would suggest to branch stripe.js and proceed with tokens.. Of course, this implies that multishipping will not be available with this method.

@ivanweiler
Copy link
Contributor Author

We'll go with NEW stripejs branch one of these days, I think clean implementation of stripe.js is possible with new checkout in M2 1.0.0-beta.

@ivanweiler
Copy link
Contributor Author

Proof of concept stripe.js implementation can be seen at feature/stripejs branch:
https://github.com/Inchoo/magento2-Inchoo_Stripe/tree/feature/stripejs

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants