';
}
public function buildDGStep1FormAddons($submitBtnId) {
$st = "";
// $st = "successUrl}\" />\n";
// $st .= "cancelUrl}\" />\n";
$st .= "\n";
return $st;
}
public function addPaymentItem(ECItem $item) {
$this->items[] = $item;
}
public function getPaymentItems() {
return $this->items;
}
public function requestPaymentToken() {
/* The servername and serverport tells PayPal where the buyer
should be directed back to after authorizing payment.
In this case, its the local webserver that is running this script
Using the servername and serverport, the return URL is the first
portion of the URL that buyers will return to after authorizing payment
*/
$serverName = $_SERVER['SERVER_NAME'];
$serverPort = $_SERVER['SERVER_PORT'];
$url = dirname('http://' . $serverName . ':' . $serverPort . $_SERVER['REQUEST_URI']);
$currencyCodeType = $_REQUEST['currencyCodeType'];
$paymentType = $_REQUEST['paymentType'];
/* $personName = $_REQUEST['PERSONNAME'];
$SHIPTOSTREET = $_REQUEST['SHIPTOSTREET'];
$SHIPTOCITY = $_REQUEST['SHIPTOCITY'];
$SHIPTOSTATE = $_REQUEST['SHIPTOSTATE'];
$SHIPTOCOUNTRYCODE = $_REQUEST['SHIPTOCOUNTRYCODE'];
$SHIPTOZIP = $_REQUEST['SHIPTOZIP'];
$L_NAME0 = $_REQUEST['L_NAME0'];
$L_AMT0 = $_REQUEST['L_AMT0'];
$L_QTY0 = $_REQUEST['L_QTY0'];
$L_NAME1 = $_REQUEST['L_NAME1'];
$L_AMT1 = $_REQUEST['L_AMT1'];
$L_QTY1 = $_REQUEST['L_QTY1']; */
$personName = 'Tester';
$L_NAME0 = '1 Year Access';
$L_AMT0 = '9.00';
$L_QTY0 = '1.00';
/* The returnURL is the location where buyers return when a
payment has been succesfully authorized.
The cancelURL is the location buyers are sent to when they hit the
cancel button during authorization of payment during the PayPal flow
*/
// $returnURL =urlencode($url.'/ReviewOrder.php?currencyCodeType='.$currencyCodeType.'&paymentType='.$paymentType);
// $cancelURL =urlencode("$url/SetExpressCheckout.php?paymentType=$paymentType" );
$returnURL = urlencode($this->successUrl);
$cancelURL = urlencode($this->cancelUrl);
$orderamt = 0.00;
$orders = '';
$i = 0;
foreach($this->items as $item) {
$itemamt = $item->amount * $item->quantity;
$orderamt += $itemamt;
$orders .= '&L_PAYMENTREQUEST_0_ITEMCATEGORY' . $i . '=Digital';
$orders .= '&L_PAYMENTREQUEST_0_NAME' . $i . '=' . $item->name;
$orders .= '&L_PAYMENTREQUEST_0_AMT' . $i . '=' . number_format($item->amount, 2, '.', '');
$orders .= '&L_PAYMENTREQUEST_0_QTY' . $i . '=' . number_format($item->quantity, 2, '.', '');
$i++;
}
/*
* Setting up the Shipping address details
*/
// $shiptoAddress = "&SHIPTONAME=$personName&SHIPTOSTREET=$SHIPTOSTREET&SHIPTOCITY=$SHIPTOCITY&SHIPTOSTATE=$SHIPTOSTATE&SHIPTOCOUNTRYCODE=$SHIPTOCOUNTRYCODE&SHIPTOZIP=$SHIPTOZIP";
// $nvpstr="&ADDRESSOVERRIDE=1$shiptoAddress&L_NAME0=".$L_NAME0."&L_NAME1=".$L_NAME1."&L_AMT0=".$L_AMT0."&L_AMT1=".$L_AMT1."&L_QTY0=".$L_QTY0."&L_QTY1=".$L_QTY1."&MAXAMT=".(string)$maxamt."&AMT=".(string)$amt."&ITEMAMT=".(string)$itemamt."&CALLBACKTIMEOUT=4&L_SHIPPINGOPTIONAMOUNT1=8.00&L_SHIPPINGOPTIONlABEL1=UPS Next Day Air&L_SHIPPINGOPTIONNAME1=UPS Air&L_SHIPPINGOPTIONISDEFAULT1=true&L_SHIPPINGOPTIONAMOUNT0=3.00&L_SHIPPINGOPTIONLABEL0=UPS Ground 7 Days&L_SHIPPINGOPTIONNAME0=Ground&L_SHIPPINGOPTIONISDEFAULT0=false&INSURANCEAMT=1.00&INSURANCEOPTIONOFFERED=true&CALLBACK=https://www.ppcallback.com/callback.pl&SHIPPINGAMT=8.00&SHIPDISCAMT=-3.00&TAXAMT=2.00&L_NUMBER0=1000&L_DESC0=Size: 8.8-oz&L_NUMBER1=10001&L_DESC1=Size: Two 24-piece boxes&L_ITEMWEIGHTVALUE1=0.5&L_ITEMWEIGHTUNIT1=lbs&ReturnUrl=".$returnURL."&CANCELURL=".$cancelURL ."&CURRENCYCODE=".$currencyCodeType."&PAYMENTACTION=".$paymentType;
// $nvpstr="&REQCONFIRMSHIPPING=0&NOSHIPPING=1&PAYMENTREQUEST_0_CURRENCYCODE=".$this->currency."&PAYMENTREQUEST_0_AMT=".$orderamt."&PAYMENTREQUEST_0_ITEMAMT=".$orderamt."&PAYMENTREQUEST_0_PAYMENTACTION=Sale&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital&L_PAYMENTREQUEST_0_NAME0=Kitty&L_PAYMENTREQUEST_0_QTY0=1&L_PAYMENTREQUEST_0_AMT0=150&RETURNURL=".$returnURL."&CANCELURL=".$cancelURL;
$nvpstr = "&REQCONFIRMSHIPPING=0&NOSHIPPING=1&PAYMENTREQUEST_0_CURRENCYCODE=" . $this->currency . "&PAYMENTREQUEST_0_AMT=" . $orderamt . "&PAYMENTREQUEST_0_ITEMAMT=" . $orderamt . "&PAYMENTREQUEST_0_PAYMENTACTION=Sale" . $orders . "&RETURNURL=" . $returnURL . "&CANCELURL=" . $cancelURL;
$nvpstr = $nvpHeader . $nvpstr;
/* Make the call to PayPal to set the Express Checkout token
If the API call succeded, then redirect the buyer to PayPal
to begin to authorize payment. If an error occured, show the
resulting errors
*/
$resArray = hash_call("SetExpressCheckout", $nvpstr);
$_SESSION['reshash'] = $resArray;
$ack = strtoupper($resArray["ACK"]);
if($ack == "SUCCESS") {
// Redirect to paypal.com here
$token = urldecode($resArray["TOKEN"]);
$payPalURL = $this->paypal_url . $token;
header("Location: " . $payPalURL);
return true;
}
else {
return false;
}
}
}