Card number |
- |
+
Exp. |
|
/ |
|
@@ -101,22 +76,22 @@ function OLiframeContent(src, width, height, name) {
CVV2 |
-
+ |
(help)
|
Exact name on card |
- |
+ |
Card billing address |
-
+
|
Address line 2 |
-
+
|
City |
@@ -124,61 +99,94 @@ function OLiframeContent(src, width, height, name) {
+% } elsif ( $payby eq 'CHEK' ) {
+% my( $payinfo1, $payinfo2, $payname, $ss, $paytype, $paystate,
+% $stateid, $stateid_state )
+% = ( '', '', '', '', '', '', '', '' );
+% if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
+% $cust_main->paymask =~ /^([\dx]+)\@([\dx]+)$/i
+% or die "unparsable payinfo ". $cust_main->payinfo;
+% ($payinfo1, $payinfo2) = ($1, $2);
+% $payname = $cust_main->payname;
+% $ss = $cust_main->ss;
+% $paytype = $cust_main->getfield('paytype');
+% $paystate = $cust_main->getfield('paystate');
+% $stateid = $cust_main->getfield('stateid');
+% $stateid_state = $cust_main->getfield('stateid_state');
+% }
+%
-<% } elsif ( $payby eq 'CHEK' ) {
- my( $payinfo1, $payinfo2, $payname, $ss ) = ( '', '', '', '' );
- if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) {
- $cust_main->payinfo =~ /^(\d+)\@(\d+)$/
- or die "unparsable payinfo ". $cust_main->payinfo;
- ($payinfo1, $payinfo2) = ($1, $2);
- $payname = $cust_main->payname;
- $ss = $cust_main->ss;
- }
-%>
Account number |
- |
+ |
+ Type |
+ |
ABA/Routing number |
-
+
(help)
|
Bank name |
- |
+ |
+
+
+ Bank state |
+ <% include('../edit/cust_main/select-state.html', #meh
+ 'empty' => '(choose)',
+ 'state' => $paystate,
+ 'country' => $cust_main->country,
+ 'prefix' => 'pay',
+ ) %> |
Account holder
Social security or tax ID #
|
- |
+ |
+
+
+ Account holder
+ Driver’s license or state ID #
+ |
+ |
+ State |
+ <% include('../edit/cust_main/select-state.html', #meh
+ 'empty' => '(choose)',
+ 'state' => $stateid_state,
+ 'country' => $cust_main->country,
+ 'prefix' => 'stateid_',
+ ) %> |
+
+% }
-<% } %>
@@ -186,9 +194,19 @@ function OLiframeContent(src, width, height, name) {
Remember this information
|
+% if ($conf->exists("batch-enable")) {
- payby ne 'DCRD' ) || ( $payby eq 'CHEK' && $cust_main->payby eq 'CHEK' ) ) ? ' CHECKED' : '' %> NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
- Charge future payments to this <%= $type{$payby} %> automatically
+ exists("paymentforcedtobatch") && $payby eq 'CHEK' ) ? 'CHECKED DISABLED' : '' %> NAME="batch" VALUE="1">
+ Add to current batch
+% if ($conf->exists("paymentforcedtobatch") && $payby eq 'CHEK' ) {
+
+% }
+ |
+
+% }
+
+ payby ne 'DCRD' ) || ( $payby eq 'CHEK' && $cust_main->payby eq 'CHEK' ) ) ? ' CHECKED' : '' %> NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
+ Charge future payments to this <% $type{$payby} %> automatically
|
@@ -196,4 +214,41 @@ function OLiframeContent(src, width, height, name) {
-<%= include('/elements/footer.html') %>
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Process payment');
+
+my %type = ( 'CARD' => 'credit card',
+ 'CHEK' => 'electronic check (ACH)',
+ );
+
+$cgi->param('payby') =~ /^(CARD|CHEK)$/
+ or die "unknown payby ". $cgi->param('payby');
+my $payby = $1;
+
+$cgi->param('custnum') =~ /^(\d+)$/
+ or die "illegal custnum ". $cgi->param('custnum');
+my $custnum = $1;
+
+my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } );
+die "unknown custnum $custnum" unless $cust_main;
+
+my $balance = $cust_main->balance;
+
+my $payinfo = '';
+
+#false laziness w/selfservice make_payment.html shortcut for one-country
+my $conf = new FS::Conf;
+my %states = map { $_->state => 1 }
+ qsearch('cust_main_county', {
+ 'country' => $conf->config('countrydefault') || 'US'
+ } );
+my @states = sort { $a cmp $b } keys %states;
+
+my $payunique = "webui-payment-". time. "-$$-". rand() * 2**32;
+
+%init>
+
+
|