Yes, I set such payment provider, but I dont understand how it finalize order? because now it doesnt work. My form send request to payfort payment system, than customer submit his credit card info and if all correct it redirect to site and backet isnt empty and we doesnt have order in the list in teacommerce
The first part you should do is to make the GeneratePaymentForm method work. When that works and it redirects to Payfort - next is to figure out how Payfort makes a callback. If it doesnt make that - then override FinalizeAtContinueUrl and then Tea Commerce will execute the callback method when the continue url is hit.
I got teaCommerceContinueUrl value from method GenerateHtmlForm and in tea commerve I got message "Thank you for your order" and now backet is empty, but in backend this order is not Authorized and Payment state is Initialized.
How I can set it like Authorized?
<form action="http://www.kahve.sa/base/TC/PaymentCallback/1/Payfort29/d1c0d5ed-fa85-4a0c-b7ac-cbee36e2b260/b1a2a33ecac116b02add12cc20595faf33de53cbd730ab44e3f4168b5819c973.aspx" method="post"><input type="submit" class="btn btn-success" value="Accept and pay"></input></form>
The backet is moved to "finalized" in the frontend because a callback can be several minutes to get from a server to server. Then you need to use the continue url as the callback url OR if the gateway support a true callback that is the way to go. What is the case with the gateway you use?
How should I use ContinueUrl like path in browser or like action in form? or it doesnt matter, but if so I dont understand why it didn`t finalize order in backend
So it looks like your provider supports true callback - then don't use FinalizeAtContinueUrl. Now you need to be sure your code is on a live domain so the payford gateway can make a server to server call. Then write some info to the disk in the callback to see things work and that they callback is executed.
Can you explain why do we need method ProcessCallback? maybe here I have something wrong
and why It returned CallbackInfo? what should be correct CallbackInfo?
Process Callback is the one that makes sure the order is finalized. So return a CallbackInfo object with the right info and when the callback is executed the order will be finalized. You would also have security features in the callback with hashes to make sure that the info is from the right origin.
Hi Anton
I don't know anyone that can help with this except us at Tea Commerce. Properly other people that can help - I just don't have the contact to them and can force them to help on the forum :)
I'm sorry to hear that. Is your callback - NEVER called? Try add logging at the top of the callback method and check the umbraco log file. If the callback is never called then your site isnt available for the gateway on a live URL or the gateway never make the call. Tried to debug that?
How I can finalize order?
I have payment method that have only form, maybe I need finalize url that will redirect to after order will paid. How I can do this?
Could you use the invoice payment provider. That just approves the order - properly what you want to do.
Kind regards
Anders
Yes, I set such payment provider, but I don
t understand how it finalize order? because now it doesn
t work. My form send request to payfort payment system, than customer submit his credit card info and if all correct it redirect to site and backet isnt empty and we doesn
t have order in the list in teacommerceIf you use Payfort you need to make a new payment provider for Tea Commerce to get it work. See this open source project: https://github.com/TeaCommerce/Payment-providers
Ok, Thank you! I will try
Does anybody have example with payfort payment provider?
Hi Anton
The first part you should do is to make the GeneratePaymentForm method work. When that works and it redirects to Payfort - next is to figure out how Payfort makes a callback. If it doesnt make that - then override FinalizeAtContinueUrl and then Tea Commerce will execute the callback method when the continue url is hit.
Kind regards
Anders
Thank you, I will try
I got teaCommerceContinueUrl value from method GenerateHtmlForm and in tea commerve I got message "Thank you for your order" and now backet is empty, but in backend this order is not Authorized and Payment state is Initialized.
How I can set it like Authorized?
The backet is moved to "finalized" in the frontend because a callback can be several minutes to get from a server to server. Then you need to use the continue url as the callback url OR if the gateway support a true callback that is the way to go. What is the case with the gateway you use?
What do you mean about gateway? I added new class to TeaCommerce.PaymentProviders
Can you write example of this? "Then you need to use the continue url as the callback url"
See line 27 of this: https://github.com/TeaCommerce/Payment-providers/blob/master/Source/TeaCommerce.PaymentProviders/Classic/Paynova.cs
I have public override bool FinalizeAtContinueUrl { get { return true; } }
How should I use ContinueUrl like path in browser or like action in form? or it doesn
t matter, but if so I don
t understand why it didn`t finalize order in backendYou have this line:
htmlForm.InputFields["callbackurl"] = teaCommerceCallBackUrl;
So it looks like your provider supports true callback - then don't use FinalizeAtContinueUrl. Now you need to be sure your code is on a live domain so the payford gateway can make a server to server call. Then write some info to the disk in the callback to see things work and that they callback is executed.
Kind regards
Anders
Can you explain why do we need method ProcessCallback? maybe here I have something wrong and why It returned CallbackInfo? what should be correct CallbackInfo?
Process Callback is the one that makes sure the order is finalized. So return a CallbackInfo object with the right info and when the callback is executed the order will be finalized. You would also have security features in the callback with hashes to make sure that the info is from the right origin.
Kind regards
Anders
Do you know somebody who can help us with this? because it doesn`t want to finalize order only cart is empty, or what part of code I can show you?
Hi Anton I don't know anyone that can help with this except us at Tea Commerce. Properly other people that can help - I just don't have the contact to them and can force them to help on the forum :)
Please read about our Confidence product which is what gives you the help you need for this I think: https://teacommerce.net/products/confidence/
Kind regards
Anders
Thank you, but I spent a lot time and I cannot fix this so I don`t want to use tea commerce any more
I'm sorry to hear that. Is your callback - NEVER called? Try add logging at the top of the callback method and check the umbraco log file. If the callback is never called then your site isnt available for the gateway on a live URL or the gateway never make the call. Tried to debug that?
Kind regards
Anders
is working on a reply...