CiviCRM Community Forums (archive)

*

News:

Have a question about CiviCRM?
Get it answered quickly at the new
CiviCRM Stack Exchange Q+A site

This forum was archived on 25 November 2017. Learn more.
How to get involved.
What to do if you think you've found a bug.



  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using CiviContribute (Moderator: Donald Lobo) »
  • Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter
Pages: [1]

Author Topic: Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter  (Read 1230 times)

mwcourtney

  • I’m new here
  • *
  • Posts: 11
  • Karma: 0
  • CiviCRM version: 3.4.7
  • CMS version: Joomla 2.5.4
  • MySQL version: 5.5.23-55
  • PHP version: 5.2.17
Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter
July 13, 2012, 09:40:24 am
I had an automatic recurring billing transaction process today through Authorize.Net, however, CiviCRM Contribution payment status appears as Pending (Transaction Incomplete).
I have the Silent Post URL entered in the Authorize.Net account settings as per the 4.1.x wiki documentation.

When I enter https://airase.org/administrator/components/com_civicrm/civicrm/extern/authorizeIPN.php in a browser I get: Failure: Missing Parameter. I am not sure this is by design, but, am assuming has something to do with the payment status for ARB transactions in Civi Contributions appearing as Pending.

Could someone please enlighten me to a greater understanding.

I am using CiviCRM 4.1.5 with Joomla 2.5.6

Thanks in advance

Donald Lobo

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 15963
  • Karma: 470
    • CiviCRM site
  • CiviCRM version: 4.2+
  • CMS version: Drupal 7, Joomla 2.5+
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter
July 13, 2012, 04:18:40 pm

that is by design. The IPN expects information in the POST/GET that matches various entries in the DB before it will process it.

For paypal standard, i use a fake IPN post like this:

Code: [Select]
#!/bin/sh                                                                                                                                   

curl http://crm_42/sites/crm_42/modules/civicrm/extern/ipn.php?reset=1\&module=event\&contactID=106\&participantID=54\&contributionID=16\&eventID=7 -d mc_gross=220.00 -d txn_id=5M6789701L0511744 -d invoice=ae9eaba77439f1bf712fb71f24e7a18b -d payment_status=Completed -d payment_fee=11.00

You'll need to figure out the same for auth.net

lobo


A new CiviCRM Q&A resource needs YOUR help to get started. Visit our StackExchange proposed site, sign up and vote on 5 questions

flug

  • I post frequently
  • ***
  • Posts: 126
  • Karma: 12
Re: Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter
August 30, 2014, 05:14:18 pm
I've had a lot of problems trying to test recurring transactions.  The problem is that with our processor, authorize.net, the recurring transactions are not processed until 2:30am every day.  This makes testing a major pain.  (I'd introduced a bug somewhere that stopped email from being sent on recurring transactions.  But it was pretty hard to get to the bottom of it when the problem only happened at random intervals at 2:30am--and it didn't happen to leave a trace in the error log . . . )

I did a bit of research today on how to test authorize.net silent post functionality, that causes this problem.

One approach would be to use a curl call as Lobo posts above.  Another would be to put together a form you could submit to authorizeIPN.php with that same post data.

I added a section at the bottom of the Wiki page on setting up authorize.net net with the details:

  http://wiki.civicrm.org/confluence/display/CRMDOC/Authorize.net+Configuration

The form method was easiest for me to work with.  Using that form I was able to quickly test what happens when a recurring transaction is processed, fix problems with the email messages that were sent, etc.

The form to test authorizeIPN.php looks something like this:

Code: [Select]
<form action="http://crm_42/sites/crm_42/modules/civicrm/extern/authorizeIPN.php" method="post">

<input type="hidden" name="x_response_code" value="1"/>
<input type="hidden" name="x_response_subcode" value="1"/>
<input type="hidden" name="x_response_reason_code" value="1"/>
<input type="hidden" name="x_response_reason_text" value="This
transaction has been approved."/>
<input type="hidden" name="x_auth_code" value=""/>
<input type="hidden" name="x_avs_code" value="P"/>
<input type="hidden" name="x_trans_id" value="6456235754test"/>
<input type="hidden" name="x_invoice_num" value="13514"/>
<input type="hidden" name="x_description" value=""/>
<input type="hidden" name="x_amount" value="1.00"/>
<input type="hidden" name="x_method" value="CC"/>
<input type="hidden" name="x_type" value="auth_capture"/>
<input type="hidden" name="x_cust_id" value="102"/>
<input type="hidden" name="x_first_name" value="John"/>
<input type="hidden" name="x_last_name" value="Smith"/>
<input type="hidden" name="x_company" value=""/>
<input type="hidden" name="x_address" value=""/>
<input type="hidden" name="x_city" value=""/>
<input type="hidden" name="x_state" value=""/>
<input type="hidden" name="x_zip" value=""/>
<input type="hidden" name="x_country" value=""/>
<input type="hidden" name="x_phone" value=""/>
<input type="hidden" name="x_fax" value=""/>
<input type="hidden" name="x_email" value=""/>
<input type="hidden" name="x_ship_to_first_name" value=""/>
<input type="hidden" name="x_ship_to_last_name" value=""/>
<input type="hidden" name="x_ship_to_company" value=""/>
<input type="hidden" name="x_ship_to_address" value=""/>
<input type="hidden" name="x_ship_to_city" value=""/>
<input type="hidden" name="x_ship_to_state" value=""/>
<input type="hidden" name="x_ship_to_zip" value=""/>
<input type="hidden" name="x_ship_to_country" value=""/>
<input type="hidden" name="x_tax" value="0.0000"/>
<input type="hidden" name="x_duty" value="0.0000"/>
<input type="hidden" name="x_freight" value="0.0000"/>
<input type="hidden" name="x_tax_exempt" value="FALSE"/>
<input type="hidden" name="x_po_num" value=""/>
<input type="hidden" name="x_MD5_Hash" value="A375D35004547A91EE3B7AFA40B1E727"/>
<input type="hidden" name="x_cavv_response" value=""/>
<input type="hidden" name="x_test_request" value="false"/>
<input type="hidden" name="x_subscription_id" value="21930455"/>
<input type="hidden" name="x_subscription_paynum" value="1"/>
<input type="submit"/>
</form>

You'll want to read the explanation at
 http://wiki.civicrm.org/confluence/display/CRMDOC/Authorize.net+Configuration
 to see how it works in detail.

Eileen

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4195
  • Karma: 218
    • Fuzion
Re: Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter
August 31, 2014, 03:32:11 pm
We have a hack in our deployment of CiviCRM that catches all the IPN messages

https://github.com/fuzionnz/civicrm-core/blob/4.4.6/extern/authorizeIPN.php

We also have a hacked in api that re-runs the IPN if we need to

https://github.com/fuzionnz/civicrm-core/blob/4.4.6/api/v3/NotificationLog.php

At the sprint in April this year I added logging IPNs to a DB table for forensic purposes to core so if you have 4.5 or later your IPNs will be logged. I restructured Paypal IPN in core in 4.3 or 4.4 but the restructured version of Authorize.net so far only lives in our repo -https://github.com/fuzionnz/civicrm-core/blob/4.4.6/CRM/Core/Payment/AuthorizeNetIPN2.php - it's the same as the core one except that it doesn't look for things in $_GET or $_POST making it suitable for off-line use / forensics/ testing.

So, using our repo it's possible to return an IPN eg.

drush cvapi notification_log.retry id=35

Make today the day you step up to support CiviCRM and all the amazing organisations that are using it to improve our world - http://civicrm.org/contribute

flug

  • I post frequently
  • ***
  • Posts: 126
  • Karma: 12
Re: Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter
September 12, 2014, 04:36:12 pm
Quote from: Eileen on August 31, 2014, 03:32:11 pm
We have a hack in our deployment of CiviCRM that catches all the IPN messages

https://github.com/fuzionnz/civicrm-core/blob/4.4.6/extern/authorizeIPN.php

We also have a hacked in api that re-runs the IPN if we need to

https://github.com/fuzionnz/civicrm-core/blob/4.4.6/api/v3/NotificationLog.php

Thanks, these are both very helpful.

Pages: [1]
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using CiviContribute (Moderator: Donald Lobo) »
  • Authorize.Net Silent Post authorizeIPN.php Failure: Missing Parameter

This forum was archived on 2017-11-26.