: : : Should he use his hosting providers shopping cart (miva)?
: : If you're comfortable with what MIVA offers, and you have checked that it won't lock you to one host or make moving difficult if you need to, it's a viable option.
:
: I'm not comfortable with anything yet because I haven't worked with anything like this before. Here is what I do know, (I think) I know I can use Miva with the hosting company and this offers the shopping cart with payment gateway. What I wanted to know is how to learn to do this manually so we didn't need to buy the Miva package, or with my inexperience, would Miva be the best thing?
:
If you are not experienced in the field, a pre-packaged solution may be the best bet. If you go with something you have to manage yourself, you give yourself all the configuration etc work to do, maybe the effort of getting a secure certificate and installing it etc.
: : : Where can I research integrating payment gateways or any recommended
: : : books would be even better?
: : To be honest it's just a case of reading the documentation for a particular gateway then implementing what it needs. Some need backend SSL calls, which can be done using a few Perl modules and not too many lines of code. Others require you to set up a form that posts to their server, then handle a callback from the gateway. There are several ways that it can happen, and while they can be a pain to implement they generally aren't *too* bad. The worst thing that can happen is you get a really badly documented payment gateway.
: Is all of this for manually writing a gateway?
:
Yes.
: I would think all of this should be taken care of with a hosting provider.
<shrugs> Depends on your definition of hosting provider. Mine is "keep the server up and patched and stay out of my way unless I yell". If you need someone who can provide more than this for you, there are plenty of them out there - a lot of places offer systems like MIVA.
Jonathan
###
for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");