Example #1
0
 public static function paymentDetails($key, &$errors = array())
 {
     try {
         $pdRequest = new \PaymentDetailsRequest();
         $pdRequest->payKey = $key;
         $rEnvelope = new \RequestEnvelope();
         $rEnvelope->errorLanguage = "es_ES";
         $pdRequest->requestEnvelope = $rEnvelope;
         $ap = new \AdaptivePayments();
         $response = $ap->PaymentDetails($pdRequest);
         if (strtoupper($ap->isSuccess) == 'FAILURE') {
             $errors[] = 'No payment details obtained. <pre>' . print_r($ap->getLastError(), 1) . '</pre>';
             return false;
         } else {
             return $response;
         }
     } catch (Exception $ex) {
         $fault = new FaultMessage();
         $errorData = new ErrorData();
         $errorData->errorId = $ex->getFile();
         $errorData->message = $ex->getMessage();
         $fault->error = $errorData;
         $errors[] = 'Error fatal en la comunicaciĆ³n con Paypal, se ha reportado la incidencia. Disculpe las molestias.';
         @mail(\GOTEO_FAIL_MAIL, 'Error fatal en comunicacion Paypal API', 'ERROR en ' . __FUNCTION__ . '<br /><pre>' . print_r($fault, 1) . '</pre>');
         return false;
     }
 }
function get_paypal_paykey_callback()
{
    global $wpdb;
    //==================================================================================================================================
    //		PayKey creation code
    //==================================================================================================================================
    // Getting the Adaptive payment settings
    $adaptive_pay_settings = getAdaptivePayPalSettings();
    // GETTING product default settings
    $default_prod_settings = getProductDefaultSettings();
    // Getting product settings and if they are not present, set the default settings as product settings
    $prod_settings = getProductSettings($_REQUEST['product_id']);
    if (empty($prod_settings)) {
        $prod_settings = $default_prod_settings;
    }
    /***** 3token API credentials *****************/
    define('API_AUTHENTICATION_MODE', '3token');
    define('API_USERNAME', $adaptive_pay_settings->api_username);
    define('API_PASSWORD', $adaptive_pay_settings->api_password);
    define('API_SIGNATURE', $adaptive_pay_settings->api_signature);
    require_once 'paypal/lib/Config/paypal_sdk_clientproperties.php';
    if ($adaptive_pay_settings->paypal_mode == "sandbox") {
        $paypal_address = "https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay";
    } else {
        $paypal_address = "https://www.paypal.com/webapps/adaptivepayment/flow/pay";
    }
    // Setting the necessary variables for the payment
    $returnURL = site_url() . "/?payment_success=1";
    $cancelURL = site_url() . "/?adaptive_payment_cancel=1";
    $notifyURL = site_url() . "/?ipn_handler=1";
    $currencyCode = $prod_settings->currency_code;
    $email = $_REQUEST["email"];
    $preapprovalKey = $_REQUEST["preapprovalKey"];
    $actionType = "CREATE";
    $requested = '';
    $receiverEmail = '';
    $amount = '';
    $payRequest = new PayRequest();
    $payRequest->actionType = $actionType;
    $payRequest->cancelUrl = $cancelURL;
    $payRequest->returnUrl = $returnURL;
    $payRequest->ipnNotificationUrl = $notifyURL;
    $payRequest->clientDetails = new ClientDetailsType();
    $payRequest->clientDetails->applicationId = $adaptive_pay_settings->app_id;
    //$payRequest->clientDetails->deviceId = DEVICE_ID;
    $payRequest->clientDetails->ipAddress = $_SERVER['REMOTE_ADDR'];
    $payRequest->currencyCode = $currencyCode;
    $payRequest->senderEmail = $email;
    $payRequest->requestEnvelope = new RequestEnvelope();
    $payRequest->requestEnvelope->errorLanguage = "en_US";
    if ($preapprovalKey != "") {
        $payRequest->preapprovalKey = $preapprovalKey;
    }
    $receiver1 = new receiver();
    $receiver1->email = $adaptive_pay_settings->paypal_email;
    $receiver1->phoneNumber = "012838636275";
    $receiver1->countryCode = "US";
    $receiver1->amount = $_REQUEST['price'];
    $payRequest->receiverList = array($receiver1);
    // Make a call to the API
    $ap = new AdaptivePayments();
    $response = $ap->Pay($payRequest);
    if (strtoupper($ap->isSuccess) == 'FAILURE') {
        $fault = $ap->getLastError();
        // For error handling
        if (is_array($fault->error)) {
            $errors_content = '';
            foreach ($fault->error as $err) {
                $errors_content .= $err->message . '<br />';
            }
        } else {
            $errors_content = "";
            $errors_content .= $fault->error->message;
        }
        echo "error|" . $errors_content;
        exit;
    } else {
        $_SESSION['payKey'] = $response->payKey;
        $payKey = $response->payKey;
        if ($response->paymentExecStatus == "CREATED") {
            if (isset($_GET['cs'])) {
                $_SESSION['payKey'] = '';
            }
            try {
                if (isset($_REQUEST["payKey"])) {
                    $payKey = $_REQUEST["payKey"];
                }
                if (empty($payKey)) {
                    $payKey = $_SESSION['payKey'];
                }
                $pdRequest = new PaymentDetailsRequest();
                $pdRequest->payKey = $payKey;
                $rEnvelope = new RequestEnvelope();
                $rEnvelope->errorLanguage = "en_US";
                $pdRequest->requestEnvelope = $rEnvelope;
                $ap = new AdaptivePayments();
                $response = $ap->PaymentDetails($pdRequest);
                echo "success|" . $payKey . "|" . $paypal_address;
                /* Display the API response back to the browser.
                			If the response from PayPal was a success, display the response parameters'
                			If the response was an error, display the errors received using APIError.php.
                			*/
                if (strtoupper($ap->isSuccess) == 'FAILURE') {
                    $fault = $ap->getLastError();
                    // For error handling
                    if (is_array($fault->error)) {
                        $errors_content = '';
                        foreach ($fault->error as $err) {
                            $errors_content .= $err->message . '<br />';
                        }
                    } else {
                        $errors_content = "";
                        $errors_content .= $fault->error->message;
                    }
                    echo "error|" . $errors_content;
                    exit;
                }
                /* else {		//Execute payment
                				$executePaymentRequest = new ExecutePaymentRequest();
                				$executePaymentRequest->payKey = $payKey;
                			
                				$executePaymentRequest->requestEnvelope = new RequestEnvelope();
                				$executePaymentRequest->requestEnvelope->errorLanguage = "en_US";
                				$ap_execute = new AdaptivePayments();
                				$response=$ap_execute->ExecutePayment($executePaymentRequest);
                				
                				if(strtoupper($ap_execute->isSuccess) == 'FAILURE')
                				{
                					$fault = $ap_execute->getLastError();
                					// For error handling
                					if(is_array($fault->error))
                					{
                						$errors_content = '';
                						foreach($fault->error as $err) {				
                							$errors_content .= $err->message . '<br />';
                						}
                					}
                					else
                					{
                						$errors_content = "";
                						$errors_content .= $fault->error->message;
                					}
                					echo "error|".$errors_content; exit;
                				}
                				else
                				{
                					if($response->paymentExecStatus == "COMPLETED")
                					{
                						if($response->responseEnvelope->ack == "Success")
                						{
                							echo "error|Execute Payment Successful";
                						}
                					}
                				}
                			} */
            } catch (Exception $ex) {
                $fault = new FaultMessage();
                $errorData = new ErrorData();
                $errorData->errorId = $ex->getFile();
                $errorData->message = $ex->getMessage();
                $fault->error = $errorData;
                $fault = $ap->getLastError();
                // For error handling
                if (is_array($fault->error)) {
                    $errors_content = '';
                    foreach ($fault->error as $err) {
                        $errors_content .= $err->message . '<br />';
                    }
                } else {
                    $errors_content = "";
                    $errors_content .= $fault->error->message;
                }
                echo "error|" . $errors_content;
                exit;
            }
        }
    }
    //==================================================================================================================================
}
     $_SESSION['payKey'] = '';
 }
 try {
     if (isset($_REQUEST["payKey"])) {
         $payKey = $_REQUEST["payKey"];
     }
     if (empty($payKey)) {
         $payKey = $_SESSION['payKey'];
     }
     $pdRequest = new PaymentDetailsRequest();
     $pdRequest->payKey = $payKey;
     $rEnvelope = new RequestEnvelope();
     $rEnvelope->errorLanguage = "en_US";
     $pdRequest->requestEnvelope = $rEnvelope;
     $ap = new AdaptivePayments();
     $response = $ap->PaymentDetails($pdRequest);
     /* Display the API response back to the browser.
     		   If the response from PayPal was a success, display the response parameters'
     		   If the response was an error, display the errors received using APIError.php.
     		 */
     if (strtoupper($ap->isSuccess) == 'FAILURE') {
         $_SESSION['FAULTMSG'] = $ap->getLastError();
         $location = "APIError.php";
         header("Location: {$location}");
     }
 } catch (Exception $ex) {
     $fault = new FaultMessage();
     $errorData = new ErrorData();
     $errorData->errorId = $ex->getFile();
     $errorData->message = $ex->getMessage();
     $fault->error = $errorData;
function PaymentDetails($token)
{
    $pdRequest = new PaymentDetailsRequest();
    $pdRequest->payKey = $token;
    $rEnvelope = new RequestEnvelope();
    $rEnvelope->errorLanguage = "en_US";
    $pdRequest->requestEnvelope = $rEnvelope;
    $ap = new AdaptivePayments();
    $response = $ap->PaymentDetails($pdRequest);
    if (strtoupper($ap->isSuccess) == 'FAILURE') {
        $FaultMsg = $ap->getLastError();
        echo "Transaction PaymentDetails Failed: error Id: ";
        if (is_array($FaultMsg->error)) {
            echo $FaultMsg->error[0]->errorId . ", error message: " . $FaultMsg->error[0]->message;
        } else {
            echo $FaultMsg->error->errorId . ", error message: " . $FaultMsg->error->message;
        }
    } else {
        $token = $response->payKey;
        echo "Transaction PaymentDetails Successful! \n";
    }
}