[ic] Cybersource: Can't Void or Settlement
jeff at hisgirlfridays.com
jeff at hisgirlfridays.com
Fri Jun 10 11:41:13 EDT 2005
On Fri, Jun 10, 2005 at 10:54:39AM -0400, Mark Weaver wrote:
> I know... answering your own posts is a sign of something bad, but I
> just realized why I can't do what I need to do once the order is placed.
> I've got no value stored in the transactions db for "auth_code"!
If you look towards the bottom of Interchange's ICS.pm, you'll see this
code block:
my %result = (
MStatus => $status,
'order-id' => $resp{request_id},
transtype => $inv_trans_map{$transtype},
ORIGID => $resp{request_id},
PNREF => $resp{request_id},
AVSADDR => $avs_addr,
AVSZIP => $avs_zip,
CVV2MATCH => $cv,
avs => $resp{auth_auth_avs},
);
I am pretty sure that the item on the left represents a variable that
will be available in interchange (in what data structure I cannot
immediately recall), the item on the right is the processor's return
data. The actual lines above may differ from your ICS.pm because I
already modified mine to add a field or two and I can't remember which
ones (I think avs).
You will need to find out what the name of the data field that the
payment processor is sending back (the one you need to resend to them
later when you settle). Then map that to an IC variable name of your
choosing in the above ICS.pm structure.
Next, modify your etc/log_transaction. You will see in there the block
where it writes all the variables out to the transactions table, inside
of a pair of "import" tags. Add something to it like the following
(this is what I added to write the avs result to the transactions
table):
avs: [calc]$Session->{payment_result}->{'avs'}[/calc]
I do not use delayed processing so I don't actually have the issue you
describe, but this should allow you to grab the necessary response
fields and put them in the appropriate transactions table fields.
Jeff
More information about the interchange-users
mailing list