From d6b6f81e383f9d876e67e9704914e887a331012e Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 25 May 2009 01:49:34 +0000 Subject: international self-service payments, RT#1592 --- fs_selfservice/FS-SelfService/SelfService.pm | 55 +++++++++++++++++++++- fs_selfservice/FS-SelfService/cgi/card.html | 50 +++++--------------- .../FS-SelfService/cgi/make_payment.html | 16 +++---- .../FS-SelfService/cgi/misc/counties.cgi | 18 +++++++ fs_selfservice/FS-SelfService/cgi/misc/states.cgi | 18 +++++++ fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 2 +- 6 files changed, 110 insertions(+), 49 deletions(-) create mode 100755 fs_selfservice/FS-SelfService/cgi/misc/counties.cgi create mode 100755 fs_selfservice/FS-SelfService/cgi/misc/states.cgi (limited to 'fs_selfservice') diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index 47f312ac0..058955037 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -86,8 +86,9 @@ $socket .= '.'.$tag if defined $tag && length($tag); ); @EXPORT_OK = ( keys(%autoload), - qw( regionselector regionselector_hashref - expselect popselector domainselector didselector ) + qw( regionselector regionselector_hashref location_form + expselect popselector domainselector didselector + ) ); $ENV{'PATH'} ='/usr/bin:/usr/ucb:/bin'; @@ -550,6 +551,10 @@ State Zip or postal code +=item country + +Two-letter country code + =item payinfo Card number @@ -1436,6 +1441,52 @@ sub regionselector_hashref { }; } +=item location_form HASHREF | LIST + +Takes as input a hashref or list of key/value pairs with the following keys: + +=over 4 + +=item session_id + +Current customer session_id + +=item no_asterisks + +Omit red asterisks from required fields. + +=item address1_label + +Label for first address line. + +=back + +Returns an HTML fragment for a location form (address, city, state, zip, +country) + +=cut + +sub location_form { + my $param; + if ( ref($_[0]) ) { + $param = shift; + } else { + $param = { @_ }; + } + + my $session_id = delete $param->{'session_id'}; + + my $rv = mason_comp( 'session_id' => $session_id, + 'comp' => '/elements/location.html', + 'args' => [ %$param ], + ); + + #hmm. + $rv->{'error'} || $rv->{'output'}; + +} + + #=item expselect HASHREF | LIST # #Takes as input a hashref or list of key/value pairs with the following keys: diff --git a/fs_selfservice/FS-SelfService/cgi/card.html b/fs_selfservice/FS-SelfService/cgi/card.html index cf6d20d8d..c7db2b398 100644 --- a/fs_selfservice/FS-SelfService/cgi/card.html +++ b/fs_selfservice/FS-SelfService/cgi/card.html @@ -1,11 +1,11 @@ - Card number - + Card number + - + - - - - - - - - - - - + + + +<%= location_form( 'session_id' => $session_id, + 'no_asterisks' => 1, + #'address1_label' => 'Card billing address', + 'address1_label' => 'Card billing address', + ) +%> diff --git a/fs_selfservice/FS-SelfService/cgi/make_payment.html b/fs_selfservice/FS-SelfService/cgi/make_payment.html index a468d998a..da6e67ed2 100644 --- a/fs_selfservice/FS-SelfService/cgi/make_payment.html +++ b/fs_selfservice/FS-SelfService/cgi/make_payment.html @@ -22,23 +22,23 @@
Exp.Exp.
Exact name on card
Card billing address - -
Address line 2 - -
City - - - - - - - - -
- - State - - Zip - -
-
Exact name on card
- - + - - + - - + <%= include('card') %> - - diff --git a/fs_selfservice/FS-SelfService/cgi/misc/counties.cgi b/fs_selfservice/FS-SelfService/cgi/misc/counties.cgi new file mode 100755 index 000000000..476fe09a4 --- /dev/null +++ b/fs_selfservice/FS-SelfService/cgi/misc/counties.cgi @@ -0,0 +1,18 @@ +#!/usr/bin/perl -w + +use strict; +use CGI; +use FS::SelfService qw( mason_comp ); + +my $cgi = new CGI; + +my $rv = mason_comp( 'comp' => '/misc/counties.cgi', + 'query_string' => $cgi->query_string, #pass CGI params... + ); + +#hmm. +my $output = $rv->{'error'} || $rv->{'output'}; + +print $cgi->header( '-expires' => 'now' ). + $output; + diff --git a/fs_selfservice/FS-SelfService/cgi/misc/states.cgi b/fs_selfservice/FS-SelfService/cgi/misc/states.cgi new file mode 100755 index 000000000..f75f2ae1d --- /dev/null +++ b/fs_selfservice/FS-SelfService/cgi/misc/states.cgi @@ -0,0 +1,18 @@ +#!/usr/bin/perl -w + +use strict; +use CGI; +use FS::SelfService qw( mason_comp ); + +my $cgi = new CGI; + +my $rv = mason_comp( 'comp' => '/misc/states.cgi', + 'query_string' => $cgi->query_string, #pass CGI params... + ); + +#hmm. +my $output = $rv->{'error'} || $rv->{'output'}; + +print $cgi->header( '-expires' => 'now' ). + $output; + diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index ecf2553a3..4c7b1d86a 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -664,7 +664,7 @@ package FS::SelfService::_selfservicecgi; #use FS::SelfService qw(regionselector expselect popselector); use HTML::Entities; -use FS::SelfService qw(regionselector popselector domainselector); +use FS::SelfService qw(regionselector popselector domainselector location_form); #false laziness w/agent.cgi sub include { -- cgit v1.2.1
Amount Due + Amount Due
$<%=sprintf("%.2f",$balance)%>
Payment amount + Payment amount
$">
Card type + Card type
+ Remember this information
+ NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }"> Charge future payments to this card automatically