function fn_paypal_set_bml_checkout($payment_id, $order_id = 0, $order_info = array(), $cart = array(), $area = AREA) { $processor_data = fn_get_payment_method_data($payment_id); if (!empty($order_id)) { $return_url = fn_url("payment_notification.notify?payment=paypal_bml&order_id={$order_id}", $area, 'current'); $cancel_url = fn_url("payment_notification.cancel?payment=paypal_bml&order_id={$order_id}", $area, 'current'); } else { $return_url = fn_payment_url('current', "paypal_bml.php?mode=express_return&payment_id={$payment_id}"); $cancel_url = fn_url("checkout.cart", $area, 'current'); } $request = array('PAYMENTREQUEST_0_PAYMENTACTION' => 'SALE', 'PAYMENTREQUEST_0_SOLUTIONTYPE' => 'SOLE', 'PAYMENTREQUEST_0_CURRENCYCODE' => $processor_data['processor_params']['currency'], 'LOCALECODE' => CART_LANGUAGE, 'RETURNURL' => $return_url, 'CANCELURL' => $cancel_url, 'METHOD' => 'SetExpressCheckout', 'LANDINGPAGE' => 'Billing', 'UserSelectedFundingSource' => 'BML'); fn_paypal_build_request($processor_data, $request, $post_url, $cert_file); $order_details = !empty($order_info) ? fn_paypal_build_details($order_info, $processor_data, false) : fn_paypal_build_details($cart, $processor_data); $request = array_merge($request, $order_details); return fn_paypal_request($request, $post_url, $cert_file); }
function fn_paypal_set_express_checkout($payment_id, $order_id = 0, $order_info = array(), $cart = array(), $area = AREA) { $processor_data = fn_get_payment_method_data($payment_id); if (!empty($order_id)) { $return_url = fn_url("payment_notification.notify?payment=paypal_express&order_id={$order_id}", $area, 'current'); $cancel_url = fn_url("payment_notification.cancel?payment=paypal_express&order_id={$order_id}", $area, 'current'); } else { $return_url = fn_payment_url('current', "paypal_express.php?mode=express_return&payment_id={$payment_id}"); $cancel_url = fn_url("checkout.cart", $area, 'current'); } $request = array('PAYMENTREQUEST_0_PAYMENTACTION' => 'SALE', 'PAYMENTREQUEST_0_CURRENCYCODE' => $processor_data['processor_params']['currency'], 'LOCALECODE' => CART_LANGUAGE, 'RETURNURL' => $return_url, 'CANCELURL' => $cancel_url, 'METHOD' => 'SetExpressCheckout', 'SOLUTIONTYPE' => 'Sole'); if (isset($_SESSION['paypal_token'])) { $request['IDENTITYACCESSTOKEN'] = $_SESSION['paypal_token']; } $paypal_settings = fn_get_paypal_settings(); if (!empty($paypal_settings) && !empty($paypal_settings['main_pair']['detailed'])) { $request['LOGOIMG'] = !empty($paypal_settings['main_pair']['detailed']['http_image_path']) ? $paypal_settings['main_pair']['detailed']['http_image_path'] : $paypal_settings['main_pair']['detailed']['image_path']; $exploded_logo = explode('?', $request['LOGOIMG']); $request['LOGOIMG'] = $exploded_logo[0]; } fn_paypal_build_request($processor_data, $request, $post_url, $cert_file); $order_details = !empty($order_info) ? fn_paypal_build_details($order_info, $processor_data, false) : fn_paypal_build_details($cart, $processor_data); $request = array_merge($request, $order_details); if (!empty($order_info)) { //We need to minus taxes when it based on unit price because product subtotal already include this tax. if (Registry::get('settings.General.tax_calculation') == 'unit_price') { $sum_taxes = fn_paypal_sum_taxes($order_info); $request['PAYMENTREQUEST_0_ITEMAMT'] -= $sum_taxes['P']; $request['PAYMENTREQUEST_0_SHIPPINGAMT'] -= $sum_taxes['S']; } } $result = fn_paypal_request($request, $post_url, $cert_file); return $result; }