In my project, I am using Braintree payment gateway. In that we can accept different types of credit cards like Visa, American Express etc. Each and every card has their predefined authorization days Like visa has 10 days authorization after that it will be expired. In braintree the transaction state will be "Authorization Expired".
My requirement is, to extend the authorization state to more than the predefined days like 10. On the basis of that I want to charge amount from client on specific future date.
Is there any way,so I can keep the transaction state as "Authorized" until the payment transaction date come.
Please give your suggestions on this.
Thanks in Advance
Praful
I work at Braintree. If you have more questions, feel free to reach out to our support team.
There is no built-in way to extend an auth. In most cases, it isn't necessary -- be sure you actually need to hold the full amount for the entire time before charging.
If you do need to extend an auth, you can void the existing auth and re-auth the amount periodically, before the auth would expire.
Related
When would you choose confirmCardPayment in the front end and when would you choose paymentIntent.Confirm in the backend?
currently our app allows you to checkout as guest, save a credit card if you are not a guest or use a saved card.
All of these flows work without confirmcardpayment on the frontend and without the paymentintent.confirm on the backend
I'm guessing there will be a time where a card payment requires extra authentication and that is when we need to either confirm in the front end or conifrm in the backend? (Also, when/why would a card require extra authentication? New to this space and looking to learn)
Our code pretty much follows this: https://github.com/stripe-samples/saving-card-after-payment/blob/master/without-webhooks/server/go/server.go
PS: The TLDR from the above link is:
Front end:
Creates a paymentmethod with a given card or saved card.
Sends POST /pay API to backend
Backend:
Receives API (validates if user is auth or not - in our case)
Creates a payment intent to be sent to stripe with paymentmethodID from frontend AND customerID gotten from our backend (Stripe's customer id that we created beforehand)
Stripe returns us the paymentmethod with status.
No confirmation on either front.
If same payment method tries to get used for another customer, fails.
If same payment method gets used for same customer (Saved card behavior) it works.
I'm guessing there will be a time where a card payment requires extra authentication and that is when we need to either confirm in the front end or conifrm in the backend?
You need to do this on the frontend because of customer authentication yes. Confirming on the frontend attempts the payment, and the Stripe JS library will also present any additional UI needed like the customer's bank's 3D Secure authentication page.
That is also important for accepting other types of payment methods(which you should, as having more local payment methods in your checkout flow increases customer conversion). E.g., payments using iDEAL require a redirect to the customers bank which again is handled on the client side. https://stripe.com/docs/payments/ideal#payment-flow
(Also, when/why would a card require extra authentication? New to this space and looking to learn)
Pretty much any transaction in Europe and the UK requires 3D Secure authentication right now, and it's only becoming more prevalent worldwide
https://stripe.com/docs/strong-customer-authentication
https://stripe.com/docs/payments/3d-secure
https://support.stripe.com/questions/strong-customer-authentication-sca-enforcement-date
Our code pretty much follows this
The Github link/flow you linked is an alternative way of using Stripe where you attempt the payment on the backend and then need to do a round-trip if authentication is required , but it's generally preferred to use client-side confirmation as it's more scalable for accepting other payment methods. See the notes on
https://stripe.com/docs/payments/accept-a-payment-synchronously
I'm using Braintree for my site's payments and it works well except that when a user has selected a payment card from its chrome's history and he/she mistakenly inputs a wrong CVV the Braintree will fail the transaction (when trying to verify) but it saves the credit card and the user cannot edit him/her mistake, and only thing he/she can is to delete the CC using the Braintree's vault manager and re-enter again!
Question:
How can I make drop-in to edit the selected card when the card's verification fails?
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
Vault manager does not allow the ability to edit the CVV (or any values) on the cards saved to the Vault. I can certainly pass this along as a future feature request.
This does not sound like the expected behavior if you are verifying prior to Vaulting in production and have CVV rules enabled to reject if the CVV does not match. If you are running into this error in production, please reach out to our Support team with an example. If this is in sandbox, please ensure you are using a test CVV to trigger the desired response.
I would like to accept payments in Bitcoin through Coinbase but I would like the charge to happen only after a certain period of time. In fact, the website I manage offers car-washings that, due to weather, can be cancelled at any time; instead of issuing expensive refunds, I have opted for charging customers only once the washing has been performed.
The website is built upon Laravel 5.1 and for Bitcoin payments I would like to use Coinbase as its APIs are very well documented.
Do you know if it is possible to delay payments with Coinbase PHP APIs?
Thank you
There is no direct support for this unfortunately, though it's not hard to issue refunds via the API for orders not completed.
I am looking to see if there is a way to use Paypal within Magento to have a authorize a charge to an account, and only do the capture several months later. We are designing a site where the lead time on orders could be months as the products need to be created once ordered.
Based on what I have seen in Paypals documentation (links below), I believe there is a time limit of about a month, however I thought it prudent to confirm this.
Thank you,
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/authcapture/
https://developer.paypal.com/docs/classic/admin/auth-capture/
Authorizations normally only allow up to 30 days from the original transaction date. There isn't a way to guarantee those funds for an extended period of time, though you can reauthorize for a short time, you would not be able to extend it for months at a time.
The best way to go about this would be to utilize Reference Transaction which allows you to run a new transaction off an existing transaction.
Documentation: https://developer.paypal.com/docs/classic/api/merchant/DoReferenceTransaction_API_Operation_NVP/
How this would work is you would run an intial charge usually a smaller amount then your system would store the transaction ID from the original payment and then you would use the reference transaction API to run a new transaction for the remaining amount at the time you are requesting.
Note, Reference Transaction is not enabled by default so you would need to contact PayPal Business Support to get a request submitting to activate this service.
We are upgrading our SagePay protocol from v2.23 to 3.0 to support surcharge fees. In v3.0 transaction registration post there are CreateToken and StoreToken which was not in the earlier version. What is the reason for create and store tokens? I went through the document but couldn't find a clue.
The link provided in the above post links to advice by one of our Sage Pay Partners so take a look at it.
Token allows shoppers the option of storing their card details (as a token) to their account on the payment page during their first purchase instead of having to set it up manually afterwards. Single click purchases for repeat customers will become much simpler and quicker to set up.
To view the Token Guide go to here, scroll to the bottom of the screen and select the Download the Documents option within your preferred method of integration (server, server inframe, direct). Within the guide it explains creating and storing a token.
If this is a service you would like enabled on your Sage Pay account our New Business team are available 0900-1800 on 0845 111 4466. Prices for Token are available via here. If you have any other questions, our 24/7 Support team can assist to on 0845 111 4455.
Sage Pay Support.
I believe this is related to their token system, allowing you to store and send card details as a token.
If you don't use their token system you don't need to worry about it.
Sage Pay have destroyed their content recently so it's hard to find anything, here's a quick article on their token system - http://www.metakinetic.com/blog/2013/09/sage-pays-token-system-and-advancements-in-payment-gateways/