Git Product home page Git Product logo

checkout-ubercart-module's Introduction

N|Solid

Ubercart Extension

Checkout.com is a software platform that has integrated 100% of the value chain to create payment infrastructures that truly make a difference.

This extension allows shop owners to process online payments (card / alternative payments) using:

  • Frames.js - Payment form embedded within your website
  • Checkout.js - Customisable payment widget
  • Checkout.js Hosted - Redirection to a customisable page on Checkout.com's servers
  • Alternative payments - Shoppers can pay using local payment options (Sofort, iDEAL, Boleto ... etc.)

Installation

You can find a full installation guide here

Initial Setup

If you do not have an account yet, simply go to checkout.com and hit the "Get Test Account" button.

Keys

There are 3 keys that you need to configure:

  • Secret Key
  • Public Key
  • Private Shared Key

The Private Shared Key is generated when you configure the Webhook URL in the Checkout HUB.

URLs

In order to successfully complete 3D Secure transactions, and to keep Ubercart order statuses in sync you need to configure the following URLs in your Checkout HUB as follows:

Type URL Example Description
Redirections Success example.com/checkoutpayment/success Redirect after 3D Secure
Redirections Fail example.comexample.com/checkoutpayment/fail Redirect after 3D Secure
Webhook example.com/checkoutpayment/webhook Sync Ubercart

You can see a guide on how to set the URLs in the HUB here ; You can find test card details here

Going LIVE

Upon receiving your live credentials from your account manager, here are the required steps to start processing live transactions:

  • In the plugin settings, place your live keys
  • Switch the Endpoint URL mode to live.
  • Make sure you have configured the Redirection and Webhook URLs correctly in your live Checkout.com HUB

Reference

You can find our complete Documentation here.
If you would like to get an account manager, please contact us at [email protected]
For help during the integration process you can contact us at [email protected]
For support, you can contact us at [email protected]

Checkout.com is authorised and regulated as a Payment institution by the UK Financial Conduct Authority.

checkout-ubercart-module's People

Contributors

avish-bisbeehurry-cko avatar david-fiaty-cko avatar gilles-coeman-cko avatar ioan-ghisoi-cko avatar nicolas-maalouf-cko avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

checkout-ubercart-module's Issues

Hub Webhook tests fail

Issue

If the web-hooks are operational & properly configured it is possible to test the the connection from the Hub. This test always fails, even if the web-hooks work.

Steps to recreate

  1. On the Hub go to Administration > Channel Settings > Webhooks Manage > Test
  2. Choose any event and click Trigger event
  3. The responds will be FAILED

Plan creation before store initialization.

If we install Ubercart, Checkout.com, and Checkout.com Recurring Payments and directly create a payment plan then we will get the following messages:

capture

We get a success message even though it is not successfully created, but more importantly the error explains that we don't have the right currency. When looking at the Drupal variable uc_currency_code we discover that the value is Null.

When we go to admin/store/settings/store and find the Currency format tab we can see that the default currency is set:

capture

If we save this page, the variable uc_currency_code is initiated and we can successfully create payment plans.

Subscriptions for new users fails.

When creating a subscription for a user that has done payment through Checkout.com there is no problem, but whenever a new user (or a user with no previous transactions through the platform) tries to make a payment then an error will be returned.

screenshot-2018-1-22 error cko ubercart store

It seems that the customer needs to be created before allowing to add a subscription otherwise the gateway returns an error.

Possible fix 01.

We can change the subscription flow to always include two charge request for any one subscription. This would require us to make the current flow.

  1. Create payment token
  2. Charge first payment
  3. Get the Customer ID and the Card ID
  4. Charge subscription
  5. Verify both charges

This however could result in succeeding to make the first charge without successfully enabling the subscription?

Possible fix 02.

We can change the subscription flow so we create a customer before any charge is made. This seems the safest option to ensure that all charges fail or succeed together.

  1. Create card token
  2. Create customer with the token.
  3. Charge subscription and first payment

This method doesn't work for local payments. So it shouldn't be used.

Manual capture & cancel doesn't work

The page in question: website.tld/admin/store/orders/ordernumber.

Capture

When using the Capture this payment. button, on the order view page, we get the following error.

Notice: Trying to get property of non-object in Creditcard->captureCharge() (line 425 of /var/www/checkoutdev.coeman.me/public_html/sites/all/modules/uc_checkoutpayment/includes/Methods/Creditcard.php).

Note: We still get the success message even though it hasn't.

The payment was captured.

Cancel

When using the Cancel this payment. button, on the order view page, we get a 500 http error. The following is added to the PHP error log file.

PHP Fatal error: Call to undefined method Creditcard::cancelCharge() in var/www/checkoutdev.coeman.me/public_html/sites/all/modules/uc_checkoutpayment/uc_checkoutpayment.module on line 709, referer: https://checkoutdev.coeman.me/admin/store/orders/543).

Payment mode has no effect on Lightbox mode

Issue

Choosing card or local payment when configuring the Payment Mode has no effect on the CheckoutJS Lightbox.

Steps to reproduce

  1. Set Payment Mode to cards.
  2. Set Integration method to Lightbox | CheckoutJS.
  3. Create an order via the shopping card.

HTML Page begins with <

Some pages begin with an added <, which messes up the HTML. The pages afflicted with this error are:

  • cart/checkout/review
  • uc_checkoutpayment/process_charge

HTML document starts with double opening angle brackets.

<<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
  "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"

The rendered body begins with a < in the left top corner.

screenshot-2017-12-5 review order cko ubercart store

Data loss when uninstalling

Issue

If the module in re-installed, then the webhooks database is deleted. This causes a lot of functionality to disappear. Flagged orders are no longer flagged, and capture, cancel ``, and refund `options are no longer shown for orders made before the uninstall.

Steps to recreate

  1. Disable the module
  2. Uninstall the module
  3. Enable the module

Error when creating payment plan

Everytime a new payment plan is created the following error will be given:

The supplied values aren't valid.

This however has no merit, since the payment plan is successfully created.

Declined payments not shown

Issue

Declined payments aren't shown and processed by the web server. Their status remains Pending even after the web hook with the fail has been received.

Steps to recreate

  1. Make any payment with faulty details
  2. Check the admin order view.

Possible fixed

  • Show declined cards as Abandoned until the status changes.
  • Add an admin comment detailing the decline event.

Payment method not shown

It would be helpful if the admin can see which payment method was used (debit, credit, IDeal, PayPal, ect.)

Going to store give's an error

When going to the store page we get the following error:

Notice: Undefined index: 49990 Orders 314 in uc_checkoutpaymentplan_page_alter() (line 119 of /var/www/ubercart.cmndev.eu/public_html/sites/all/modules/uc_checkoutpaymentplan/uc_checkoutpaymentplan.module).

Enter date with a datefield

Issue

At this point all date and date time field are represented by text field with a description explaining the format of the string necessary. We could make it more user friendly.

Places where this happens

  1. Checkout.com settings in the Synchronization tab.

Sollutions

  • Add Date_field module when installing our module
  • Change the text field to a drop down.

Refund message is wrong

The page in question: website.tld/admin/store/orders/ordernumber.

Refund payment

When a full refund has been made we get an empty line added to the admin comments. When resyncing with the Checkout.com service we get the following line:

Partial refunded made: €5 994.00 of €5 994.00. (Id: charge_test_BE3919EC440T74EC0694)

These leave us with two issues:

  1. Refunds are added twice to the balance counter. Resulting in the wrong calculation.
  2. The message is wrong since it speaks of a partial refund.

Show loading symbol when loading.

If it takes a long time for the CheckoutJS to load there should be a loading symbol, so customers know that something is coming. Otherwise they might leave before the embed loads.

Frames don't work in the cart.

Issue

Choosing Embedded | Checkout Frames (Cards only) when configuring the Integration method results in no way to checkout with the shopping cart. The JavaScript doesn't load.

Steps to reproduce

  1. Set Integration method to Embedded | Checkout Frames (Cards only).
  2. Create an order via the shopping card.
  3. The frames don't load.

Note: Frames still work in the MOTO enviroment.

Repeated refund fails

When trying to do a repeated partial refund it will give an error back, and not execute the error.

The error

You cannot refund before you captured the payment

Recurring payments with faulty keys

Whenever you visit a page which loads subscription information before you properly setup the module (read: before entering the secret key) the page will return an error.

Save customer card details

Seemingly save the card details so customers can pick previously used cards when making repeat purchases.

The sensitive details should never be saved on the store server, but only on the CKO server.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.