First of all; this is not for version 6.x-1.4, but for the version posted in #591092: Some 'Todo' implementations. Just couldn't select it.

I have noticed that something strange happens when Ogone returns the post-sale parameters after a succesful payment. This is what I get in the Dblog:

Type ogone payment
Datum maandag, april 26, 2010 - 15:32
Gebruiker Anoniem
Lokatie http://www.mc-solution.nl/?q=cart/ogone_callback&orderID=37&currency=EUR&amount=14%2E95&PM=iDEAL&ACCEPTANCE=0000000000&STATUS=9&CARDNO=11%2DXXXX%2D11&ED=&CN=Buyer+name&TRXDATE=04%2F26%2F10&PAYID=6959287&NCERROR=0&BRAND=iDEAL&IPCTY=&CCCTY=NL&ECI=5&CVCCheck=&AAVCheck=&VC=&SHASIGN=20E6760365EF322E603A824A35443C9D3EF10247&IP=212%2E83%2E242%2E245
Doorverwijzer
Bericht Callback from 213.254.248.98 for non existing order <>
Zwaarte waarschuwing
Hostnaam 213.254.248.98
Handelingen

I think it has something to do with line 353 in uc_ogone_payment.module:
$order = db_fetch_object(db_query("SELECT order_id, uid, order_status, data FROM {uc_orders} WHERE order_id = %d", $order_id));

In the code below line 353 the variable $order is used. If there is no $order, then the following will be reporterd to the watchdog:

else {
    watchdog(
      'ogone payment',
      'Callback from %remote_ip for non existing order <%order_id>', 
      array('%remote_ip' => $_SERVER["REMOTE_ADDR"], '%order_id' => $order_id),
      WATCHDOG_WARNING
    );
  }

But %order_id doens't have a value!

I don't know why I get this error message, because Ogone reports every payment successful. The fact is that the status of an order doesn't get updated and therefore every order keeps the status 'pending'. Hmm, guess I'm rolling back to 6.x-1.4...

CommentFileSizeAuthor
#3 screenshot_007.png53.16 KBygerasimov

Comments

keesje’s picture

Than this is feedback on this patch: http://drupal.org/node/591092
I will crosspost.

ygerasimov’s picture

Dear Hans,

It is very strange that your url has so many GET variables. Possibly you need to set up POST reply method in Ogone settings (on website of Ogone). As you can see all variables are sent through GET and in Ogone module they are gathered with POST array (function uc_ogone_payment_callback() starting from line 369):

  $sha1_string = $_POST['orderID'].$_POST['currency'].$_POST['amount'].$_POST['PM'].$_POST['ACCEPTANCE'].
      $_POST['STATUS'].$_POST['CARDNO'].$_POST['PAYID'].$_POST['NCERROR'].$_POST['BRAND'].$sha1_suffix;
  $sha1_key=strtoupper(sha1($sha1_string));
  
  $order_id = $_POST['orderID'];
  $status_id = $_POST['STATUS'];
  $amount = $_POST['amount'];

In your particular example orderID is 37.

Please try and come back with results.

ygerasimov’s picture

StatusFileSize
new53.16 KB

Under Technical information menu item, tab Technical information. See attached screenshot where to change from GET to POST.

arnebrasseur’s picture

Component: Miscellaneous » Documentation

This should be added to the README, it doesn't yet take into account setting up server-to-server configuration.

There's currently two README's in CVS (readme.txt and readme1.txt). Is this by accident?

ygerasimov’s picture

Looks like readme1.txt in dev version is for d6 branch. I believe we need to provide new readme as backend of ogone might have been changed since readme was written.

Kees, what do you think about moving code http://drupal.org/node/591092 to 6.x-2 branch?

keesje’s picture

Status: Active » Needs work

@ygerasimov: We discussed this, you are co-maintaining this module now. Please feel free to branche this baby and fix her.

keesje’s picture

Status: Needs work » Closed (fixed)

Readme is updated, but server-server documentation is out of my league (never used it), please post patch for this.