OpenCart 🇺🇦

Метод ControllerPaymentPPProIframe::constructButtonData(...)

Схема

private mixed constructButtonData ( $order_info )

Аргументы

Аргумент Возможный тип Описание
$order_info

Описание

Метод пока еще не документирован.

Исходный код

$s_data = array();
$s_data['METHOD'] = 'BMCreateButton';
$s_data['VERSION'] = '65.2';
$s_data['BUTTONCODE'] = 'TOKEN';

$s_data['BUTTONLANGUAGE'] = 'en';
$s_data['BUTTONSOURCE'] = 'OpenCart_Cart_WPP';

$s_data['USER'] = $this->config->get('pp_pro_iframe_user');
$s_data['SIGNATURE'] = $this->config->get('pp_pro_iframe_sig');
$s_data['PWD'] = $this->config->get('pp_pro_iframe_password');

$s_data['BUTTONTYPE'] = 'PAYMENT';
$s_data['L_BUTTONVAR0'] = 'subtotal=' . $this->currency->format($order_info['total'], $order_info['currency_code'], false, false);
$s_data['L_BUTTONVAR1'] = 'tax=0.00';
$s_data['L_BUTTONVAR2'] = 'shipping=0.00';
$s_data['L_BUTTONVAR3'] = 'handling=0.00';

if ($this->cart->hasShipping()) {
	$s_data['L_BUTTONVAR4'] = 'first_name=' . urlencode($order_info['shipping_firstname']);
	$s_data['L_BUTTONVAR5'] = 'last_name=' . urlencode($order_info['shipping_lastname']);
	$s_data['L_BUTTONVAR6'] = 'address1=' . urlencode($order_info['shipping_address_1']);
	$s_data['L_BUTTONVAR7'] = 'address2=' . urlencode($order_info['shipping_address_2']);
	$s_data['L_BUTTONVAR8'] = 'city=' . urlencode($order_info['shipping_city']);
	$s_data['L_BUTTONVAR9'] = 'state=' . urlencode($order_info['shipping_zone']);
	$s_data['L_BUTTONVAR10'] = 'zip=' . urlencode($order_info['shipping_postcode']);
	$s_data['L_BUTTONVAR11'] = 'country=' . urlencode($order_info['shipping_iso_code_2']);
} else {
	$s_data['L_BUTTONVAR4'] = 'first_name=' . urlencode($order_info['payment_firstname']);
	$s_data['L_BUTTONVAR5'] = 'last_name=' . urlencode($order_info['payment_lastname']);
	$s_data['L_BUTTONVAR6'] = 'address1=' . urlencode($order_info['payment_address_1']);
	$s_data['L_BUTTONVAR7'] = 'address2=' . urlencode($order_info['payment_address_2']);
	$s_data['L_BUTTONVAR8'] = 'city=' . urlencode($order_info['payment_city']);
	$s_data['L_BUTTONVAR9'] = 'state=' . urlencode($order_info['payment_zone']);
	$s_data['L_BUTTONVAR10'] = 'zip=' . urlencode($order_info['payment_postcode']);
	$s_data['L_BUTTONVAR11'] = 'country=' . urlencode($order_info['payment_iso_code_2']);
}

$s_data['L_BUTTONVAR12'] = 'billing_first_name=' . urlencode($order_info['payment_firstname']);
$s_data['L_BUTTONVAR13'] = 'billing_last_name=' . urlencode($order_info['payment_lastname']);
$s_data['L_BUTTONVAR14'] = 'billing_address1=' . urlencode($order_info['payment_address_1']);
$s_data['L_BUTTONVAR15'] = 'billing_address2=' . urlencode($order_info['payment_address_2']);
$s_data['L_BUTTONVAR16'] = 'billing_city=' . urlencode($order_info['payment_city']);
$s_data['L_BUTTONVAR17'] = 'billing_state=' . urlencode($order_info['payment_zone']);
$s_data['L_BUTTONVAR18'] = 'billing_zip=' . urlencode($order_info['payment_postcode']);
$s_data['L_BUTTONVAR19'] = 'billing_country=' . urlencode($order_info['payment_iso_code_2']);

$s_data['L_BUTTONVAR20'] = 'notify_url=' . $this->url->link('payment/pp_pro_iframe/notify', '', 'SSL');
$s_data['L_BUTTONVAR21'] = 'cancel_return=' . $this->url->link('checkout/checkout', '', 'SSL');
$s_data['L_BUTTONVAR22'] = 'paymentaction=' . $this->config->get('pp_pro_iframe_transaction_method');
$s_data['L_BUTTONVAR23'] = 'currency_code=' . urlencode($order_info['currency_code']);
$s_data['L_BUTTONVAR26'] = 'showBillingAddress=false';
$s_data['L_BUTTONVAR27'] = 'showShippingAddress=false';
$s_data['L_BUTTONVAR28'] = 'showBillingEmail=false';
$s_data['L_BUTTONVAR29'] = 'showBillingPhone=false';
$s_data['L_BUTTONVAR30'] = 'showCustomerName=true';
$s_data['L_BUTTONVAR31'] = 'showCardInfo=true';
$s_data['L_BUTTONVAR32'] = 'showHostedThankyouPage=false';
$s_data['L_BUTTONVAR33'] = 'bn=GBD';
$s_data['L_BUTTONVAR35'] = 'address_override=true';
$s_data['L_BUTTONVAR36'] = 'cpp_header_image=Red';
$s_data['L_BUTTONVAR44'] = 'bodyBgColor=#AEAEAE';
$s_data['L_BUTTONVAR47'] = 'PageTitleTextColor=Blue';
$s_data['L_BUTTONVAR48'] = 'PageCollapseBgColor=#AEAEAE';
$s_data['L_BUTTONVAR49'] = 'PageCollapseTextColor=#AEAEAE';
$s_data['L_BUTTONVAR50'] = 'PageButtonBgColor=#AEAEAE';
$s_data['L_BUTTONVAR51'] = 'orderSummaryBgColor=#AEAEAE';
$s_data['L_BUTTONVAR55'] = 'template=templateD';
$s_data['L_BUTTONVAR56'] = 'return=' . $this->url->link('checkout/success', '', 'SSL');
$s_data['L_BUTTONVAR57'] = 'custom=' . $this->encryption->encrypt($order_info['order_id']);


if ($this->config->get('pp_pro_iframe_test')) {
	$url = 'https://api-3t.sandbox.paypal.com/nvp';
} else {
	$url = 'https://api-3t.paypal.com/nvp';
}

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_PORT, 443);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FORBID_REUSE, 1);
curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($s_data, '', "&"));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-VPS-REQUEST-ID: ' . md5($order_info['order_id'] . mt_rand())));

$response = curl_exec($curl);

$response_data = array();

parse_str($response, $response_data);

$this->model_payment_pp_pro_iframe->log(print_r(serialize($response_data), 1));

curl_close($curl);

if (!$response || !isset($response_data['HOSTEDBUTTONID'])) {
	return false;
} else {
	return $response_data['HOSTEDBUTTONID'];
}