Forum OpenACS Q&A: Not sure which ket to use

Collapse
Posted by Richard Hamilton on
Defined Contracts
FtsEngineDriver Full Text Search Engine Driver
FtsContentProvider Full Text Search Content Provider
UserData User Data Updates
PaymentGateway Interface to Credit Card Payment Gateway
ShippingGateway Interface to shipping rates and services

Installed Bindings
4767 PaymentGateway, 4825 payflowpro [Uninstall]

Valid Uninstalled Bindings
871 FtsContentProvider, 922 content_revision [Install]
871 FtsContentProvider, 923 image [Install]
871 FtsContentProvider, 924 content_template [Install]
871 FtsContentProvider, 4890 ec_product [Install]


Invalid Uninstalled Bindings
None

Orphan Implementations
None
_____________________________________________________________________________
This is my ACS Service Contract page. Am trying to sort out which key values to enter into the ecommerce parameters. is is the package_id (which I have to use sql to find in acs_packages - 4799 for Payment Gateway and 4800 for Shipping Gateway) or is it the contract_id as displayed on this page (i.e. 4767 for Payment Gateway and 4824 for Shipping Gateway) or is it the PayflowPro contract_id 4825 that is bound to 4767 that I need.

Also I assume that I do not need to explicitly mount the Payment Gateway on a url at the site map. I note that the Shipping Gateway has no bindings. Is that because there is no alternative implementation of the contract as is the case with the payment gateway?

Regards
Richard
Collapse
Posted by Richard Hamilton on
That should read not sure what keY to use!

One other question, does the payment service contract use NSD driven ssl connections or must the fourth section of the config file be configured to allow outgoing ssl without using the AOLserver communications api?
Richard
Collapse
Posted by Bart Teeuwisse on
Richard,

the key you have to use is the package KEY not the package ID.  You are confusing the package id (e.g. 4767) with the package key (e.g. payflowpro or authorize-gateway).

After you have setup the payment contract and an implementation --in your case payflowpro-- you go to the ecommerce package and enter 'payflowpro' as the PaymentGateway.

/Bart

Collapse
Posted by Richard Hamilton on
Thanks Bart,
Have now compiled verisign.so and will document (there are a few potentially confusing bits) and am setting parameters.

I have installed the Payment Gateway and the PayflowPro module using the package manager. I am not clear as to whether I need to mount an instance on a site node before it will work?


Richard
Collapse
Posted by Bart Teeuwisse on
Richard,

you don't have to mount the PayflowPro package although it does offer
a few admin pages to monitor the communication with
VeriSign. Unfortunately you do need to know the names of the pages as
there is no index page for either user pages (e.g. payflowpro/www) or
admin pages (e.g. payflowpro/www/admin). Do take a look in the admin
directory to find out which admin pages are available.

/Bart

Collapse
Posted by Richard Hamilton on
A few notes for the forum as I go along.....

OK, have compiled verisign.so again, have mounted payflowpro on the site map and can get the admin pages up just fine.
I noticed the compiler produced a warning about an unused variable 'temp' at line 59. I checked it and it appears to be a declared variable that is not subsequently referenced - I assume this will cause no problem and have ignored it. Aolserver loads verisign.so perfectly well but is unable to connect to host and the payflow admin page shows a long list of failed attempts to connect.
I have tried pinging the host test-payflow.verisign.com and the name resolves but no reply is received (I assume ping is disabled on the verisign server?).

Looking in pfpro.c I noticed that the hostname '*hostname' is hard coded as 'test-payflowpro.verisign.com' and that the port number 'portNum' is hard coded as 443. A couple of gotcha's for those wanting to switch to payflow.verisign.com or those with https listeners configured on different ports.
Also there is a section in an elseif clause that :
printf(">hostAddress>    host name    'test-payflow.verisign.com'\n");
printf(">hostPort>    host port number    '443'\n");

Now I am no c programmer - but these look hard coded to me as well and I wonder if they should reference the values at the top of the file otherwise the log entries will not reflect the actual situation. If so what is the correct syntax?!


I think that the host is actually test-payflow.verisign.net although the .com resolves to that anyway.

A couple of points of clarification about the comments in the Makefile. Where it says 'Directory where Software Development Kit was unpacked' what it needs is the linux/bin directory within the SDK.

Where is says 'Location of the pfpro lib .so file.' what it needs is the full path and filename for libpfpro.so which is in the lib directory of the sdk.
Having compiled and loaded the versign.so driver, and modified all the above I still cannot connect to the test-payflowpro.verisign.com server.

Any ideas anyone?!

Regards
Richard
Collapse
Posted by Richard Hamilton on
Quick thought - I am probably wrong about the hardcoded portNum in pfpro.c because that is almost certainly the port that test-payflow.verisign.com is listening on for https connections - so please disregard that part of the previous post!
Richard
Collapse
Posted by Richard Hamilton on
Have now managed to get AOLServer to talk to Verisign. Problem was caused by incorrect port number. For future reference for those for whom this is not obvious, don't put your AOLServer's https listening port into the c source files - the port required is the default 443 https port because that is the port that verisign's server is listening on!!

I now have to ask someone to explain to me why when I submit a transaction, the ecommerce module goes to a card declined page even though a look at the transaction log in payflowpro/admin shows clearly an authorised transaction?

If I go into the account details in ecommerce and check the financial transactions listing it clearly shows authorised transactions but the date authorised is blank. The status of the order is 'in_basket' but not authorised. Why is this?

Regards
Richard
Collapse
Posted by Richard Hamilton on
Also, if you have multiple AOLServer instances running on the same machine, if you re-compile the verisign.so driver and re-start just one instance it reloads the prevous version (i.e. the one running in the other currently running AOLServer instances). So you must either bring down all other instances that are running using verisign.so or restart your server machione altogether.
Richard
Collapse
Posted by Brad Duell on
No changes are necessary to use the verisign module *except* those at the top of the Makefile and verisign.c

There are a few minor changes to the module that resides in CVS that I will be finishing this week.  These will also include example directories for the sections in the Makefile and verisign.c that will hopefully help when setting the module up for compile.  I'll be submitting these changes, and can email you (and anyone else) the updated version.

Please send me any documentation you think might be helpful and I'll include that with the updated version as well.

Collapse
Posted by Brad Duell on
Richard,

I've finished the changes for verisign-module that I found necessary for our use with the latest PayFlowPro v.3.05 payment processing interface.

I submitted diffs for both 4.7 (https://openacs.org/bugtracker/openacs/bug?bug%5fnumber=257) and 4.6 (https://openacs.org/bugtracker/openacs/bug?bug%5fnumber=258) as well as made this module available through our website at:

http://www.ncacasi.org/contrib/