summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-12-01 18:31:06 -0800
committerIvan Kohler <ivan@freeside.biz>2017-12-01 18:31:06 -0800
commit48e20d8f1d1b7bccbe0f1a37786cb2c42074a5fc (patch)
treec6b2367ec2c3483495ad1c9a5737eb492f926d82
parent467e43fa07b998b5bae0d69f22a17955fe25ddd5 (diff)
add card processing to example self-service, RT#75279
-rw-r--r--fs_selfservice/wordpress/elements/card.php53
-rw-r--r--fs_selfservice/wordpress/example_selfservice.php1
-rw-r--r--fs_selfservice/wordpress/payment_cc.php117
3 files changed, 171 insertions, 0 deletions
diff --git a/fs_selfservice/wordpress/elements/card.php b/fs_selfservice/wordpress/elements/card.php
new file mode 100644
index 0000000..eb29aef
--- /dev/null
+++ b/fs_selfservice/wordpress/elements/card.php
@@ -0,0 +1,53 @@
+<TR>
+ <TD ALIGN="right">Card&nbsp;number</TD>
+ <TD COLSPAN=6>
+ <TABLE>
+ <TR>
+ <TD>
+ <INPUT TYPE="text" NAME="payinfo" SIZE=20 MAXLENGTH=19 VALUE="<?php echo $payinfo ?>"> </TD>
+ <TD>Exp.</TD>
+ <TD>
+ <SELECT NAME="month">
+ <?php $months = array( '01', '02', '03' ,'04', '05', '06', '07', '08', '09', '10', '11', '12' );
+ foreach ( $months AS $m ) {
+ ?>
+ <OPTION <?php if ($m == $month) { echo 'SELECTED'; } ?>><?php echo $m; ?>
+ <?php } ?>
+ </SELECT>
+ </TD>
+ <TD> / </TD>
+ <TD>
+ <SELECT NAME="year">
+ <?php $years = array( '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023' );
+ foreach ( $years as $y ) {
+ ?>
+ <OPTION <?php if ($y == $year ) { echo 'SELECTED'; } ?>><?php echo $y; ?>
+ <?php } ?>
+ </SELECT>
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+</TR>
+<?php if ( $withcvv ) { ?>
+ <TR>
+ <TD ALIGN="right">CVV2&nbsp;(<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>)</TD>
+ <TD><INPUT TYPE="text" NAME="paycvv" VALUE="" SIZE=4 MAXLENGTH=4></TD>
+ </TR>
+<?php } ?>
+<TR>
+ <TD ALIGN="right">Exact&nbsp;name&nbsp;on&nbsp;card</TD>
+ <TD COLSPAN=6><INPUT TYPE="text" SIZE=32 MAXLENGTH=80 NAME="payname" VALUE="<?php echo $payname; ?>"></TD>
+</TR>
+
+<?php $lf = $freeside->mason_comp(array(
+ 'session_id' => $_COOKIE['freeside_session_id'],
+ 'comp' => '/elements/location.html',
+ 'args' => [
+ 'no_asterisks' , 1,
+ #'address1_label' , 'Card billing address',
+ 'address1_label' , 'Card&nbsp;billing&nbsp;address',
+ ],
+ ));
+ echo $lf['output'];
+?>
diff --git a/fs_selfservice/wordpress/example_selfservice.php b/fs_selfservice/wordpress/example_selfservice.php
index d753f2d..c503f38 100644
--- a/fs_selfservice/wordpress/example_selfservice.php
+++ b/fs_selfservice/wordpress/example_selfservice.php
@@ -60,6 +60,7 @@ get_header();
<p><a href="view_invoice.php?invnum=<?php echo $max_invnum ?>">View my Bill</a></p>
<p><a href="change_bill.php">Change Bill Deliver Options</a></p>
<p><a href="services_new.php">Order a new service</a></p>
+<p><a href="payment_cc.php">Credit card payment</a></p>
<p><a href="process_logout.php">Logout</a></p>
diff --git a/fs_selfservice/wordpress/payment_cc.php b/fs_selfservice/wordpress/payment_cc.php
new file mode 100644
index 0000000..ba5cd88
--- /dev/null
+++ b/fs_selfservice/wordpress/payment_cc.php
@@ -0,0 +1,117 @@
+<?php
+
+require( dirname( __FILE__ ) . '/wp-blog-header.php' );
+
+$freeside = new FreesideSelfService();
+
+if ( isset($_POST['amount']) && $_POST['amount'] ) {
+
+ $payment_results = $freeside->process_payment(array(
+ 'session_id' => $_COOKIE['freeside_session_id'],
+ 'payby' => 'CARD',
+ 'amount' => $_POST['amount'],
+ 'payinfo' => $_POST['payinfo'],
+ 'paycvv' => $_POST['paycvv'],
+ 'month' => $_POST['month'],
+ 'year' => $_POST['year'],
+ 'payname' => $_POST['payname'],
+ 'address1' => $_POST['address1'],
+ 'address2' => $_POST['address2'],
+ 'city' => $_POST['city'],
+ 'state' => $_POST['state'],
+ 'zip' => $_POST['zip'],
+ 'country' => $_POST['country'],
+ 'save' => $_POST['save'],
+ 'auto' => $_POST['auto'],
+ 'paybatch' => $_POST['paybatch'],
+ //'discount_term' => $discount_term,
+ ));
+
+ if ( $payment_results['error'] ) {
+ $_REQUEST['freeside_error'] = $payment_results['error'];
+ } else {
+ $receipt_html = $payment_results['receipt_html'];
+ }
+
+}
+
+if ( $receipt_html ) { ?>
+
+ Your payment was processed successfully. Thank you.<BR><BR>
+ <?php echo $receipt_html; ?>
+
+<?php } else {
+
+ $payment_info = $freeside->payment_info( array(
+ 'session_id' => $_COOKIE['freeside_session_id'],
+ 'payment_payby' => 'CARD',
+ ) );
+
+ if ( isset($payment_info['error']) && $payment_info['error'] ) {
+ $error = $payment_info['error'];
+ wp_redirect('example_login.php?freeside_error='. urlencode($error));
+ die();
+ }
+
+ extract($payment_info);
+
+ $tr_amount_fee = $freeside->mason_comp(array(
+ 'session_id' => $_COOKIE['freeside_session_id'],
+ 'comp' => '/elements/tr-amount_fee.html',
+ 'args' => [ 'amount', $balance ],
+ ));
+ //$tr_amount_fee = $tr_amount_fee->{'error'} || $tr_amount_fee->{'output'};
+ $tr_amount_fee = $tr_amount_fee['output'];
+
+ ?>
+
+ <?php include('elements/error.php'); ?>
+
+ <FORM NAME="OneTrueForm" METHOD="POST" ACTION="payment_cc.php" onSubmit="document.OneTrueForm.process.disabled=true">
+
+ <TABLE>
+ <TR>
+ <TD ALIGN="right">Amount&nbsp;Due</TD>
+ <TD COLSPAN=7>
+ <TABLE><TR><TD>
+ $<?php echo sprintf("%.2f", $balance) ?>
+ </TD></TR></TABLE>
+ </TD>
+ </TR>
+
+ <?php echo $tr_amount_fee; ?>
+
+ <TR>
+ <TD ALIGN="right">Card&nbsp;type</TD>
+ <TD COLSPAN=7>
+ <SELECT NAME="card_type"><OPTION></OPTION>
+ <?php foreach ( $card_types AS $ct ) { ?>
+ <OPTION <?php if ( $card_type == $ct ) { echo 'SELECTED'; } ?>
+ VALUE="<?php echo $ct; ?>"><?php echo $ct; ?>
+ <?php } ?>
+ </SELECT>
+ </TD>
+ </TR>
+
+ <?php include('elements/card.php'); ?>
+
+ <TR>
+ <TD COLSPAN=8>
+ <INPUT TYPE="checkbox" <?php if ( ! $save_unchecked ) { echo 'CHECKED'; } ?> NAME="save" VALUE="1">
+ Remember this card and billing address
+ </TD>
+ </TR><TR>
+ <TD COLSPAN=8>
+ <INPUT TYPE="checkbox" <?php if ( $payby == 'CARD' ) { echo ' CHECKED'; } ?> NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
+ Charge future payments to this card automatically
+ </TD>
+ </TR>
+ </TABLE>
+ <BR>
+ <INPUT TYPE="hidden" NAME="paybatch" VALUE="<?php echo $paybatch ?>">
+ <INPUT TYPE="submit" NAME="process" VALUE="Process payment"> <!-- onClick="this.disabled=true"> -->
+ </FORM>
+
+<?php } ?>
+
+<?php get_footer(); ?>