summaryrefslogtreecommitdiff
path: root/ng_selfservice
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-07-24 12:56:21 -0700
committerMark Wells <mark@freeside.biz>2013-07-24 12:56:21 -0700
commit72891d1753adf47e0318049c19a501c89c24f0cd (patch)
tree7a916e5f16fec822bf3bc53dbc1cfa664292e07f /ng_selfservice
parent35f3cb28e5d3fee1bc1a892acb9cc2d90f55d365 (diff)
NG selfservice webpay interface, #23579
Diffstat (limited to 'ng_selfservice')
-rw-r--r--ng_selfservice/elements/post_thirdparty.php29
-rw-r--r--ng_selfservice/payment_finish.php34
-rw-r--r--ng_selfservice/payment_paypal.php38
-rw-r--r--ng_selfservice/payment_webpay.php38
4 files changed, 137 insertions, 2 deletions
diff --git a/ng_selfservice/elements/post_thirdparty.php b/ng_selfservice/elements/post_thirdparty.php
new file mode 100644
index 000000000..a543be93a
--- /dev/null
+++ b/ng_selfservice/elements/post_thirdparty.php
@@ -0,0 +1,29 @@
+<?
+if ( $payment_results['error'] ) {
+ // an error at this stage isn't meaningful to the user
+ $error = 'Internal error communicating with payment processor.';
+} elseif ( isset($payment_results['url']) ) {
+ $url = $payment_results['url'];
+?>
+<H3>Redirecting to payment processor...</H3>
+<DIV STYLE="display:none">
+<FORM ID="autoform" METHOD="POST" ENCTYPE="multipart/form-data" ACTION="<?
+ echo($url);
+?>">
+<?
+if (isset($payment_results['post_params'])) {
+ foreach ($payment_results['post_params'] as $key => $value) {
+ echo("<INPUT TYPE=\"hidden\" NAME=\"$key\" VALUE=\"$value\">\n");
+ }
+} ?>
+ <INPUT TYPE="submit" VALUE="submit">
+</FORM>
+</DIV>
+<SCRIPT TYPE="text/javascript">
+window.onload = function() {
+ document.getElementById('autoform').submit();
+}
+</SCRIPT>
+<? } else {
+ $error = 'Internal error: no redirect URL.';
+} ?>
diff --git a/ng_selfservice/payment_finish.php b/ng_selfservice/payment_finish.php
new file mode 100644
index 000000000..413f497a3
--- /dev/null
+++ b/ng_selfservice/payment_finish.php
@@ -0,0 +1,34 @@
+<? $title ='Payment Confirmation'; include('elements/header.php'); ?>
+<? $current_menu = ''; include('elements/menu.php'); ?>
+<?
+ $params = $_GET;
+ $params['session_id'] = $_COOKIE['session_id'];
+
+ //print_r($params);
+ $payment_results = $freeside->finish_thirdparty($params);
+
+ if ( isset($payment_results['error']) ) {
+ $error = $payment_results['error'];
+ include('elements/error.php');
+ } else {
+?>
+<TABLE>
+ <TR>
+ <TH COLSPAN=2><FONT SIZE=+1><B>Your payment details</B></FONT></TH>
+ </TR>
+ <TR>
+<TR>
+ <TD ALIGN="right">Payment&nbsp;#</TD>
+ <TD BGCOLOR="#ffffff"><B><? echo($payment_results['paynum']); ?></B></TD>
+</TR>
+<TR>
+ <TD ALIGN="right">Payment&nbsp;amount</TH>
+ <TD BGCOLOR="#ffffff"><B>$<? printf('%.2f', $payment_results['paid']); ?></B>
+ </TD>
+</TR>
+<TR>
+ <TD ALIGN="right">Processing&nbsp;#</TD>
+ <TD BGCOLOR="#ffffff"><B><? echo($payment_results['order_number']); ?></B>
+ </TD>
+</TR>
+<? } ?>
diff --git a/ng_selfservice/payment_paypal.php b/ng_selfservice/payment_paypal.php
index a2260890a..feb852dec 100644
--- a/ng_selfservice/payment_paypal.php
+++ b/ng_selfservice/payment_paypal.php
@@ -1,5 +1,41 @@
<? $title ='PayPal Payment'; include('elements/header.php'); ?>
<? $current_menu = 'payment_paypal.php'; include('elements/menu.php'); ?>
-PayPal payment
+<?
+if ( isset($_POST['amount']) && $_POST['amount'] ) {
+
+ $payment_results = $freeside->start_thirdparty(array(
+ 'session_id' => $_COOKIE['session_id'],
+ 'method' => 'PAYPAL',
+ 'amount' => $_POST['amount'],
+ ));
+
+ include('elements/post_thirdparty.php');
+
+} else {
+
+ $payment_info = $freeside->payment_info( array(
+ 'session_id' => $_COOKIE['session_id'],
+ ) );
+
+ $tr_amount_fee = $freeside->mason_comp(array(
+ 'session_id' => $_COOKIE['session_id'],
+ 'comp' => '/elements/tr-amount_fee.html',
+ 'args' => [ 'amount', $payment_info['balance'] ],
+ ));
+ $tr_amount_fee = $tr_amount_fee['output'];
+
+ include('elements/error.php'); ?>
+<FORM NAME="OneTrueForm" METHOD="POST" ACTION="payment_paypal.php">
+ <TABLE>
+ <TR>
+ <TD ALIGN="right">Amount&nbsp;Due</TD>
+ <TD>$<? echo sprintf('%.2f', $payment_info['balance']); ?></TD>
+ </TR>
+ <? echo $tr_amount_fee; ?>
+ </TABLE>
+ <BR>
+ <INPUT TYPE="submit" NAME="process" VALUE="Start payment">
+</FORM>
+<? } ?>
<? include('elements/menu_footer.php'); ?>
<? include('elements/footer.php'); ?>
diff --git a/ng_selfservice/payment_webpay.php b/ng_selfservice/payment_webpay.php
index 638761d1a..ff82078b5 100644
--- a/ng_selfservice/payment_webpay.php
+++ b/ng_selfservice/payment_webpay.php
@@ -1,5 +1,41 @@
<? $title ='Webpay Payment'; include('elements/header.php'); ?>
<? $current_menu = 'payment_webpay.php'; include('elements/menu.php'); ?>
-Webpay
+<?
+if ( isset($_POST['amount']) && $_POST['amount'] ) {
+
+ $payment_results = $freeside->start_thirdparty(array(
+ 'session_id' => $_COOKIE['session_id'],
+ 'method' => 'CC',
+ 'amount' => $_POST['amount'],
+ ));
+
+ include('elements/post_thirdparty.php');
+
+} else {
+
+ $payment_info = $freeside->payment_info( array(
+ 'session_id' => $_COOKIE['session_id'],
+ ) );
+
+ $tr_amount_fee = $freeside->mason_comp(array(
+ 'session_id' => $_COOKIE['session_id'],
+ 'comp' => '/elements/tr-amount_fee.html',
+ 'args' => [ 'amount', $payment_info['balance'] ],
+ ));
+ $tr_amount_fee = $tr_amount_fee['output'];
+
+ include('elements/error.php'); ?>
+<FORM NAME="OneTrueForm" METHOD="POST" ACTION="payment_webpay.php">
+ <TABLE>
+ <TR>
+ <TD ALIGN="right">Amount&nbsp;Due</TD>
+ <TD>$<? echo sprintf('%.2f', $payment_info['balance']); ?></TD>
+ </TR>
+ <? echo $tr_amount_fee; ?>
+ </TABLE>
+ <BR>
+ <INPUT TYPE="submit" NAME="process" VALUE="Start payment">
+</FORM>
+<? } ?>
<? include('elements/menu_footer.php'); ?>
<? include('elements/footer.php'); ?>