Quickpay callback status fails:

Failed - The first 24 hours we will make a new callback every hour until success
HTTP Status code: 500

In my sites reports I see this (related) error:

QuickpayException: No amount for transaction @txn_id i QuickpayTransaction->amount() (linje 852 af /var/www/odc-mad.dk/public_html/sites/all/modules/quickpay/quickpay.transaction.inc).

Comments

ejvind chang created an issue. See original summary.

Xen’s picture

Status: Active » Postponed (maintainer needs more info)

I need more information. Which integration module (commerce/ubercart) is being used?

ejvind chang’s picture

I am using ubercart 7.x-3.8

Xen’s picture

As far as I can tell, there's nothing that should call amount() in the callback. Any custom code/special handling of orders?

ejvind chang’s picture

Yes I do have some custom code that is handling orders - let me try to check if I can find a source for the error in there.

ejvind chang’s picture

After tracing a little more i found out that I get this error when trying a callback (http://odc-mad.dk/quickpay/1161/uc_quickpay/xpx_N7SfhQ4gUL4jyaRoosjIAr8N...)

No checksum in callback. Ignoring.

it seems to be missing $_SERVER['HTTP_QUICKPAY_CHECKSUM_SHA256'] in line 98 of transactionCallback() in quickpay.transaction.inc

What could be the reason for this?

Xen’s picture

Fanatically configured server perhaps?

Try adding


watchdog('quickpay_debug', '_SERVER: @dat', array('@dat' => print_r($_SERVER, TRUE)), 'debug');

before the other watchdog, wait for the callback to be triggered and see what $_SERVER contains.

William H. Olesen’s picture

I'm having the same or at least a similar problem. I hope you'll bear with me, as my tech skills and knowledge are quite limited

My setup is as follows: Drupal 7.50, Ubercart 7.x-3.10, Quickpay Payment gateway 7.x-2.0
Running on VPS on an Apache-serve running php 5.6.24-0.
At the moment the development site is running on a subdomain, but is fully accessible from the outside.

The payment goes through all the way and I'm able to make the capture in Quickpay Manager, but I'm getting this error in the syslog for each callback made by Quickpay, as well as the error message in the Quickpay Manager.

TYPE php
DATE Onsdag, Juli 27, 2016 - 14:27
USER Anonymous (not verified)
LOCATION http://www.enigma.williamolesen.dk/quickpay/83/uc_quickpay/8YW5wO51f6Yn5...
REFERRER
BESKED QuickpayException: No amount for transaction @txn_id in QuickpayTransaction->amount() (line 852 of /var/www/vhosts/enigma.williamolesen.dk/httpdocs/sites/all/modules/quickpay/quickpay.transaction.inc).
SEVERITY error
HOSTNAME 193.162.142.212
OPERATIONS

The server reports an error and submits this, according to the sysadmin:

[Wed Jul 27 13:36:19.175845 2016] [proxy_fcgi:error] [pid 21158] [client 193.162.142.212:48924] AH01071: Got error 'PHP message: PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0\n'

When inserting the snippet from Xen as shown in #7 into my template.php I get a huge error message as shown below.

• PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'debug' for column 'severity' at row 1: INSERT INTO {watchdog} (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array ( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => quickpay_debug [:db_insert_placeholder_2] => _SERVER: @dat [:db_insert_placeholder_3] => a:1:{s:4:"@dat";s:1940:"Array ( [USER] => enigma [HOME] => /var/www/vhosts/enigma.williamolesen.dk [FCGI_ROLE] => RESPONDER [protossl] => [HTTP_AUTHORIZATION] => [proxy-nokeepalive] => 1 [HTTP_HOST] => www.enigma.williamolesen.dk [HTTP_X_REAL_IP] => 5.103.108.3 [HTTP_CONNECTION] => close [HTTP_UPGRADE_INSECURE_REQUESTS] => 1 [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch [HTTP_ACCEPT_LANGUAGE] => da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4,nb;q=0.2,ca;q=0.2 [HTTP_COOKIE] => _ga=GA1.2.227914680.1462066495; SESS8f98145bb6c3064b84e7c681f8ef4171=CvfQuPhTXB7DrpQ6EEEjQppwujzlx5mpGuxkLWktNns; Drupal.tableDrag.showWeight=0; Drupal.toolbar.collapsed=0; has_js=1 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [SERVER_SIGNATURE] =>
Apache Server at www.enigma.williamolesen.dk Port 80

[SERVER_SOFTWARE] => Apache [SERVER_NAME] => www.enigma.williamolesen.dk [SERVER_ADDR] => 194.150.108.146 [SERVER_PORT] => 80 [REMOTE_ADDR] => 5.103.108.3 [DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [SERVER_ADMIN] => drift@rackhosting.com [SCRIPT_FILENAME] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs/index.php [REMOTE_PORT] => 48982 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => / [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME_FLOAT] => 1469621297.8024 [REQUEST_TIME] => 1469621297 [HTTP_REFERER] => ) ";} [:db_insert_placeholder_4] => debug [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => http://www.enigma.williamolesen.dk/ [:db_insert_placeholder_7] => [:db_insert_placeholder_8] => 5.103.108.3 [:db_insert_placeholder_9] => 1469621297 ) in dblog_watchdog() (line 163 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/modules/dblog/dblog.module).
• Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in theme_get_registry() (line 277 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/includes/theme.inc).
• PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'debug' for column 'severity' at row 1: INSERT INTO {watchdog} (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array ( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => quickpay_debug [:db_insert_placeholder_2] => _SERVER: @dat [:db_insert_placeholder_3] => a:1:{s:4:"@dat";s:2040:"Array ( [USER] => enigma [HOME] => /var/www/vhosts/enigma.williamolesen.dk [FCGI_ROLE] => RESPONDER [REDIRECT_protossl] => [REDIRECT_HTTP_AUTHORIZATION] => [REDIRECT_REQUEST_METHOD] => GET [REDIRECT_STATUS] => 404 [protossl] => [HTTP_AUTHORIZATION] => [proxy-nokeepalive] => 1 [HTTP_HOST] => www.enigma.williamolesen.dk [HTTP_X_REAL_IP] => 5.103.108.3 [HTTP_CONNECTION] => close [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 [HTTP_ACCEPT] => */* [HTTP_REFERER] => http://www.enigma.williamolesen.dk/ [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch [HTTP_ACCEPT_LANGUAGE] => da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4,nb;q=0.2,ca;q=0.2 [HTTP_COOKIE] => _ga=GA1.2.227914680.1462066495; SESS8f98145bb6c3064b84e7c681f8ef4171=CvfQuPhTXB7DrpQ6EEEjQppwujzlx5mpGuxkLWktNns; Drupal.tableDrag.showWeight=0; Drupal.toolbar.collapsed=0; has_js=1 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [SERVER_SIGNATURE] =>
Apache Server at www.enigma.williamolesen.dk Port 80

[SERVER_SOFTWARE] => Apache [SERVER_NAME] => www.enigma.williamolesen.dk [SERVER_ADDR] => 194.150.108.146 [SERVER_PORT] => 80 [REMOTE_ADDR] => 5.103.108.3 [DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [SERVER_ADMIN] => drift@rackhosting.com [SCRIPT_FILENAME] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs/index.php [REMOTE_PORT] => 48983 [REDIRECT_URL] => /favicon.ico [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /favicon.ico [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME_FLOAT] => 1469621298.1699 [REQUEST_TIME] => 1469621298 ) ";} [:db_insert_placeholder_4] => debug [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => http://www.enigma.williamolesen.dk/favicon.ico [:db_insert_placeholder_7] => http://www.enigma.williamolesen.dk/ [:db_insert_placeholder_8] => 5.103.108.3 [:db_insert_placeholder_9] => 1469621298 ) in dblog_watchdog() (line 163 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/modules/dblog/dblog.module).
• Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in theme_get_registry() (line 277 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/includes/theme.inc).
• PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'debug' for column 'severity' at row 1: INSERT INTO {watchdog} (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array ( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => quickpay_debug [:db_insert_placeholder_2] => _SERVER: @dat [:db_insert_placeholder_3] => a:1:{s:4:"@dat";s:1978:"Array ( [USER] => enigma [HOME] => /var/www/vhosts/enigma.williamolesen.dk [FCGI_ROLE] => RESPONDER [protossl] => [HTTP_AUTHORIZATION] => [proxy-nokeepalive] => 1 [HTTP_HOST] => www.enigma.williamolesen.dk [HTTP_X_REAL_IP] => 5.103.108.3 [HTTP_CONNECTION] => close [HTTP_CACHE_CONTROL] => max-age=0 [HTTP_UPGRADE_INSECURE_REQUESTS] => 1 [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch [HTTP_ACCEPT_LANGUAGE] => da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4,nb;q=0.2,ca;q=0.2 [HTTP_COOKIE] => _ga=GA1.2.227914680.1462066495; SESS8f98145bb6c3064b84e7c681f8ef4171=CvfQuPhTXB7DrpQ6EEEjQppwujzlx5mpGuxkLWktNns; Drupal.tableDrag.showWeight=0; Drupal.toolbar.collapsed=0; has_js=1 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [SERVER_SIGNATURE] =>
Apache Server at www.enigma.williamolesen.dk Port 80

[SERVER_SOFTWARE] => Apache [SERVER_NAME] => www.enigma.williamolesen.dk [SERVER_ADDR] => 194.150.108.146 [SERVER_PORT] => 80 [REMOTE_ADDR] => 5.103.108.3 [DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [SERVER_ADMIN] => drift@rackhosting.com [SCRIPT_FILENAME] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs/index.php [REMOTE_PORT] => 48986 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => / [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME_FLOAT] => 1469621397.7172 [REQUEST_TIME] => 1469621397 [HTTP_REFERER] => ) ";} [:db_insert_placeholder_4] => debug [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => http://www.enigma.williamolesen.dk/ [:db_insert_placeholder_7] => [:db_insert_placeholder_8] => 5.103.108.3 [:db_insert_placeholder_9] => 1469621397 ) in dblog_watchdog() (line 163 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/modules/dblog/dblog.module).
• Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in theme_get_registry() (line 277 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/includes/theme.inc).
• PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'debug' for column 'severity' at row 1: INSERT INTO {watchdog} (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array ( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => quickpay_debug [:db_insert_placeholder_2] => _SERVER: @dat [:db_insert_placeholder_3] => a:1:{s:4:"@dat";s:2106:"Array ( [USER] => enigma [HOME] => /var/www/vhosts/enigma.williamolesen.dk [FCGI_ROLE] => RESPONDER [REDIRECT_protossl] => [REDIRECT_HTTP_AUTHORIZATION] => [REDIRECT_REQUEST_METHOD] => GET [REDIRECT_STATUS] => 404 [protossl] => [HTTP_AUTHORIZATION] => [proxy-nokeepalive] => 1 [HTTP_HOST] => www.enigma.williamolesen.dk [HTTP_X_REAL_IP] => 5.103.108.3 [HTTP_CONNECTION] => close [HTTP_PRAGMA] => no-cache [HTTP_CACHE_CONTROL] => no-cache [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 [HTTP_ACCEPT] => */* [HTTP_REFERER] => http://www.enigma.williamolesen.dk/ [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch [HTTP_ACCEPT_LANGUAGE] => da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4,nb;q=0.2,ca;q=0.2 [HTTP_COOKIE] => _ga=GA1.2.227914680.1462066495; SESS8f98145bb6c3064b84e7c681f8ef4171=CvfQuPhTXB7DrpQ6EEEjQppwujzlx5mpGuxkLWktNns; Drupal.tableDrag.showWeight=0; Drupal.toolbar.collapsed=0; has_js=1 [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [SERVER_SIGNATURE] =>
Apache Server at www.enigma.williamolesen.dk Port 80

[SERVER_SOFTWARE] => Apache [SERVER_NAME] => www.enigma.williamolesen.dk [SERVER_ADDR] => 194.150.108.146 [SERVER_PORT] => 80 [REMOTE_ADDR] => 5.103.108.3 [DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [SERVER_ADMIN] => drift@rackhosting.com [SCRIPT_FILENAME] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs/index.php [REMOTE_PORT] => 48987 [REDIRECT_URL] => /favicon.ico [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /favicon.ico [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME_FLOAT] => 1469621397.999 [REQUEST_TIME] => 1469621397 ) ";} [:db_insert_placeholder_4] => debug [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => http://www.enigma.williamolesen.dk/favicon.ico [:db_insert_placeholder_7] => http://www.enigma.williamolesen.dk/ [:db_insert_placeholder_8] => 5.103.108.3 [:db_insert_placeholder_9] => 1469621398 ) in dblog_watchdog() (line 163 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/modules/dblog/dblog.module).
• Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in theme_get_registry() (line 277 of/var/www/vhosts/enigma.williamolesen.dk/httpdocs/includes/theme.inc).

Xen’s picture

Do you get the "No checksum in callback. Ignoring." message in the watchdog?

Try adding

watchdog('quickpay_debug', '_SERVER: @dat', array('@dat' => print_r($_SERVER, TRUE)), WATCHDOG_DEBUG);

On a new line before line 853 of quickpay.transaction.inc

William H. Olesen’s picture

I played around a bit before post #9 - armed with a php- and Drupal-wiser friend - and found that removing line 852 removed the error from the syslog and apparently doesn't cause any problems - at least not any that I can see.

Line 852:
throw new QuickpayException(t('No amount for transaction @txn_id', array('@txn_id', $this->data['id'])));

Anyway, I have now tried inserting Xens snippet. I hope I've done it right - the area around line 852 looks like this now:

    if (isset($this->data['amount'])) {
      return Quickpay::unwireAmount($this->data['amount'], $this->currency());
    } watchdog('quickpay_debug', '_SERVER: @dat', array('@dat' => print_r($_SERVER, TRUE)), WATCHDOG_DEBUG);
    throw new QuickpayException(t('No amount for transaction @txn_id', array('@txn_id', $this->data['id']))); 
  }

The quickpay debug reports this in the syslog:

_SERVER: Array ( [USER] => enigma [HOME] => /var/www/vhosts/enigma.williamolesen.dk [FCGI_ROLE] => RESPONDER [REDIRECT_protossl] => [REDIRECT_HTTP_AUTHORIZATION] => [REDIRECT_STATUS] => 200 [protossl] => [HTTP_AUTHORIZATION] => [proxy-nokeepalive] => 1 [HTTP_HOST] => www.enigma.williamolesen.dk [HTTP_X_REAL_IP] => 193.162.142.212 [HTTP_CONNECTION] => close [CONTENT_LENGTH] => 1193 [HTTP_ACCEPT] => */* [HTTP_QUICKPAY_CHECKSUM_SHA256] => 08dc38d64e5958d60ae3f32aa10fc630ab0c104754952cf8677840b86dddb84a [HTTP_QUICKPAY_RESOURCE_TYPE] => Payment [HTTP_QUICKPAY_ACCOUNT_ID] => 14447 [HTTP_QUICKPAY_API_VERSION] => v10 [HTTP_USER_AGENT] => QuickPay Callback Service (http://tech.quickpay.net/api/callback/) [CONTENT_TYPE] => application/json [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [SERVER_SIGNATURE] =>
Apache Server at www.enigma.williamolesen.dk Port 80

[SERVER_SOFTWARE] => Apache [SERVER_NAME] => www.enigma.williamolesen.dk [SERVER_ADDR] => 194.150.108.146 [SERVER_PORT] => 80 [REMOTE_ADDR] => 193.162.142.212 [DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [REQUEST_SCHEME] => http [CONTEXT_PREFIX] => [CONTEXT_DOCUMENT_ROOT] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs [SERVER_ADMIN] => drift@rackhosting.com [SCRIPT_FILENAME] => /var/www/vhosts/enigma.williamolesen.dk/httpdocs/index.php [REMOTE_PORT] => 39470 [REDIRECT_URL] => /quickpay/116/uc_quickpay/VTsGREiPxE2tqYm-jZW43h7NkyBfYeQffUhWk2T63Gw [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.0 [REQUEST_METHOD] => POST [QUERY_STRING] => [REQUEST_URI] => /quickpay/116/uc_quickpay/VTsGREiPxE2tqYm-jZW43h7NkyBfYeQffUhWk2T63Gw [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME_FLOAT] => 1469994154.6136 [REQUEST_TIME] => 1469994154 [HTTP_REFERER] => )

There is no reports of "No checksum in callback. Ignoring.", but I have to admit that I'm unsure of what you mean by "watchdog" - I suspecting it's not the same as the syslog (Recent log messages).
As I've mentioned previously I'm not overly strong technical - in fact just a journalist gone a few technologies too far ;)

Xen’s picture

Watchdog is where Drupal logs messages, which it then directs somewhere. The most common case is when dblog is enabled, which gives you the "Recent log messages" page. The syslog module redirects the messages to the Unix syslog daemon, which can log it to files, ignore it or pass it to another server. You obviously have dblog enabled.

Two issues here. For starters I don't get why it tries to get the amount in the callback. Secondly, why it can't load the amount. Try fixing the start of the amount function to look like this:

    if (!$this->loaded) {
      watchdog('quickpay_debug', 'Loading: @dat', array('@dat' => print_r($this->data, TRUE)), WATCHDOG_DEBUG);
      $this->status();
    }
William H. Olesen’s picture

Sorry for not replying sooner - I didn't get any notification about your post for some reason.

I'll test your suggestion in a few days and report back :)

William H. Olesen’s picture

I tried inserting the snippet and I got no other info than the ones I got to begin with.

In Recent log messages:
php
DATE Lørdag, August 13, 2016 - 00:19
USER Anonymous (not verified)
LOCATION https://www.fckfc.dk/quickpay/241/uc_quickpay/BCvjfc37s8PAGCVw1I7qVlGWO9...
REFERRER
BESKED QuickpayException: No amount for transaction @txn_id in QuickpayTransaction->amount() (line 853 of /var/www/vhosts/fckfc.dk/httpdocs/sites/all/modules/quickpay/quickpay.transaction.inc).
SEVERITY error
HOSTNAME 193.162.142.210

And in Quickpay Manager:

Failed - The first 24 hours we will make a new callback every hour until success
HTTP Status kode: 500
URL: https://www.fckfc.dk/quickpay/241/uc_quickpay/BCvjfc37s8PAGCVw1I7qVlGWO9...

After that, I can see from Recent log messages that it makes that call every hour the following 24 hours - as promised.

This is when the original line 852 is included throw new QuickpayException(t('No amount for transaction @txn_id', array('@txn_id', $this->data['id'])));

As mentioned I out commented this and it works and I got no errors anywhere that I can see.

Would you like me to try inserting your snippet while the mentioned line is out commented?

William H. Olesen’s picture

Whops - I got this one 20 minutes later after having changed back to having outcommented line 852.

TYPE quickpay
DATE Lørdag, August 13, 2016 - 00:40
USER Anonymous (not verified)
LOCATION https://www.fckfc.dk/quickpay/241/uc_quickpay/BCvjfc37s8PAGCVw1I7qVlGWO9..
REFERRER http://www.google.dk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDMQF...
BESKED Arguments failed hash check. Either someone is trying to abuse the site, or there is a bug somewhere. Path: quickpay/241/uc_quickpay/BCvjfc37s8PAGCVw1I7qVlGWO9..
SEVERITY warning
HOSTNAME 66.102.6.183

Xen’s picture

Removing the line is going to do no good as it simply the line that notifies the rest of the system that something isn't as it's supposed to be. Removing it just causes it to ignore it, which can cause all sorts of trouble later.

Try placing this before the problematic throw statement:

      watchdog('quickpay_debug', 'No amount: @dat', array('@dat' => print_r($this->data, TRUE)), WATCHDOG_DEBUG);
      watchdog('quickpay_debug', 'No amount backtrace: @dat', array('@dat' => print_r(debug_backtrace(), TRUE)), WATCHDOG_DEBUG);

You'll want to mail me the logged statements to xen [at] xen.dk, as they're likely to contain moderately sensitive data.

  • Xen committed 7472c2e on 7.x-2.x
    Issue #2736711 by Xen: Quickpay callback fails
    
    Apparently there's no...
Xen’s picture

Status: Postponed (maintainer needs more info) » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.