[ic] CyberCash 3.2 and Interchange 4.5.5 problems
Ben Humphrey
ben@humphrey.net
Fri, 1 Sep 2000 12:45:56 -0700
Hi folks,
I'm a new user of MiniVend/Interchange and I've had a heck of a time
integrating Cybercash into Interchange 4.5.5. Maybe others are also
struggling or have figured it out.
Here's what I have done so far:
- Set up a test account with CyberCash
- Downloaded the CyberCash 3.2.0.6 Merchant Connection Kit
- Tested it successfully through their cgi pages
- copied the merchant_conf and *.pm files into Vendroot/lib and
reconfigured the embedded paths
- uncommented the CYBER_CONFIGFILE, CYBER_VERSION and CYBER_MODE lines in
catalog.cfg and added appropriate values
It didn't work and after turning on a bunch of debugging, I found that
there was a problem with the encryption routines. After digging through
the mailing list, I found a description of the same problem, so I
downloaded different CyberCash perl modules from
http://minivendcybercash.homestead.com/index.html into Vendroot/lib and
updated those paths.
That got me to the point where I was definately communicating with
CyberCash, but still couldn't successfully authorize. I found, through
turning on the CyberCash debug routines, that some of the fields weren't
getting passed into CyberCash. The fields that *were* being passed are:
cpi.card-exp, cpi.card-zip, cpi.card-address, cpi.card-state,
cpi.card-country, cpi.card-city. The fields that were not passed were
cpi.card-name and cpi.card-number.
I found that the cpi.card-name was built from the b_name variable, but
coundn't find that being initialized anywhere within Interchange. Instead
of creating it from b_fname and b_lname and storing it in the database (the
smart thing) I did a bad hack and just removed all references to b_fname
and changed all references from b_lname to b_name and updated the
databases. This works in that now cpi.card-name is being passed to
CyberCash.
I'm still not getting cpi.card-number passed to CyberCash. I believe it is
getting removed after encryption in Vend::Order::encrypt_standard_cc even
though I have set CreditCardAuto to No in catalog.cfg and have made sure
that "keep" follows "&credit_card=standard" in etc/profiles.order.
I have not yet implemented pgp, hoping to do that after I get the basic
communication layer working, so perhaps that's my problem.
I tried other things like updating some of my Interchange source files
through CVS so now I'm running a bastardized version somewhere between
4.5.5 and 4.5.6. I tried setting MV_PAYMENT_MODE to minivend_test but
never got good error info from it.
Here's the pertinent lines in my current catalog.cfg:
#Variable MV_PAYMENT_MODE minivend_test
# Uncomment to use creditCardAuto if you want, now handled better in
# order profiles with "&credit_card=standard".
CreditCardAuto No
# These are usually all you need for CyberCash 3
# Uncomment and edit to suit; make sure you remove CreditCardAuto somehow
#
CyberCash yes
Variable CYBER_CONFIGFILE /usr/local/minivend/lib/merchant_conf
Variable CYBER_VERSION 3.2
Variable CYBER_MODE mauthcapture
#ifdef CYBER_MODE
Variable MV_PAYMENT_MODE mauthcapture
CreditCardAuto No
#endif
EncryptProgram __ENCRYPTOR__
Anybody have any hints for me to follow? Does anyone have Interchange and
CyberCash working together?
Thanks for any info.
-Ben Humphrey