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"; } }