Page Templates:Creating a Payment Template

From Whirlwind eCommerce Wiki
Jump to: navigation, search

The payment template is a form for the user to enter their payment information

After creating the template, setup a page for it. Place the pageId of this new page in Settings > eCommerce tab: "Payment Page Id"

Sample content is below:

// get order data, including payment info
$orderCompleteArray = eV::orderGetCompleteArray();
 
// shortcut order info
$orderArr = $orderCompleteArray['order'];
 
// short cut payment info
// system made to support multiple payments
// but at this time we can only process one payment per order
$payArr = $orderCompleteArray['payments'][0];
 
// lets get the pay types for the select field
$arrPayTypes = eV::orderGetPayTypes();
$payTypeOptionString = eV::orderGetPayTypesOptionsString($payArr['payType']);
 
// lets get the expiration dates for the select field
$expDateOptionString = eV::orderGetExpDateString($payArr['expDate']);
 
/*
static function orderGetExpDateString($expDate){
	$optionString = "";
	if($expDate < date("Y-m-d")) 
	$year = date('Y');
	for($i=$year;$i<(intval($year)+20);$i++){
		for($ii=1;$ii<13;$ii++){					
			$thisDate = mktime ( 23,23,59,($ii+1),0,$i );
			$thisDateVal = date("Y-m-d",$thisDate);
			if(strToTime(date("Y-m-d")) <= $thisDate){
				$thisDateText = date("m/Y",$thisDate);
				$optionString .= "<option value=\"$thisDateVal\"";
				if($thisDateVal == $expDate) $optionString .= " selected ";
				$optionString .= ">$thisDateText</option>";
			};
		};
	};
 
*/
 
// output message if passed
// this is typically used to inform the visitor of invalid payment information submitted or declined credit card
if(!empty($message)) echo "<font color=\"red\">$message</font>";
 
// start form
// note use of securedsiteurl to ensure SSL connection submitted
echo "<form action=\"" . $iProducts['securedSiteUrl']. "/index.php\" method=\"post\" name=\"checkoutPaymentForm\">";
 
echo "<br>Select Card Type: ";
// output pay types
// use the string generated at the begging of the script when calling the orderGetPayTypeOptionString request
echo "<select name=\"payType\">$payTypeOptionString</select>";
 
echo "<br>First Name: ";
echo "<input name=\"firstName\" value=\"" . $payArr['firstName'] . "\" type=\"text\" />";
 
echo "<br>Last Name: ";
echo "<input name=\"lastName\" value=\"" . $payArr['lastName'] . "\" type=\"text\" />";
 
 
echo "<br>Card Number: ":
// note the value here is empty - we dont want to pass the card number back to the browser
echo "<input name=\"accountNumber\" size=18 maxlength=16 value=\"\" class=\"form-field\" type=\"text\" />";
 
echo "<br>Expiration Date: ";
// output expiration date options
// use the string generated at the begginging of the script when calling the orderGetExpDateString request
echo "<select name=\"expDate\">$expDateOptionString</select>";
 
 
echo "<br>Card Security Code: ";
// like the card number, we dont want t pass this back to the browser
echo "<input name=\"cvv\" type=\"text\" value=\"\" size=\"5\" />";
 
// required hidden fields tell the system where to go and what to do when submitted
// redirect failure and success tell the system where to go after the payment info is submitted
// paymentId is passed to tell the system which payment to post this submission to
// the payment supports the payType, accountNumber, cvv and expDate fields
// sale_addressId is passed to tell the system which address to post this submission to
// the address supports the firstName, lastName fields in addition to street1, street2, city, state, zipCode, country, phone1, phone2, fax
echo "<input type=\"hidden\" name=\"fa\" value=\"ORDER.paymentPost\">
<input type=\"hidden\" name=\"redirectSuccess\" value=\"index.php?fa=ORDER.checkoutConfirmation\">
<input type=\"hidden\" name=\"redirectFailure\" value=\"index.php?fa=ORDER.checkoutPayment\">
<input type=\"hidden\" name=\"paymentId\" value=\"" . $payArr['paymentId']. "\">
<input type=\"hidden\" name=\"sale_addressId\" value=\"" . $payArr['sale_addressId']. "\">":
 
// form post button
echo "<input type=\"submit\" value=\"Post Payment\">";
 
// close out the form
echo "</form>";