I have a Sitecore 7.2 website, running SES 2.2 that uses Authorize.Net as it's payment provider.
For the past couple of months, we have been able to send test orders through to Authorize.Net using a Sandbox Developer account, however, now as we approach the launch of the website, we cannot get through to the live Authorize.Net account.
In our Authorize.Net content item, under Sitecore/Content/Home/Business Catalog/Payments/AuthorizeNet we have updated the username and password to those provided to us by Authorize.Net for our live Merchant account, updated the payment provider URL to https://secure.authorize.net/gateway/transact.dll and in the settings change x_test_request to FALSE.
The content item has been saved and published to web.
However, we cannot get through to authorize.net to accept payment.
We have spoken with Authorize.Net's developer support and were told that the error can be triggered by 1 of 3 things:
The account is inactive (we know this is not the case, because I was
currently logged in).
The site code / shopping cart settings are posting to the test URL (the rep confirmed we are posting to the
proper url)
The Transaction Key and/or API Login ID is invalid.
We have entered the Transaction Key (password in content item) and Login ID (username) exactly as provided by authorize.net, but still have not had any luck.
Has anyone experienced anything like this?
Related
I am using the hosted form payment approach to accepting payments from users on my site. I dont see any examples of how to go about verifying the payment once the user is redirected back to my site. Here is how I'm trying to approach it:
Generate a token/form based on the cart
Post to the form url and send the user away
User returns to a verifying page
I have set up a webhook for all payment notifications
I receive the notification
?????
Verify the payment status and price are correct
Navigate the user away from the verifying screen to the next page
In step 6 all i have is the token that was generated for the transaction and the webhook doesnt provide that token back to me. How do I say "this transaction belongs to this user who is waiting to be verified"?
You can use the getTransactionDetailsRequest in their Transaction Reporting API to get the transaction details. The best place to put this information is in the refTransId field which is a value you can pass in as part of your transaction.
Basically I understand how to integrate Stripe payment into Flask, I'm using the official website (https://stripe.com/docs/payments/accept-a-payment?integration=elements) as a guide. In the guide the user is taken to a success page after the payment is successful. What I want to do upon a successful payment is collect the user's email, create a randomized password, and then email that password to the user. I've learned how to grab information from the session id using this page (https://stripe.com/docs/payments/checkout/custom-success-page). What I'm concerned about is that a user might go to the success page, get an account, and bypass the required payment.
My idea to solve that is to get the session info using this line:
session = stripe.checkout.Session.retrieve(request.args.get('session_id'))
and then before doing anything else check if it's none. If it's none, it will display an error page, if it is not none then it will create an account for the user. Would that work? Or would people just be able to change the session_id in the url until they find a number that is a valid session?
If that doesn't work, all I really want to do is upon successful payment create an account for the user using their email and a randomized password. How do I do that?
You're on the right track. Generally the flow is:
Customer is redirected to Checkout
Customer pays
Checkout redirects customer back to your success_url
You fetch the Checkout Session using the ID in the URL to confirm a valid payment
For #4 you can do various things to make sure people can't guess a Checkout Session ID (which would be unlikely due to their length and complexity). I suggest checking to see if the successful payment happened within a certain timeframe, like the past hour or past day, for example.
I am using Stripe to handle my payments for my own rental website. (Backend - DJANGO)
Previously, I was using Stripe ChargesAPI and was manually sending out payouts to the Host of the property but I came to know that it can be automated by using Stripe PaymentIntentsAPI.
I have successfully managed to onboard my customers to receive payments in their bank accounts using Stripe Express.
After creating the payment intent and passing to the client I can charge their account as well as update my database for the booking.
The problem I am facing here is after the payment is done, I want to redirect the customer to the success page or payment failure page which I was able to do it by passing my reservation ID and updating it as payment received which I now do by using Webhooks.
How can redirect my customer to the success page showing the receipt of the booking?
You'll have to setup Payment Intent using a custom payment flow.
Briefly, how it works:
Capture your user's credit/debit card information and send a request to Stripe to authorize the card. If any additional verification checks are needed, Stripe provides you with an easy way to handle this
After authorization is complete, you capture the payment
If payment is successful, you show the user a success page, if not you show them an error message
Here's a link to the documentation: https://stripe.com/docs/payments/accept-a-payment?integration=elements
We currently accept credit cards by phone (entering the order info into the Virtual Terminal) as well as on the website (OpenCart, using the built-in Authorize.net AIM module).
Problem: when order is placed on website, the customer receives 2 E-mails - 1 from our site, 1 from Authorize. The Authorize E-mail, being plaintext, looks ugly AF, and my boss wants to have it disabled.
Attempt # 1: looked in the Authorize.net AIM plugin/module settings. No such option.
Attempt # 2: in the Authorize.net account, under "Settings -> E-mail Receipt", there is a checkbox "Email transaction receipt to customer (if email address is provided)".
Result #2: unfortunately, this disables ALL transaction E-mails - from website transactions (OK) and from Virtual Terminal phone-order transactions (NOT cool). We have to provide an E-mail receipt to phone customers.
Attempt #3: in the OpenCart system, editing file:
catalog/controller/extension/payment/authorizenet_aim.php
to comment out the line
$data['x_email'] = $order_info['email'];
Result #3: during checkout, even if a valid E-mail is entered, upon trying to submit the order, the "Email address is required" error message appears.
So...
Can't disable it in Authorize plugin/module in OpenCart.
Can't disable it in Authorize Account Settings.
Can't just delete the E-mail from the array of data that OpenCart collects during checkout.
How can I disable the Authorize.net E-mail (and ONLY the Authorize.net E-mail, I still want the website receipt to go out) on a site built on OpenCart 3.0?
Found the solution (via Authorize.net Developers Forum). Simpler than I expected:
Open file: public_html/catalog/controller/extension/payment/authorizenet_aim.php
Find line: $data['x_relay_response'] = 'false';
Add after: $data['x_email_customer'] = 'false';
This allows the checkout process to complete without errors, and sends the transaction to Authorize.net along with the instruction to not E-mail the customer.
This isn't a great solution but could you change the email address that gets sent to Authorize.net to be the store admin email, in that case it won't give you the "Email address is required" error message and you'll get that email instead of the customer.
In attempt number 3, can you confirm whether OpenCart gives the error about the email being required or if Authorize.Net gives that error? If Authorize.Net provides the error it may be reconciled by adjusting the payment form settings in Authorize.Net:
1. Sign into Authorize.Net
2. Account > Payment Form > Form Fields
3. Make sure the email field isn’t checked as required.
4. Save your changes at the bottom of the page
On Drupal8 board /admin/config/account setting, I've checked box that allow users to register themselves and get approve from admin.
I’ve created a new user account and got confirmation as below:
“Thank you for applying for an account. Your account is currently pending approval by the site administrator.
In the meantime, a welcome message with further instructions has been sent to your email address.”
I’ve never got welcome message even so I could see the user that I’ve created under /admin/people - it was blocked.
I’ve checked spam folders, used different browsers but there were no confirmation email as such…
So, I as admin, unblocked this account - but I still could not login since I don’t have any confirmation email with password.
I could only login user if I, as admin will provide login id and password for user.
Is it possible on Drupal 8 to allow users register themselves and receive confirmation email?
If so, how to do so?
Or there is only admin could register the users and users could not register themself?
Thanks.
SMTP server requires authentication to be enabled.
I’ve tried to send and test sending mail using account that is not connected to my hosting - it wouldn’t work.
So, I have set up a mailbox in the account, updated its details in SMTP AUTHENTICATION section as well as in E-MAIL OPTIONS section.
I sent an email to my test account by saving the configuration and it was successfully delivered.
So, the users could sign up, get confirmations by email and register themselves by changing their passwords.