[Handel] credit card processing questions
charlie Bowman
cbowmanschool at yahoo.com
Thu Dec 8 01:14:33 CET 2005
1. What field is the credit card info stored?
temporary fields are as follows:
ccn = credit card number
cctype = credit card type (visa,mastercard...)
ccm = month
ccy = year
ccvn = credit card verification number
ccname = credit card name
cool that clears things up quite a bit! I've looked
over the database after an order was completed and was
beginning to get confused.
2. How do I unencrypt this number for later refunds or
charges.
You make a good point about accountability of credit
card numbers, but personally I like the idea of being
able to look up a transaction based upon a credit card
number. Most customers never keep a receipt,
especially not a digital one. I think I'll try my
hand at subclassing this portion.
3. Where do I add in the actual credit card
processing?
Now I'm beginnin to understand your idea of a plugable
system....and I like it! I do have one question. Do
I have to make the plugin/sub function
CHECKOUT_PHASE_AUTHORIZE or is that an arbitrary name
that you chose. I have the same question about the
return value. If there is an error in the authorising
of the credit card, how do I pass errors back to the
main script. CHECKOUT_PHASE_AUTHORIZE makes complete
sense as a name, I'm just wondering how open ended
your plugin system is.
4. I can't seem to get the updated field in the orders
table to update. Any ideas?
I am using the scaffolding that works so well with
catalyst. I'm also using MySql as my backend. I
thought that field was an auto update. I set mysql up
to do that but I guess I set it up incorrectly. I
guess I'll just modify some of the code to update that
field.
thanks again for the tool. This is my 5th commerce
site and I have been dreading making the shopping cart
for a while! Here's a little christmas wish list for
Handel. Maybe these are there and I just missed them.
1. Downloadable Mysql file to set up the database.
(perl.com has a link the sql-lite version but this
causes errors when loading the .sql into MySql)
2. A Tutorial on the web that goes furthur than the
perl.com version. It does a good job of setting up
handel but doesn't explain actually whats happening.
When i finish this project I'm going to write up a
small tutorial using Catalyst and Handel that starts
where the perl.com version left off...as long as I
figure it out by then.
Thanks again for the help and the tool!
--- "Christopher H. Laco" <claco at chrislaco.com> wrote:
> charlie Bowman wrote:
> > I'm going through my first site using Handel and
> > Catalyst and I've got a few questions. Please
> bear
> > with me through this process.
>
> I still get silly every time someone actually uses
> my code. :-)
>
> >
> > 1. What field is the credit card info stored?
>
> Good question. I guess I forgot to put those fields
> in the pod. :-)
> The following temporary fields are declared for
> Handel::Order:
>
> ccn cctype ccm ccy ccvn ccname
>
> Temporary is the key word here. They act like
> fields, but they are never
> stored in the database [by design]. The values in
> these fields live only
> as long as the order instance they are used within.
>
> Typically, one would load an order, set the credit
> card info, then call
> the $checkout->process() to do order processing.
> Once that processing is
> over and $order is out of scope, those fields are
> lost.
>
> If you would like something more permanent, you can
> subclass
> Handel::Order and create your own:
>
>
http://handelframework.com/wiki/Adding_Fields_To_Orders
>
> > 2. How do I unencrypt this number for later
> refunds or
> > charges.
>
> Don't. :-) If you are dealing with refunds, this
> needs to be offline in
> a business system IMHO, or in permanent records; not
> in an online ecom
> site. If you really need to, subclass Handel::Order,
> make a custom field
> and a sub that does the encryption/decryption.
>
> > 3. Where do I add in my actuall credit card
> > processing. Do I just add it to the
> Checkout/payment
> > function?
>
> You would need to write a new plugin for the phases
> CHECKOUT_PHASE_AUTHORIZE, if someone else hasn't
> already.
>
> See:
>
http://search.cpan.org/~claco/Handel/lib/Handel/Checkout/Plugin.pm
>
> This would roughly be:
>
> package MyPackage::FaxOrder;
> use Handel::Constants qw(:checkout);
> use base 'Handel::Checkout::Plugin';
> use Business::OnlinePayment::SomePaymentProcessor
>
> sub register {
> my ($self, $ctx) = @_;
>
> $ctx->add_handler(CHECKOUT_PHASE_AUTHORIZE,
> \&process_credit_card);
> };
>
> sub process_credit_card {
> my ($self, $ctx) = @_;
>
> ...online payment code here...
>
> return CHECKOUT_HANDLER_OK;
> };
>
> See the Business::OnlinePayment::* modules on CPAN
> for starters...
>
> > 4. I can't seem to get the updated field in the
> orders
> > table to update. Any ideas?
>
> Manually, or after you place an order in the generic
> scaffold created
> for Catalyst?
>
> The updated field doesn't set itself everytime
> something is updated.
> It's a manual field like all the others.
>
> If you're using MySQL, I think the AssignOrderNumber
> plugin makes some
> silly assumptions, like:
>
> $ctx->order->updated(scalar localtime);
>
> I may just remove that from that plugin, because it
> doesn't have
> anyhting to do with assigning an order number. :-)
>
> >
> > Even though I'm spending alot of time learning
> these
> > two tools. I've already saved myself several days
> of
> > work! Thanks in advance for the help.
> >
> > Charlie
>
> -=Chris
> > _______________________________________________
> Handel mailing list
> Handel at lists.rawmode.org
>
http://lists.rawmode.org/cgi-bin/mailman/listinfo/handel
>
__________________________________________
Yahoo! DSL Something to write home about.
Just $16.99/mo. or less.
dsl.yahoo.com
More information about the Handel
mailing list