Version Notes
Ajout du support Magento CE 1.8 et Magento EE 1.13
Download this release
Release Info
| Developer | Payline |
| Extension | Payline |
| Version | 1.7.8 |
| Comparing to | |
| See all releases | |
Code changes from version 1.7.7 to 1.7.8
- app/code/community/Monext/Payline/Model/Datasource/Status.php +9 -2
- app/code/community/Monext/Payline/Model/Datasource/Statusrowempty.php +9 -1
- app/code/community/Monext/Payline/PaylinePHPKit/lib/paylineSDK.php +1789 -1789
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2013-07-10.log +44 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-01-21.log +106 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-01-28.log +108 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-03.log +134 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-10.log +56 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-11.log +18 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-17.log +40 -0
- app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-25.log +30 -0
- app/code/community/Monext/Payline/controllers/CheckoutonepageController.php +23 -16
- app/code/community/Monext/Payline/controllers/IndexController.php +1168 -1168
- app/code/community/Monext/Payline/etc/config.xml +272 -272
- app/design/frontend/default/default/layout/payline.xml +11 -0
- app/design/frontend/default/default/template/payline/Direct.phtml +61 -59
- app/design/frontend/default/default/template/payline/checkout/onepage.phtml +11 -3
- app/design/frontend/default/default/template/payline/checkout/onepage/payment/methods.phtml +74 -0
- package.xml +5 -6
app/code/community/Monext/Payline/Model/Datasource/Status.php
CHANGED
|
@@ -7,22 +7,29 @@ class Monext_Payline_Model_Datasource_Status extends Mage_Adminhtml_Model_System
|
|
| 7 |
if (class_exists('Mage_Sales_Model_Mysql4_Order_Status_Collection')) {
|
| 8 |
$collection = Mage::getResourceModel('sales/order_status_collection')
|
| 9 |
->orderByLabel();
|
|
|
|
| 10 |
foreach ($collection as $status) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
$options[] = array(
|
| 12 |
-
'value' => $
|
| 13 |
'label' => $status->getStoreLabel()
|
| 14 |
);
|
| 15 |
}
|
| 16 |
} else {
|
| 17 |
$statuses = Mage::getSingleton('sales/order_config')->getStatuses();
|
| 18 |
foreach ($statuses as $code=>$label) {
|
|
|
|
|
|
|
|
|
|
| 19 |
$options[] = array(
|
| 20 |
'value' => $code,
|
| 21 |
'label' => $label
|
| 22 |
);
|
| 23 |
}
|
| 24 |
}
|
| 25 |
-
|
| 26 |
return $options;
|
| 27 |
}
|
| 28 |
}
|
| 7 |
if (class_exists('Mage_Sales_Model_Mysql4_Order_Status_Collection')) {
|
| 8 |
$collection = Mage::getResourceModel('sales/order_status_collection')
|
| 9 |
->orderByLabel();
|
| 10 |
+
$statusValue = '';
|
| 11 |
foreach ($collection as $status) {
|
| 12 |
+
$statusValue = $status->getStatus();
|
| 13 |
+
if( $statusValue === 'complete' || $statusValue === 'closed' ) {
|
| 14 |
+
continue;
|
| 15 |
+
}
|
| 16 |
$options[] = array(
|
| 17 |
+
'value' => $statusValue,
|
| 18 |
'label' => $status->getStoreLabel()
|
| 19 |
);
|
| 20 |
}
|
| 21 |
} else {
|
| 22 |
$statuses = Mage::getSingleton('sales/order_config')->getStatuses();
|
| 23 |
foreach ($statuses as $code=>$label) {
|
| 24 |
+
if( $code === 'complete' || $code === 'closed' ) {
|
| 25 |
+
continue;
|
| 26 |
+
}
|
| 27 |
$options[] = array(
|
| 28 |
'value' => $code,
|
| 29 |
'label' => $label
|
| 30 |
);
|
| 31 |
}
|
| 32 |
}
|
|
|
|
| 33 |
return $options;
|
| 34 |
}
|
| 35 |
}
|
app/code/community/Monext/Payline/Model/Datasource/Statusrowempty.php
CHANGED
|
@@ -11,15 +11,23 @@ class Monext_Payline_Model_Datasource_Statusrowempty extends Mage_Adminhtml_Mode
|
|
| 11 |
if (class_exists('Mage_Sales_Model_Mysql4_Order_Status_Collection')) {
|
| 12 |
$collection = Mage::getResourceModel('sales/order_status_collection')
|
| 13 |
->orderByLabel();
|
|
|
|
| 14 |
foreach ($collection as $status) {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
$options[] = array(
|
| 16 |
-
'value' => $
|
| 17 |
'label' => $status->getStoreLabel()
|
| 18 |
);
|
| 19 |
}
|
| 20 |
} else {
|
| 21 |
$statuses = Mage::getSingleton('sales/order_config')->getStatuses();
|
| 22 |
foreach ($statuses as $code=>$label) {
|
|
|
|
|
|
|
|
|
|
| 23 |
$options[] = array(
|
| 24 |
'value' => $code,
|
| 25 |
'label' => $label
|
| 11 |
if (class_exists('Mage_Sales_Model_Mysql4_Order_Status_Collection')) {
|
| 12 |
$collection = Mage::getResourceModel('sales/order_status_collection')
|
| 13 |
->orderByLabel();
|
| 14 |
+
$statusValue = '';
|
| 15 |
foreach ($collection as $status) {
|
| 16 |
+
$statusValue = $status->getStatus();
|
| 17 |
+
if( $statusValue === 'complete' || $statusValue === 'closed' ) {
|
| 18 |
+
continue;
|
| 19 |
+
}
|
| 20 |
$options[] = array(
|
| 21 |
+
'value' => $statusValue,
|
| 22 |
'label' => $status->getStoreLabel()
|
| 23 |
);
|
| 24 |
}
|
| 25 |
} else {
|
| 26 |
$statuses = Mage::getSingleton('sales/order_config')->getStatuses();
|
| 27 |
foreach ($statuses as $code=>$label) {
|
| 28 |
+
if( $code === 'complete' || $code === 'closed' ) {
|
| 29 |
+
continue;
|
| 30 |
+
}
|
| 31 |
$options[] = array(
|
| 32 |
'value' => $code,
|
| 33 |
'label' => $label
|
app/code/community/Monext/Payline/PaylinePHPKit/lib/paylineSDK.php
CHANGED
|
@@ -1,1789 +1,1789 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
//
|
| 3 |
-
// Payline Class
|
| 4 |
-
// Copyright Monext
|
| 5 |
-
//
|
| 6 |
-
require_once('jIniFileModifier.php');
|
| 7 |
-
//
|
| 8 |
-
// OBJECTS DEFINITIONS
|
| 9 |
-
//
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
class util{
|
| 13 |
-
|
| 14 |
-
/**
|
| 15 |
-
* make an array from a payline server response object.
|
| 16 |
-
* @params : $response : Objet response from payline
|
| 17 |
-
* @return : Object convert in an array
|
| 18 |
-
**/
|
| 19 |
-
static function responseToArray($response){
|
| 20 |
-
|
| 21 |
-
$array = array();
|
| 22 |
-
foreach($response as $k=>$v){
|
| 23 |
-
if (is_object($v)) {
|
| 24 |
-
$array[$k] = util::responseToArray($v);
|
| 25 |
-
}
|
| 26 |
-
else { $array[$k] = $v;
|
| 27 |
-
}
|
| 28 |
-
}
|
| 29 |
-
return $array;
|
| 30 |
-
|
| 31 |
-
return $response;
|
| 32 |
-
}
|
| 33 |
-
|
| 34 |
-
static function responseToArrayForGetCards($response){
|
| 35 |
-
|
| 36 |
-
$array = array();
|
| 37 |
-
foreach($response as $k=>$v){
|
| 38 |
-
|
| 39 |
-
if (is_object($v) && ($k != 'cards' ) ) {
|
| 40 |
-
$array[$k] = util::responseToArrayForGetCards($v);
|
| 41 |
-
}
|
| 42 |
-
else {
|
| 43 |
-
if($k == 'cards' && count($v) == 1 ){
|
| 44 |
-
$array[$k][0] = $v;
|
| 45 |
-
}else{
|
| 46 |
-
$array[$k] = $v;
|
| 47 |
-
}
|
| 48 |
-
}
|
| 49 |
-
}
|
| 50 |
-
return $array;
|
| 51 |
-
|
| 52 |
-
return $response;
|
| 53 |
-
}
|
| 54 |
-
}
|
| 55 |
-
|
| 56 |
-
//
|
| 57 |
-
// PL_PAYMENT OBJECT DEFINITION
|
| 58 |
-
//
|
| 59 |
-
class pl_payment{
|
| 60 |
-
|
| 61 |
-
// ATTRIBUTES LISTING
|
| 62 |
-
public $amount;
|
| 63 |
-
public $currency;
|
| 64 |
-
public $action;
|
| 65 |
-
public $mode;
|
| 66 |
-
public $contractNumber;
|
| 67 |
-
public $differedActionDate;
|
| 68 |
-
}
|
| 69 |
-
|
| 70 |
-
//
|
| 71 |
-
// PL_ORDER OBJECT DEFINITION
|
| 72 |
-
//
|
| 73 |
-
class pl_order{
|
| 74 |
-
|
| 75 |
-
// ATTRIBUTES LISTING
|
| 76 |
-
public $ref;
|
| 77 |
-
public $origin;
|
| 78 |
-
public $country;
|
| 79 |
-
public $taxes;
|
| 80 |
-
public $amount;
|
| 81 |
-
public $currency;
|
| 82 |
-
public $date;
|
| 83 |
-
public $quantity;
|
| 84 |
-
public $comment;
|
| 85 |
-
public $details;
|
| 86 |
-
|
| 87 |
-
function __construct() {
|
| 88 |
-
$this->date = date('d/m/Y H:i', time());
|
| 89 |
-
$this->details = array();
|
| 90 |
-
}
|
| 91 |
-
}
|
| 92 |
-
|
| 93 |
-
//
|
| 94 |
-
// PL_PRIVATEDATA OBJECT DEFINITION
|
| 95 |
-
//
|
| 96 |
-
class pl_privateData{
|
| 97 |
-
|
| 98 |
-
// ATTRIBUTES LISTING
|
| 99 |
-
public $key ;
|
| 100 |
-
public $value;
|
| 101 |
-
}
|
| 102 |
-
|
| 103 |
-
//
|
| 104 |
-
// PL_AUTHORIZATION OBJECT DEFINITION
|
| 105 |
-
//
|
| 106 |
-
class pl_authorization{
|
| 107 |
-
|
| 108 |
-
// ATTRIBUTES LISTING
|
| 109 |
-
public $number;
|
| 110 |
-
public $date;
|
| 111 |
-
}
|
| 112 |
-
|
| 113 |
-
//
|
| 114 |
-
// PL_ADDRESS OBJECT DEFINITION
|
| 115 |
-
//
|
| 116 |
-
class pl_address{
|
| 117 |
-
|
| 118 |
-
// ATTRIBUTES LISTING
|
| 119 |
-
public $name;
|
| 120 |
-
public $street1;
|
| 121 |
-
public $street2;
|
| 122 |
-
public $cityName;
|
| 123 |
-
public $zipCode;
|
| 124 |
-
public $country;
|
| 125 |
-
public $phone;
|
| 126 |
-
}
|
| 127 |
-
|
| 128 |
-
//
|
| 129 |
-
// PL_BUYER OBJECT DEFINITION
|
| 130 |
-
//
|
| 131 |
-
class pl_buyer{
|
| 132 |
-
|
| 133 |
-
// ATTRIBUTES LISTING
|
| 134 |
-
public $lastName;
|
| 135 |
-
public $firstName;
|
| 136 |
-
public $email;
|
| 137 |
-
public $customerId;
|
| 138 |
-
public $walletId;
|
| 139 |
-
public $walletDisplayed;
|
| 140 |
-
public $walletSecured;
|
| 141 |
-
public $walletCardInd;
|
| 142 |
-
public $shippingAdress;
|
| 143 |
-
public $billingAddress;
|
| 144 |
-
public $accountCreateDate;
|
| 145 |
-
public $accountAverageAmount;
|
| 146 |
-
public $accountOrderCount;
|
| 147 |
-
public $ip;
|
| 148 |
-
public $mobilePhone;
|
| 149 |
-
|
| 150 |
-
function __construct() {
|
| 151 |
-
$this->accountCreateDate = date('d/m/y', time());
|
| 152 |
-
}
|
| 153 |
-
}
|
| 154 |
-
|
| 155 |
-
//
|
| 156 |
-
// PL_OWNER OBJECT DEFINITION
|
| 157 |
-
//
|
| 158 |
-
class pl_owner{
|
| 159 |
-
|
| 160 |
-
// ATTRIBUTES LISTING
|
| 161 |
-
public $lastName;
|
| 162 |
-
public $firstName;
|
| 163 |
-
public $billingAddress;
|
| 164 |
-
public $issueCardDate;
|
| 165 |
-
}
|
| 166 |
-
|
| 167 |
-
//
|
| 168 |
-
// PL_ORDERDETAIL OBJECT DEFINITION
|
| 169 |
-
//
|
| 170 |
-
class pl_orderDetail{
|
| 171 |
-
|
| 172 |
-
// ATTRIBUTES LISTING
|
| 173 |
-
public $ref;
|
| 174 |
-
public $price;
|
| 175 |
-
public $quantity;
|
| 176 |
-
public $comment;
|
| 177 |
-
}
|
| 178 |
-
|
| 179 |
-
//
|
| 180 |
-
// PL_CARD OBJECT DEFINITION
|
| 181 |
-
//
|
| 182 |
-
class pl_card{
|
| 183 |
-
|
| 184 |
-
// ATTRIBUTES LISTING
|
| 185 |
-
public $number;
|
| 186 |
-
public $type;
|
| 187 |
-
public $expirationDate;
|
| 188 |
-
public $cvx;
|
| 189 |
-
public $ownerBirthdayDate;
|
| 190 |
-
public $password;
|
| 191 |
-
public $cardholder; //added by smile
|
| 192 |
-
public $token;
|
| 193 |
-
|
| 194 |
-
function __construct($type) {
|
| 195 |
-
$this->accountCreateDate = date('d/m/y', time());
|
| 196 |
-
}
|
| 197 |
-
}
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
//
|
| 201 |
-
// PL_TRANSACTION OBJECT DEFINITION
|
| 202 |
-
//
|
| 203 |
-
class pl_transaction{
|
| 204 |
-
|
| 205 |
-
// ATTRIBUTES LISTING
|
| 206 |
-
public $id;
|
| 207 |
-
public $isPossibleFraud;
|
| 208 |
-
public $isDuplicated;
|
| 209 |
-
public $date;
|
| 210 |
-
}
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
//
|
| 214 |
-
// PL_RESULT OBJECT DEFINITION
|
| 215 |
-
//
|
| 216 |
-
class pl_result{
|
| 217 |
-
|
| 218 |
-
// ATTRIBUTES LISTING
|
| 219 |
-
public $code;
|
| 220 |
-
public $shortMessage;
|
| 221 |
-
public $longMessage;
|
| 222 |
-
}
|
| 223 |
-
|
| 224 |
-
//
|
| 225 |
-
// PL_CAPTURE OBJECT DEFINITION
|
| 226 |
-
//
|
| 227 |
-
class pl_capture{
|
| 228 |
-
|
| 229 |
-
// ATTRIBUTES LISTING
|
| 230 |
-
public $transactionID;
|
| 231 |
-
public $payment;
|
| 232 |
-
public $sequenceNumber;
|
| 233 |
-
|
| 234 |
-
function __construct() {
|
| 235 |
-
$this->payment = new pl_payment();
|
| 236 |
-
}
|
| 237 |
-
}
|
| 238 |
-
|
| 239 |
-
//
|
| 240 |
-
// PL_REFUND OBJECT DEFINITION
|
| 241 |
-
//
|
| 242 |
-
class pl_refund extends pl_capture {
|
| 243 |
-
function __construct() {
|
| 244 |
-
parent::__construct();
|
| 245 |
-
}
|
| 246 |
-
}
|
| 247 |
-
|
| 248 |
-
//
|
| 249 |
-
// PL_WALLET OBJECT DEFINITION
|
| 250 |
-
//
|
| 251 |
-
class pl_wallet{
|
| 252 |
-
|
| 253 |
-
// ATTRIBUTES LISTING
|
| 254 |
-
public $walletId;
|
| 255 |
-
public $lastName;
|
| 256 |
-
public $firstName;
|
| 257 |
-
public $email;
|
| 258 |
-
public $shippingAddress;
|
| 259 |
-
public $card;
|
| 260 |
-
public $comment;
|
| 261 |
-
|
| 262 |
-
function __construct() {
|
| 263 |
-
}
|
| 264 |
-
}
|
| 265 |
-
|
| 266 |
-
//
|
| 267 |
-
// PL_RECURRING OBJECT DEFINITION
|
| 268 |
-
//
|
| 269 |
-
class pl_recurring{
|
| 270 |
-
|
| 271 |
-
// ATTRIBUTES LISTING
|
| 272 |
-
public $firstAmount;
|
| 273 |
-
public $amount;
|
| 274 |
-
public $billingCycle;
|
| 275 |
-
public $billingLeft;
|
| 276 |
-
public $billingDay;
|
| 277 |
-
public $startDate;
|
| 278 |
-
|
| 279 |
-
function __construct() {
|
| 280 |
-
}
|
| 281 |
-
}
|
| 282 |
-
|
| 283 |
-
//
|
| 284 |
-
// PL_AUTHENTIFICATION 3D SECURE
|
| 285 |
-
//
|
| 286 |
-
class pl_authentication3DSecure{
|
| 287 |
-
|
| 288 |
-
// ATTRIBUTES LISTING
|
| 289 |
-
public $md ;
|
| 290 |
-
public $pares ;
|
| 291 |
-
public $xid ;
|
| 292 |
-
public $eci ;
|
| 293 |
-
public $cavv ;
|
| 294 |
-
public $cavvAlgorithm ;
|
| 295 |
-
public $vadsResult ;
|
| 296 |
-
|
| 297 |
-
function __construct() {
|
| 298 |
-
}
|
| 299 |
-
}
|
| 300 |
-
|
| 301 |
-
//
|
| 302 |
-
// PL_BANKACCOUNTDATA
|
| 303 |
-
//
|
| 304 |
-
class pl_bankAccountData{
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
// ATTRIBUTES LISTING
|
| 308 |
-
public $countryCode ;
|
| 309 |
-
public $bankCode ;
|
| 310 |
-
public $accountNumber ;
|
| 311 |
-
public $key ;
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
function __construct() {
|
| 315 |
-
}
|
| 316 |
-
}
|
| 317 |
-
|
| 318 |
-
//
|
| 319 |
-
// PL_CHEQUE
|
| 320 |
-
//
|
| 321 |
-
class pl_cheque{
|
| 322 |
-
|
| 323 |
-
// ATTRIBUTES LISTING
|
| 324 |
-
public $number ;
|
| 325 |
-
|
| 326 |
-
function __construct() {
|
| 327 |
-
}
|
| 328 |
-
}
|
| 329 |
-
|
| 330 |
-
final class Log {
|
| 331 |
-
private $filename;
|
| 332 |
-
private $path;
|
| 333 |
-
|
| 334 |
-
public function __construct($filename) {
|
| 335 |
-
$this->filename = $filename;
|
| 336 |
-
$tmp = explode(DIRECTORY_SEPARATOR ,dirname(__FILE__));
|
| 337 |
-
|
| 338 |
-
// up one level from the current directory
|
| 339 |
-
for($i=0,$s = sizeof($tmp)-1; $i<$s; $i++){
|
| 340 |
-
$this->path .= $tmp[$i].DIRECTORY_SEPARATOR;
|
| 341 |
-
}
|
| 342 |
-
$this->path .= 'logs'.DIRECTORY_SEPARATOR;
|
| 343 |
-
}
|
| 344 |
-
|
| 345 |
-
public function write($message) {
|
| 346 |
-
$file = $this->path.$this->filename;
|
| 347 |
-
$handle = fopen($file, 'a+');
|
| 348 |
-
fwrite($handle, date('Y-m-d G:i:s') . ' - ' . $message . "\n");
|
| 349 |
-
fclose($handle);
|
| 350 |
-
}
|
| 351 |
-
}
|
| 352 |
-
|
| 353 |
-
//
|
| 354 |
-
// PAYLINESDK CLASS
|
| 355 |
-
//
|
| 356 |
-
class paylineSDK{
|
| 357 |
-
|
| 358 |
-
// kit version
|
| 359 |
-
const KIT_VERSION = 'module Magento 1.7.
|
| 360 |
-
|
| 361 |
-
// trace log
|
| 362 |
-
var $paylineTrace;
|
| 363 |
-
|
| 364 |
-
// SOAP URL's
|
| 365 |
-
const PAYLINE_NAMESPACE = 'http://obj.ws.payline.experian.com';
|
| 366 |
-
const WSDL = 'Payline.wsdl';
|
| 367 |
-
const PROD_ENDPOINT = 'https://services.payline.com/V4/services/';
|
| 368 |
-
const PROD_ENDPOINT_HD = 'https://services.payline.com/V4/services/';
|
| 369 |
-
const HOMO_ENDPOINT = 'https://homologation.payline.com/V4/services/';
|
| 370 |
-
const HOMO_ENDPOINT_HD = 'https://homologation.payline.com/V4/services/';
|
| 371 |
-
|
| 372 |
-
const DIRECT_API = 'DirectPaymentAPI';
|
| 373 |
-
const EXTENDED_API = 'ExtendedAPI';
|
| 374 |
-
const WEB_API = 'WebPaymentAPI';
|
| 375 |
-
|
| 376 |
-
// current endpoint
|
| 377 |
-
private $webServicesEndpoint;
|
| 378 |
-
|
| 379 |
-
// version of web service
|
| 380 |
-
private $version = '';
|
| 381 |
-
|
| 382 |
-
// devise used by the customer
|
| 383 |
-
private $media = '';
|
| 384 |
-
|
| 385 |
-
// SOAP ACTIONS CONSTANTS
|
| 386 |
-
const soap_result = 'result';
|
| 387 |
-
const soap_authorization = 'authorization';
|
| 388 |
-
const soap_card = 'card';
|
| 389 |
-
const soap_order = 'order';
|
| 390 |
-
const soap_orderDetail = 'orderDetail';
|
| 391 |
-
const soap_payment = 'payment';
|
| 392 |
-
const soap_transaction = 'transaction';
|
| 393 |
-
const soap_privateData = 'privateData';
|
| 394 |
-
const soap_buyer = 'buyer';
|
| 395 |
-
const soap_owner = 'owner';
|
| 396 |
-
const soap_address = 'address';
|
| 397 |
-
const soap_capture = 'capture';
|
| 398 |
-
const soap_refund = 'refund';
|
| 399 |
-
const soap_refund_auth = 'refundAuthorization';
|
| 400 |
-
const soap_authentication3DSecure = 'authentication3DSecure';
|
| 401 |
-
const soap_bankAccountData = 'bankAccountData';
|
| 402 |
-
const soap_cheque = 'cheque';
|
| 403 |
-
|
| 404 |
-
// Target environment
|
| 405 |
-
public $production;
|
| 406 |
-
|
| 407 |
-
// ARRAY
|
| 408 |
-
public $header_soap;
|
| 409 |
-
public $items;
|
| 410 |
-
public $privates;
|
| 411 |
-
|
| 412 |
-
// OPTIONS
|
| 413 |
-
public $cancelURL;
|
| 414 |
-
public $securityMode;
|
| 415 |
-
public $notificationURL;
|
| 416 |
-
public $returnURL;
|
| 417 |
-
public $customPaymentTemplateURL;
|
| 418 |
-
public $customPaymentPageCode;
|
| 419 |
-
public $languageCode;
|
| 420 |
-
|
| 421 |
-
// WALLET
|
| 422 |
-
public $walletIdList;
|
| 423 |
-
|
| 424 |
-
// SWITCHING VAR
|
| 425 |
-
public $NMAX_TENTATIVE = '';
|
| 426 |
-
public $CALL_TIMEOUT = '';
|
| 427 |
-
public $RETRY_TIMEOUT = '';
|
| 428 |
-
public $PRIMARY = true ;
|
| 429 |
-
public $CURRENT_NUMBER_CALL = 0;
|
| 430 |
-
public $DEFAULT_SOCKET_TIMEOUT = 0;
|
| 431 |
-
|
| 432 |
-
/**
|
| 433 |
-
* contructor of PAYLINESDK CLASS
|
| 434 |
-
**/
|
| 435 |
-
function __construct($merchant_id, $acess_key, $proxy_host, $proxy_port, $proxy_login, $proxy_password, $production) {
|
| 436 |
-
$this->writeTrace('----------------------------------------------------------');
|
| 437 |
-
$this->writeTrace("paylineSDK::__construct($merchant_id, ".$this->maskAccessKey($acess_key).", $proxy_host, $proxy_port, $proxy_login, $proxy_password, $production)");
|
| 438 |
-
$this->header_soap = array();
|
| 439 |
-
$this->header_soap['login'] = $merchant_id;
|
| 440 |
-
$this->header_soap['password'] = $acess_key;
|
| 441 |
-
if($proxy_host != ''){
|
| 442 |
-
$this->header_soap['proxy_host'] = $proxy_host;
|
| 443 |
-
$this->header_soap['proxy_port'] = $proxy_port;
|
| 444 |
-
$this->header_soap['proxy_login'] = $proxy_login;
|
| 445 |
-
$this->header_soap['proxy_password'] = $proxy_password;
|
| 446 |
-
}
|
| 447 |
-
$this->production = $production;
|
| 448 |
-
if($production){
|
| 449 |
-
$this->webServicesEndpoint = paylineSDK::PROD_ENDPOINT;
|
| 450 |
-
}else{
|
| 451 |
-
$this->webServicesEndpoint = paylineSDK::HOMO_ENDPOINT;
|
| 452 |
-
}
|
| 453 |
-
$this->header_soap['style'] = SOAP_DOCUMENT;
|
| 454 |
-
$this->header_soap['use'] = SOAP_LITERAL;
|
| 455 |
-
$this->header_soap['version'] = paylineSDK::KIT_VERSION;
|
| 456 |
-
$this->items = array();
|
| 457 |
-
$this->privates = array();
|
| 458 |
-
$this->walletIdList = array();
|
| 459 |
-
|
| 460 |
-
ini_set('user_agent', "PHP\r\nversion: ".paylineSDK::KIT_VERSION);
|
| 461 |
-
}
|
| 462 |
-
|
| 463 |
-
/**
|
| 464 |
-
* function payment
|
| 465 |
-
* @params : $array : array. the array keys are listed in pl_payment CLASS.
|
| 466 |
-
* @return : SoapVar : object
|
| 467 |
-
* @description : build pl_payment instance from $array and make SoapVar object for payment.
|
| 468 |
-
**/
|
| 469 |
-
protected function payment($array) {
|
| 470 |
-
$payment = new pl_payment();
|
| 471 |
-
if($array && is_array($array)){
|
| 472 |
-
foreach($array as $k=>$v){
|
| 473 |
-
if(array_key_exists($k, $payment)&&(strlen($v))){
|
| 474 |
-
$payment->$k = $v;
|
| 475 |
-
}
|
| 476 |
-
}
|
| 477 |
-
}
|
| 478 |
-
return new SoapVar($payment, SOAP_ENC_OBJECT, paylineSDK::soap_payment, paylineSDK::PAYLINE_NAMESPACE);
|
| 479 |
-
}
|
| 480 |
-
|
| 481 |
-
/**
|
| 482 |
-
* function order
|
| 483 |
-
* @params : $array : array. the array keys are listed in pl_order CLASS.
|
| 484 |
-
* @return : SoapVar : object
|
| 485 |
-
* @description : build pl_order instance from $array and make SoapVar object for order.
|
| 486 |
-
**/
|
| 487 |
-
protected function order($array) {
|
| 488 |
-
$order = new pl_order();
|
| 489 |
-
if($array && is_array($array)){
|
| 490 |
-
foreach($array as $k=>$v){
|
| 491 |
-
if(array_key_exists($k, $order)&&(strlen($v))){
|
| 492 |
-
$order->$k = $v;
|
| 493 |
-
}
|
| 494 |
-
}
|
| 495 |
-
}
|
| 496 |
-
$allDetails = array();
|
| 497 |
-
// insert orderDetails
|
| 498 |
-
$order->details = $this->items;
|
| 499 |
-
return new SoapVar($order, SOAP_ENC_OBJECT, paylineSDK::soap_order, paylineSDK::PAYLINE_NAMESPACE);
|
| 500 |
-
}
|
| 501 |
-
|
| 502 |
-
/**
|
| 503 |
-
* function address
|
| 504 |
-
* @params : $address : array. the array keys are listed in pl_address CLASS.
|
| 505 |
-
* @return : SoapVar : object
|
| 506 |
-
* @description : build pl_address instance from $array and make SoapVar object for address.
|
| 507 |
-
**/
|
| 508 |
-
protected function address($array) {
|
| 509 |
-
$address = new pl_address();
|
| 510 |
-
if($array && is_array($array)){
|
| 511 |
-
foreach($array as $k=>$v){
|
| 512 |
-
if(array_key_exists($k, $address)&&(strlen($v)))$address->$k = $v;
|
| 513 |
-
}
|
| 514 |
-
}
|
| 515 |
-
return new SoapVar($address, SOAP_ENC_OBJECT, paylineSDK::soap_address, paylineSDK::PAYLINE_NAMESPACE);
|
| 516 |
-
}
|
| 517 |
-
|
| 518 |
-
/**
|
| 519 |
-
* function buyer
|
| 520 |
-
* @params : $array : array. the array keys are listed in pl_buyer CLASS.
|
| 521 |
-
* @params : $shippingAdress : array. the array keys are listed in pl_address CLASS.
|
| 522 |
-
* @params : $billingAddress : array. the array keys are listed in pl_address CLASS.
|
| 523 |
-
* @return : SoapVar : object
|
| 524 |
-
* @description : build pl_buyer instance from $array and $address and make SoapVar object for buyer.
|
| 525 |
-
**/
|
| 526 |
-
protected function buyer($array,$shippingAdress,$billingAddress) {
|
| 527 |
-
$buyer = new pl_buyer();
|
| 528 |
-
if($array && is_array($array)){
|
| 529 |
-
foreach($array as $k=>$v){
|
| 530 |
-
if(array_key_exists($k, $buyer)&&(strlen($v)))$buyer->$k = $v;
|
| 531 |
-
}
|
| 532 |
-
}
|
| 533 |
-
$buyer->shippingAdress = $this->address($shippingAdress);
|
| 534 |
-
$buyer->billingAddress = $this->address($billingAddress);
|
| 535 |
-
return new SoapVar($buyer, SOAP_ENC_OBJECT, paylineSDK::soap_buyer, paylineSDK::PAYLINE_NAMESPACE);
|
| 536 |
-
}
|
| 537 |
-
|
| 538 |
-
/**
|
| 539 |
-
* function owner
|
| 540 |
-
* @params : $array : array. the array keys are listed in pl_buyer CLASS.
|
| 541 |
-
* @params : $shippingAdress : array. the array keys are listed in pl_address CLASS.
|
| 542 |
-
* @params : $billingAddress : array. the array keys are listed in pl_address CLASS.
|
| 543 |
-
* @return : SoapVar : object
|
| 544 |
-
* @description : build pl_buyer instance from $array and $address and make SoapVar object for buyer.
|
| 545 |
-
**/
|
| 546 |
-
protected function owner($array,$Address) {
|
| 547 |
-
if($array != null){
|
| 548 |
-
$owner = new pl_owner();
|
| 549 |
-
if($array && is_array($array)){
|
| 550 |
-
foreach($array as $k=>$v){
|
| 551 |
-
if(array_key_exists($k, $owner)&&(strlen($v)))$owner->$k = $v;
|
| 552 |
-
}
|
| 553 |
-
}
|
| 554 |
-
$owner->billingAddress = $this->address($Address);
|
| 555 |
-
return new SoapVar($owner, SOAP_ENC_OBJECT, paylineSDK::soap_owner, paylineSDK::PAYLINE_NAMESPACE);
|
| 556 |
-
}else{
|
| 557 |
-
return null;
|
| 558 |
-
}
|
| 559 |
-
}
|
| 560 |
-
|
| 561 |
-
/**
|
| 562 |
-
* function contracts
|
| 563 |
-
* @params : $contracts : array. array of contracts
|
| 564 |
-
* @return : $contracts : array. the same as params if exist, or an array with default contract defined in
|
| 565 |
-
* configuration
|
| 566 |
-
* @description : Add datas to contract array
|
| 567 |
-
**/
|
| 568 |
-
protected function contracts($contracts) {
|
| 569 |
-
if($contracts && is_array($contracts)){
|
| 570 |
-
return $contracts;
|
| 571 |
-
}
|
| 572 |
-
return explode(';',(string)Mage::helper('payline')->contractNumberList);
|
| 573 |
-
}
|
| 574 |
-
|
| 575 |
-
/**
|
| 576 |
-
* function secondContracts
|
| 577 |
-
* @params : $secondContracts : array. array of contracts
|
| 578 |
-
* @return : $secondContracts : array. the same as params if exist, null otherwise
|
| 579 |
-
* @description : Add datas to contract array
|
| 580 |
-
**/
|
| 581 |
-
protected function secondContracts($secondContracts) {
|
| 582 |
-
if($secondContracts && is_array($secondContracts)){
|
| 583 |
-
return $secondContracts;
|
| 584 |
-
}
|
| 585 |
-
return null;
|
| 586 |
-
}
|
| 587 |
-
|
| 588 |
-
/**
|
| 589 |
-
* function authentification 3Dsecure
|
| 590 |
-
* @params : $array : array. the array keys are listed in pl_card CLASS.
|
| 591 |
-
* @return : SoapVar : object
|
| 592 |
-
* @description : build pl_authentication3DSecure instance from $array and make SoapVar object for authentication3DSecure.
|
| 593 |
-
**/
|
| 594 |
-
protected function authentication3DSecure($array) {
|
| 595 |
-
$authentication3DSecure = new pl_authentication3DSecure($array);
|
| 596 |
-
if($array && is_array($array)){
|
| 597 |
-
foreach($array as $k=>$v){
|
| 598 |
-
if(array_key_exists($k, $authentication3DSecure)&&(strlen($v))){
|
| 599 |
-
$authentication3DSecure->$k = $v;
|
| 600 |
-
}
|
| 601 |
-
}
|
| 602 |
-
}
|
| 603 |
-
return new SoapVar($authentication3DSecure, SOAP_ENC_OBJECT, paylineSDK::soap_authentication3DSecure, paylineSDK::PAYLINE_NAMESPACE);
|
| 604 |
-
}
|
| 605 |
-
|
| 606 |
-
/**
|
| 607 |
-
* function authorization
|
| 608 |
-
* @params : $array : array. the array keys are listed in pl_card CLASS.
|
| 609 |
-
* @return : SoapVar : object
|
| 610 |
-
* @description : build pl_authentication3DSecure instance from $array and make SoapVar object for authentication3DSecure.
|
| 611 |
-
**/
|
| 612 |
-
protected function authorization($array) {
|
| 613 |
-
$authorization = new pl_authorization($array);
|
| 614 |
-
if($array && is_array($array)){
|
| 615 |
-
foreach($array as $k=>$v){
|
| 616 |
-
if(array_key_exists($k, $authorization)&&(strlen($v))){
|
| 617 |
-
$authorization->$k = $v;
|
| 618 |
-
}
|
| 619 |
-
}
|
| 620 |
-
}
|
| 621 |
-
return new SoapVar($authorization, SOAP_ENC_OBJECT, paylineSDK::soap_authorization, paylineSDK::PAYLINE_NAMESPACE);
|
| 622 |
-
}
|
| 623 |
-
|
| 624 |
-
/**
|
| 625 |
-
* function card
|
| 626 |
-
* @params : $array : array. the array keys are listed in pl_card CLASS.
|
| 627 |
-
* @return : SoapVar : object
|
| 628 |
-
* @description : build pl_card instance from $array and make SoapVar object for card.
|
| 629 |
-
**/
|
| 630 |
-
protected function card($array) {
|
| 631 |
-
$card = new pl_card($array['type']);
|
| 632 |
-
if($array && is_array($array)){
|
| 633 |
-
foreach($array as $k=>$v){
|
| 634 |
-
if(array_key_exists($k, $card)&&(strlen($v))){
|
| 635 |
-
$card->$k = $v;
|
| 636 |
-
}
|
| 637 |
-
}
|
| 638 |
-
}
|
| 639 |
-
return new SoapVar($card, SOAP_ENC_OBJECT, paylineSDK::soap_card, paylineSDK::PAYLINE_NAMESPACE);
|
| 640 |
-
}
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
/**
|
| 645 |
-
* function bankAccountData
|
| 646 |
-
* @params : $array : array. the array keys are listed in pl_bankAccountData CLASS.
|
| 647 |
-
* @return : SoapVar : object
|
| 648 |
-
* @description : build pl_bankAccountData instance from $array and make SoapVar object for bankAccountData.
|
| 649 |
-
**/
|
| 650 |
-
protected function bankAccountData($array) {
|
| 651 |
-
$bankAccountData = new pl_bankAccountData($array);
|
| 652 |
-
if($array && is_array($array)){
|
| 653 |
-
foreach($array as $k=>$v){
|
| 654 |
-
if(array_key_exists($k, $bankAccountData)&&(strlen($v))){
|
| 655 |
-
$bankAccountData->$k = $v;
|
| 656 |
-
}
|
| 657 |
-
}
|
| 658 |
-
}
|
| 659 |
-
return new SoapVar(null, SOAP_ENC_OBJECT, paylineSDK::soap_bankAccountData, paylineSDK::PAYLINE_NAMESPACE);
|
| 660 |
-
}
|
| 661 |
-
|
| 662 |
-
/**
|
| 663 |
-
* function cheque
|
| 664 |
-
* @params : $array : array. the array keys are listed in pl_cheque CLASS.
|
| 665 |
-
* @return : SoapVar : object
|
| 666 |
-
* @description : build pl_authentication3DSecure instance from $array and make SoapVar object for cheque.
|
| 667 |
-
**/
|
| 668 |
-
protected function cheque($array) {
|
| 669 |
-
$cheque = new pl_cheque($array);
|
| 670 |
-
if($array && is_array($array)){
|
| 671 |
-
foreach($array as $k=>$v){
|
| 672 |
-
if(array_key_exists($k, $cheque)&&(strlen($v))){
|
| 673 |
-
$cheque->$k = $v;
|
| 674 |
-
}
|
| 675 |
-
}
|
| 676 |
-
}
|
| 677 |
-
return new SoapVar($cheque, SOAP_ENC_OBJECT, paylineSDK::soap_cheque, paylineSDK::PAYLINE_NAMESPACE);
|
| 678 |
-
}
|
| 679 |
-
|
| 680 |
-
/****************************************************/
|
| 681 |
-
// WALLET //
|
| 682 |
-
/****************************************************/
|
| 683 |
-
|
| 684 |
-
/**
|
| 685 |
-
* function wallet
|
| 686 |
-
* @params : array : array. the array keys are listed in pl_wallet CLASS.
|
| 687 |
-
* @params : address : array. the array keys are listed in pl_address CLASS.
|
| 688 |
-
* @params : card : array. the array keys are listed in pl_card CLASS.
|
| 689 |
-
* @return : wallet: pl_wallet Object.
|
| 690 |
-
* @description : build a wallet object.
|
| 691 |
-
**/
|
| 692 |
-
protected function wallet($array,$address,$card) {
|
| 693 |
-
$wallet = new pl_wallet();
|
| 694 |
-
if($array && is_array($array)){
|
| 695 |
-
foreach($array as $k=>$v){
|
| 696 |
-
if(array_key_exists($k, $wallet)&&(strlen($v)))$wallet->$k = $v;
|
| 697 |
-
}
|
| 698 |
-
}
|
| 699 |
-
|
| 700 |
-
$wallet->shippingAddress = $this->address($address);
|
| 701 |
-
$wallet->card = $this->card($card);
|
| 702 |
-
|
| 703 |
-
return $wallet;
|
| 704 |
-
}
|
| 705 |
-
|
| 706 |
-
/**
|
| 707 |
-
* function recurring
|
| 708 |
-
* @params : array : array. the array keys are listed in pl_recurring CLASS.
|
| 709 |
-
* @return : recurring object.
|
| 710 |
-
* @description : build a recurring object.
|
| 711 |
-
**/
|
| 712 |
-
protected function recurring($array) {
|
| 713 |
-
if($array){
|
| 714 |
-
$recurring = new pl_recurring();
|
| 715 |
-
if($array && is_array($array)){
|
| 716 |
-
foreach($array as $k=>$v){
|
| 717 |
-
if(array_key_exists($k, $recurring)&&(strlen($v)))$recurring->$k = $v;
|
| 718 |
-
}
|
| 719 |
-
}
|
| 720 |
-
return $recurring;
|
| 721 |
-
}
|
| 722 |
-
else return null;
|
| 723 |
-
}
|
| 724 |
-
|
| 725 |
-
/**
|
| 726 |
-
* function setItem
|
| 727 |
-
* @params : $item : array. the array keys are listed in PL_ORDERDETAIL CLASS.
|
| 728 |
-
* @description : Make $item SoapVar object and insert in items array
|
| 729 |
-
**/
|
| 730 |
-
public function setItem($item) {
|
| 731 |
-
$orderDetail = new pl_orderDetail();
|
| 732 |
-
if($item && is_array($item)){
|
| 733 |
-
foreach($item as $k=>$v){
|
| 734 |
-
if(array_key_exists($k, $orderDetail)&&(strlen($v)))$orderDetail->$k = $v;
|
| 735 |
-
}
|
| 736 |
-
}
|
| 737 |
-
$this->items[] = new SoapVar($orderDetail, SOAP_ENC_OBJECT, paylineSDK::soap_orderDetail, paylineSDK::PAYLINE_NAMESPACE);
|
| 738 |
-
}
|
| 739 |
-
|
| 740 |
-
/**
|
| 741 |
-
* function setPrivate
|
| 742 |
-
* @params : $private : array. the array keys are listed in PRIVATE CLASS.
|
| 743 |
-
* @description : Make $setPrivate SoapVar object and insert in privates array
|
| 744 |
-
**/
|
| 745 |
-
public function setPrivate($array) {
|
| 746 |
-
$private = new pl_privateData();
|
| 747 |
-
if($array && is_array($array)){
|
| 748 |
-
foreach($array as $k=>$v){
|
| 749 |
-
if(array_key_exists($k, $private)&&(strlen($v)))$private->$k = $v;
|
| 750 |
-
}
|
| 751 |
-
}
|
| 752 |
-
$this->privates[] = new SoapVar($private, SOAP_ENC_OBJECT, paylineSDK::soap_privateData, paylineSDK::PAYLINE_NAMESPACE);
|
| 753 |
-
}
|
| 754 |
-
|
| 755 |
-
/**
|
| 756 |
-
* function setWalletIdList
|
| 757 |
-
* @params : sting : string if wallet id separated by ';'.
|
| 758 |
-
* @return :
|
| 759 |
-
* @description : make an array of wallet id .
|
| 760 |
-
**/
|
| 761 |
-
public function setWalletIdList($walletIdList) {
|
| 762 |
-
if ($walletIdList) $this->walletIdList = explode(";", $walletIdList);
|
| 763 |
-
if(empty($walletIdList))$this->walletIdList = array(0) ;
|
| 764 |
-
}
|
| 765 |
-
|
| 766 |
-
private function maskAccessKey($accessKey){
|
| 767 |
-
$maskedAccessKey = substr($accessKey,0,2);
|
| 768 |
-
$maskedAccessKey .= substr("********************",0,strlen($accessKey)-4);
|
| 769 |
-
$maskedAccessKey .= substr($accessKey,-2);
|
| 770 |
-
return $maskedAccessKey;
|
| 771 |
-
}
|
| 772 |
-
|
| 773 |
-
private function IsSwitchingEnabled($Method){
|
| 774 |
-
$Enabled = false;
|
| 775 |
-
$ListeWS = (string)Mage::helper('payline')->contractNumber;
|
| 776 |
-
$ArrayWS = explode(",",$ListeWS);
|
| 777 |
-
foreach($ArrayWS as $Key => $Value){
|
| 778 |
-
if($Method === $Value){
|
| 779 |
-
$Enabled = true;
|
| 780 |
-
}
|
| 781 |
-
}
|
| 782 |
-
return $Enabled;
|
| 783 |
-
}
|
| 784 |
-
|
| 785 |
-
// Paramétrage Switch Primary
|
| 786 |
-
private function SwitchToPrimary(){
|
| 787 |
-
$this->NMAX_TENTATIVE = (string)Mage::helper('payline')->primaryMaxfailRetry;
|
| 788 |
-
$this->CALL_TIMEOUT = (string)Mage::helper('payline')->primaryCallTimeout;
|
| 789 |
-
$this->RETRY_TIMEOUT = (string)Mage::helper('payline')->primaryReplayTimer;
|
| 790 |
-
$this->PRIMARY = true;
|
| 791 |
-
$this->CURRENT_NUMBER_CALL = 0;
|
| 792 |
-
$this->header_soap['connection_timeout'] = $this->CALL_TIMEOUT;
|
| 793 |
-
if($this->production){
|
| 794 |
-
$this->webServicesEndpoint = paylineSDK::PROD_ENDPOINT;
|
| 795 |
-
}else{
|
| 796 |
-
$this->webServicesEndpoint = paylineSDK::HOMO_ENDPOINT;
|
| 797 |
-
}
|
| 798 |
-
}
|
| 799 |
-
|
| 800 |
-
// Paramétrage Switch Secondary
|
| 801 |
-
private function SwitchToSecondary(){
|
| 802 |
-
$this->NMAX_TENTATIVE = (string)Mage::helper('payline')->secondaryMaxfailRetry;
|
| 803 |
-
$this->CALL_TIMEOUT = (string)Mage::helper('payline')->secondaryCallTimeout;
|
| 804 |
-
$this->RETRY_TIMEOUT = (string)Mage::helper('payline')->secondaryReplayTimer;
|
| 805 |
-
$this->PRIMARY = false;
|
| 806 |
-
$this->CURRENT_NUMBER_CALL = 0;
|
| 807 |
-
$this->header_soap['connection_timeout'] = $this->CALL_TIMEOUT;
|
| 808 |
-
if($this->production){
|
| 809 |
-
$this->webServicesEndpoint = paylineSDK::PROD_ENDPOINT_HD;
|
| 810 |
-
}else{
|
| 811 |
-
$this->webServicesEndpoint = paylineSDK::HOMO_ENDPOINT_HD;
|
| 812 |
-
}
|
| 813 |
-
}
|
| 814 |
-
|
| 815 |
-
private function IsForceSwitch($Force){
|
| 816 |
-
$bool = false;
|
| 817 |
-
if(isset($Force) && !empty($Force)){
|
| 818 |
-
$bool = true;
|
| 819 |
-
}else{
|
| 820 |
-
$bool = false;
|
| 821 |
-
}
|
| 822 |
-
return $bool;
|
| 823 |
-
}
|
| 824 |
-
|
| 825 |
-
private function CheckForSwitching(){
|
| 826 |
-
$bool = false ;
|
| 827 |
-
$ini_array = parse_ini_file((string)Mage::helper('payline')->ini_file);
|
| 828 |
-
$TimeEndSwitch = $ini_array['TimeEndSwitch'];
|
| 829 |
-
$CurrentTime = time();
|
| 830 |
-
if(isset($TimeEndSwitch) && !empty($TimeEndSwitch)){
|
| 831 |
-
if($TimeEndSwitch > $CurrentTime){
|
| 832 |
-
$bool = true;
|
| 833 |
-
return $bool;
|
| 834 |
-
}else{
|
| 835 |
-
$bool = false;
|
| 836 |
-
return $bool;
|
| 837 |
-
}
|
| 838 |
-
}else{
|
| 839 |
-
$bool = false;
|
| 840 |
-
return $bool;
|
| 841 |
-
}
|
| 842 |
-
}
|
| 843 |
-
|
| 844 |
-
private function CheckForError($response){
|
| 845 |
-
$ErrCheck = false;
|
| 846 |
-
$ErrList = (string)Mage::helper('payline')->paylineErrCode;
|
| 847 |
-
$ArrayErr = explode(",",$ErrList);
|
| 848 |
-
foreach($ArrayErr as $Key => $Value){
|
| 849 |
-
if($response['result']['code'] === $Value){
|
| 850 |
-
$ErrCheck = true;
|
| 851 |
-
}
|
| 852 |
-
}
|
| 853 |
-
return $ErrCheck;
|
| 854 |
-
}
|
| 855 |
-
|
| 856 |
-
private function CheckForTokenError($response){
|
| 857 |
-
$ErrCheck = false;
|
| 858 |
-
$ErrList = (string)Mage::helper('payline')->paylineErrToken;
|
| 859 |
-
$ArrayErr = explode(",",$ErrList);
|
| 860 |
-
foreach($ArrayErr as $Key => $Value){
|
| 861 |
-
if($response['result']['code'] === $Value){
|
| 862 |
-
$ErrCheck = true;
|
| 863 |
-
}
|
| 864 |
-
}
|
| 865 |
-
return $ErrCheck;
|
| 866 |
-
}
|
| 867 |
-
|
| 868 |
-
private function init_config($Method,$ForceSwitch,$ForceValue){
|
| 869 |
-
if($this->IsSwitchingEnabled($Method)){
|
| 870 |
-
if(isset($ForceSwitch) && $this->IsForceSwitch($ForceSwitch)){
|
| 871 |
-
if(isset($ForceValue) && $ForceValue == "Primaire"){
|
| 872 |
-
$this->SwitchToPrimary();
|
| 873 |
-
}else if(isset($ForceValue) && $ForceValue == "Secondaire"){
|
| 874 |
-
$this->SwitchToSecondary();
|
| 875 |
-
}
|
| 876 |
-
}else{
|
| 877 |
-
if($this->CheckForSwitching()){
|
| 878 |
-
$this->SwitchToSecondary();
|
| 879 |
-
}else{
|
| 880 |
-
$this->SwitchToPrimary();
|
| 881 |
-
}
|
| 882 |
-
}
|
| 883 |
-
}else{
|
| 884 |
-
if(isset($ForceSwitch) && $this->IsForceSwitch($ForceSwitch)){
|
| 885 |
-
if(isset($ForceValue) && $ForceValue == "Primaire"){
|
| 886 |
-
$this->SwitchToPrimary();
|
| 887 |
-
}else if(isset($ForceValue) && $ForceValue == "Secondaire"){
|
| 888 |
-
$this->SwitchToSecondary();
|
| 889 |
-
}
|
| 890 |
-
}else{
|
| 891 |
-
$this->SwitchToPrimary();
|
| 892 |
-
}
|
| 893 |
-
}
|
| 894 |
-
}
|
| 895 |
-
|
| 896 |
-
private function CheckEndSwitch(){
|
| 897 |
-
$bool = false ;
|
| 898 |
-
$ini_array = parse_ini_file((string)Mage::helper('payline')->ini_file);
|
| 899 |
-
$TimeEndSwitch = $ini_array['TimeEndSwitch'];
|
| 900 |
-
$EndSwitch = $ini_array['EndSwitchTry'];
|
| 901 |
-
$CurrentTime = time();
|
| 902 |
-
if(isset($TimeEndSwitch) && !empty($TimeEndSwitch)){
|
| 903 |
-
if(($CurrentTime > $TimeEndSwitch) && $EndSwitch == 1 && $this->PRIMARY){
|
| 904 |
-
$bool = true;
|
| 905 |
-
}
|
| 906 |
-
}
|
| 907 |
-
return $bool;
|
| 908 |
-
}
|
| 909 |
-
|
| 910 |
-
|
| 911 |
-
private function SetCallSocketTimeOut(){
|
| 912 |
-
$this->DEFAULT_SOCKET_TIMEOUT = ini_get('default_socket_timeout');
|
| 913 |
-
ini_set('default_socket_timeout', $this->CALL_TIMEOUT);
|
| 914 |
-
}
|
| 915 |
-
|
| 916 |
-
private function SetDefaultSocketTimeOut(){
|
| 917 |
-
ini_set('default_socket_timeout', $this->DEFAULT_SOCKET_TIMEOUT);
|
| 918 |
-
}
|
| 919 |
-
|
| 920 |
-
private function VerifyIfAnotherWShasSwitch($Method){
|
| 921 |
-
if($this->IsSwitchingEnabled($Method) && $this->CheckForSwitching() && $this->PRIMARY){
|
| 922 |
-
$this->SwitchToSecondary();
|
| 923 |
-
}
|
| 924 |
-
}
|
| 925 |
-
private function AddResponseSwitchingChain($Method,$response){
|
| 926 |
-
if($this->IsSwitchingEnabled($Method)){
|
| 927 |
-
$response['Switch']['Wsdl File'] = "$this->WSDL_DIRECT_SOAP";
|
| 928 |
-
}
|
| 929 |
-
return $response;
|
| 930 |
-
}
|
| 931 |
-
|
| 932 |
-
private function CheckIniValue($key,$value){
|
| 933 |
-
$bool = false ;
|
| 934 |
-
$ini_array = parse_ini_file((string)Mage::helper('payline')->ini_file);
|
| 935 |
-
$EndSwitch = $ini_array[$key];
|
| 936 |
-
if(isset($EndSwitch) && !empty($EndSwitch) && $EndSwitch == $value){
|
| 937 |
-
$bool = true;
|
| 938 |
-
}
|
| 939 |
-
|
| 940 |
-
return $bool;
|
| 941 |
-
}
|
| 942 |
-
|
| 943 |
-
private function Switcher($DateDebut,$Method,$WS,$WSRequest,$WDSL){
|
| 944 |
-
$DateFin = time();
|
| 945 |
-
$this->SetDefaultSocketTimeOut();
|
| 946 |
-
$response = array();
|
| 947 |
-
while($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL){
|
| 948 |
-
if($this->PRIMARY){
|
| 949 |
-
if(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)) >= 0){
|
| 950 |
-
sleep(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)));
|
| 951 |
-
$DateDebut = 0;
|
| 952 |
-
$DateFin = 0;
|
| 953 |
-
}
|
| 954 |
-
}else{
|
| 955 |
-
sleep($this->RETRY_TIMEOUT);
|
| 956 |
-
}
|
| 957 |
-
try{
|
| 958 |
-
$this->SetCallSocketTimeOut();
|
| 959 |
-
$this->VerifyIfAnotherWShasSwitch($Method);
|
| 960 |
-
$client = new SoapClient($WDSL, $this->header_soap);
|
| 961 |
-
$DateDebut = time();
|
| 962 |
-
$WSresponse = $this->WSCall("$WS",$WSRequest,$client);
|
| 963 |
-
$this->SetDefaultSocketTimeOut();
|
| 964 |
-
$response = util::responseToArray($WSresponse);
|
| 965 |
-
$response = $this->AddResponseSwitchingChain($Method,$response);
|
| 966 |
-
if($this->CheckForError($response)){
|
| 967 |
-
throw new Exception('Technical Error : '+$response['result']['code']+' : '+$response['result']['shortMessage']+' : '+$response['result']['longMessage']);
|
| 968 |
-
}else{
|
| 969 |
-
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 970 |
-
if(!$this->CheckIniValue('EndSwitchTry',0)){
|
| 971 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 972 |
-
$jIniFileModifier->setValue('EndSwitchTry', 0, 'Switcher', null);
|
| 973 |
-
$jIniFileModifier->save();
|
| 974 |
-
}
|
| 975 |
-
}
|
| 976 |
-
return $response;
|
| 977 |
-
}
|
| 978 |
-
}catch (Exception $e){
|
| 979 |
-
$DateFin = time();
|
| 980 |
-
$this->CURRENT_NUMBER_CALL++;
|
| 981 |
-
if(!($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL) && $this->PRIMARY){
|
| 982 |
-
$this->SwitchToSecondary();
|
| 983 |
-
$this->CURRENT_NUMBER_CALL = 0;
|
| 984 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 985 |
-
$jIniFileModifier->setValue('TimeEndSwitch', time()+((int)Mage::helper('payline')->ini_file), 'Switcher', null);
|
| 986 |
-
$jIniFileModifier->save();
|
| 987 |
-
if(!$this->CheckIniValue('EndSwitchTry',1)){
|
| 988 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 989 |
-
$jIniFileModifier->setValue('EndSwitchTry', 1, 'Switcher', null);
|
| 990 |
-
$jIniFileModifier->save();
|
| 991 |
-
}
|
| 992 |
-
}
|
| 993 |
-
|
| 994 |
-
}
|
| 995 |
-
|
| 996 |
-
}
|
| 997 |
-
return $response;
|
| 998 |
-
}
|
| 999 |
-
|
| 1000 |
-
// Fonction qui permet l'utilisation de la plateforme HD et qui corrige le bug de formatage des données pour le WS getCards
|
| 1001 |
-
private function SwitcherFormatResponse($DateDebut,$Method,$WS,$WSRequest,$WDSL){
|
| 1002 |
-
$DateFin = time();
|
| 1003 |
-
$this->SetDefaultSocketTimeOut();
|
| 1004 |
-
$response = array();
|
| 1005 |
-
while($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL){
|
| 1006 |
-
if($this->PRIMARY){
|
| 1007 |
-
if(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)) >= 0){
|
| 1008 |
-
sleep(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)));
|
| 1009 |
-
$DateDebut = 0;
|
| 1010 |
-
$DateFin = 0;
|
| 1011 |
-
}
|
| 1012 |
-
}else{
|
| 1013 |
-
sleep($this->RETRY_TIMEOUT);
|
| 1014 |
-
}
|
| 1015 |
-
try{
|
| 1016 |
-
$this->SetCallSocketTimeOut();
|
| 1017 |
-
$this->VerifyIfAnotherWShasSwitch($Method);
|
| 1018 |
-
$client = new SoapClient($WDSL, $this->header_soap);
|
| 1019 |
-
$DateDebut = time();
|
| 1020 |
-
$WSresponse = $this->WSCall("$WS",$WSRequest,$client);
|
| 1021 |
-
$this->SetDefaultSocketTimeOut();
|
| 1022 |
-
$response = util::responseToArrayForGetCards($WSresponse);
|
| 1023 |
-
$response = $this->AddResponseSwitchingChain($Method,$response);
|
| 1024 |
-
if($this->CheckForError($response)){
|
| 1025 |
-
throw new Exception('Technical Error : '+$response['result']['code']+' : '+$response['result']['shortMessage']+' : '+$response['result']['longMessage']);
|
| 1026 |
-
}else{
|
| 1027 |
-
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1028 |
-
if(!$this->CheckIniValue('EndSwitchTry',0)){
|
| 1029 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1030 |
-
$jIniFileModifier->setValue('EndSwitchTry', 0, 'Switcher', null);
|
| 1031 |
-
$jIniFileModifier->save();
|
| 1032 |
-
}
|
| 1033 |
-
}
|
| 1034 |
-
return $response;
|
| 1035 |
-
}
|
| 1036 |
-
}catch (Exception $e){
|
| 1037 |
-
$DateFin = time();
|
| 1038 |
-
$this->CURRENT_NUMBER_CALL++;
|
| 1039 |
-
if(!($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL) && $this->PRIMARY){
|
| 1040 |
-
$this->SwitchToSecondary();
|
| 1041 |
-
$this->CURRENT_NUMBER_CALL = 0;
|
| 1042 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1043 |
-
$jIniFileModifier->setValue('TimeEndSwitch', time()+((int)Mage::helper('payline')->ini_file), 'Switcher', null);
|
| 1044 |
-
$jIniFileModifier->save();
|
| 1045 |
-
if(!$this->CheckIniValue('EndSwitchTry',1)){
|
| 1046 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1047 |
-
$jIniFileModifier->setValue('EndSwitchTry', 1, 'Switcher', null);
|
| 1048 |
-
$jIniFileModifier->save();
|
| 1049 |
-
}
|
| 1050 |
-
}
|
| 1051 |
-
}
|
| 1052 |
-
}
|
| 1053 |
-
return $response;
|
| 1054 |
-
}
|
| 1055 |
-
|
| 1056 |
-
private function WSCall($Method,$WSRequest,$client){
|
| 1057 |
-
$response = null ;
|
| 1058 |
-
switch ($Method) {
|
| 1059 |
-
case "doWebPayment":
|
| 1060 |
-
$response = $client->doWebPayment($WSRequest);
|
| 1061 |
-
break;
|
| 1062 |
-
case "doAuthorization":
|
| 1063 |
-
$response = $client->doAuthorization($WSRequest);
|
| 1064 |
-
break;
|
| 1065 |
-
case "doCapture":
|
| 1066 |
-
$response = $client->doCapture($WSRequest);
|
| 1067 |
-
break;
|
| 1068 |
-
case "doRefund":
|
| 1069 |
-
$response = $client->doRefund($WSRequest);
|
| 1070 |
-
break;
|
| 1071 |
-
case "doCredit":
|
| 1072 |
-
$response = $client->doCredit($WSRequest);
|
| 1073 |
-
break;
|
| 1074 |
-
case "verifyEnrollment":
|
| 1075 |
-
$response = $client->verifyEnrollment($WSRequest);
|
| 1076 |
-
break;
|
| 1077 |
-
case "doDebit":
|
| 1078 |
-
$response = $client->doDebit($WSRequest);
|
| 1079 |
-
break;
|
| 1080 |
-
case "doReset":
|
| 1081 |
-
$response = $client->doReset($WSRequest);
|
| 1082 |
-
break;
|
| 1083 |
-
case "createWallet":
|
| 1084 |
-
$response = $client->createWallet($WSRequest);
|
| 1085 |
-
break;
|
| 1086 |
-
case "getWallet":
|
| 1087 |
-
$response = $client->getWallet($WSRequest);
|
| 1088 |
-
break;
|
| 1089 |
-
case "updateWallet":
|
| 1090 |
-
$response = $client->updateWallet($WSRequest);
|
| 1091 |
-
break;
|
| 1092 |
-
case "createWebWallet":
|
| 1093 |
-
$response = $client->createWebWallet($WSRequest);
|
| 1094 |
-
break;
|
| 1095 |
-
case "updateWebWallet":
|
| 1096 |
-
$response = $client->updateWebWallet($WSRequest);
|
| 1097 |
-
break;
|
| 1098 |
-
case "disableWallet":
|
| 1099 |
-
$response = $client->disableWallet($WSRequest);
|
| 1100 |
-
break;
|
| 1101 |
-
case "enableWallet":
|
| 1102 |
-
$response = $client->enableWallet($WSRequest);
|
| 1103 |
-
break;
|
| 1104 |
-
case "doImmediateWalletPayment":
|
| 1105 |
-
$response = $client->doImmediateWalletPayment($WSRequest);
|
| 1106 |
-
break;
|
| 1107 |
-
case "doScheduledWalletPayment":
|
| 1108 |
-
$response = $client->doScheduledWalletPayment($WSRequest);
|
| 1109 |
-
break;
|
| 1110 |
-
case "doRecurrentWalletPayment":
|
| 1111 |
-
$response = $client->doRecurrentWalletPayment($WSRequest);
|
| 1112 |
-
break;
|
| 1113 |
-
case "getPaymentRecord":
|
| 1114 |
-
$response = $client->getPaymentRecord($WSRequest);
|
| 1115 |
-
break;
|
| 1116 |
-
case "disablePaymentRecord":
|
| 1117 |
-
$response = $client->disablePaymentRecord($WSRequest);
|
| 1118 |
-
break;
|
| 1119 |
-
case "getTransactionDetails":
|
| 1120 |
-
$response = $client->getTransactionDetails($WSRequest);
|
| 1121 |
-
break;
|
| 1122 |
-
case "transactionsSearch":
|
| 1123 |
-
$response = $client->transactionsSearch($WSRequest);
|
| 1124 |
-
break;
|
| 1125 |
-
case "verifyAuthentication":
|
| 1126 |
-
$response = $client->verifyAuthentication($WSRequest);
|
| 1127 |
-
break;
|
| 1128 |
-
case "getEncryptionKey":
|
| 1129 |
-
$response = $client->getEncryptionKey($WSRequest);
|
| 1130 |
-
break;
|
| 1131 |
-
case "getCards":
|
| 1132 |
-
$response = $client->getCards($WSRequest);
|
| 1133 |
-
break;
|
| 1134 |
-
case "doScoringCheque":
|
| 1135 |
-
$response = $client->doScoringCheque($WSRequest);
|
| 1136 |
-
break;
|
| 1137 |
-
case "doReAuthorization":
|
| 1138 |
-
$response = $client->doReAuthorization($WSRequest);
|
| 1139 |
-
break;
|
| 1140 |
-
}
|
| 1141 |
-
return $response;
|
| 1142 |
-
}
|
| 1143 |
-
|
| 1144 |
-
private function TokenSwitch($token){
|
| 1145 |
-
$Check = substr($token,0,1);
|
| 1146 |
-
if($Check == (string)Mage::helper('payline')->primaryTokenPrefix){
|
| 1147 |
-
$this->SwitchToPrimary();
|
| 1148 |
-
}else if($Check == (string)Mage::helper('payline')->secondaryTokenPrefix){
|
| 1149 |
-
$this->SwitchToSecondary();
|
| 1150 |
-
}
|
| 1151 |
-
}
|
| 1152 |
-
|
| 1153 |
-
/**
|
| 1154 |
-
* @method writeTrace
|
| 1155 |
-
* @desc write a trace in Payline log file
|
| 1156 |
-
* @param $trace : the string to add in the log file
|
| 1157 |
-
*/
|
| 1158 |
-
public function writeTrace($trace){
|
| 1159 |
-
if(!isset($this->paylineTrace)){
|
| 1160 |
-
$this->paylineTrace = new Log(date('Y-m-d',time()).'.log');
|
| 1161 |
-
}
|
| 1162 |
-
$this->paylineTrace->write($trace);
|
| 1163 |
-
}
|
| 1164 |
-
|
| 1165 |
-
private function webServiceRequest($array,$WSRequest,$PaylineAPI,$Method){
|
| 1166 |
-
try{
|
| 1167 |
-
if(isset($array['Switch']['Forced'])){
|
| 1168 |
-
$this->init_config($Method,$array['Switch']['Forced'],$array['Switch']['Choice']);
|
| 1169 |
-
}else{
|
| 1170 |
-
$this->init_config($Method,'','');
|
| 1171 |
-
}
|
| 1172 |
-
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1173 |
-
$this->NMAX_TENTATIVE = 1;
|
| 1174 |
-
}
|
| 1175 |
-
set_time_limit(0);
|
| 1176 |
-
$this->SetCallSocketTimeOut();
|
| 1177 |
-
$DateDebut = time();
|
| 1178 |
-
$this->VerifyIfAnotherWShasSwitch($Method);
|
| 1179 |
-
$client = new SoapClient(dirname(__FILE__).'/'.paylineSDK::WSDL, $this->header_soap);
|
| 1180 |
-
$client->__setLocation ($this->webServicesEndpoint.$PaylineAPI);
|
| 1181 |
-
$this->writeTrace("webServiceRequest($Method) - Location : ".$this->webServicesEndpoint.$PaylineAPI);
|
| 1182 |
-
if(isset($array['version'])&& strlen($array['version'])) $this->version = $array['version'];
|
| 1183 |
-
if(isset($array['media'])&& strlen($array['media'])) $this->media = $array['media'];
|
| 1184 |
-
|
| 1185 |
-
switch($Method){
|
| 1186 |
-
case 'createMerchant':
|
| 1187 |
-
$WSresponse = $client->createMerchant($WSRequest);
|
| 1188 |
-
break;
|
| 1189 |
-
case 'createWallet':
|
| 1190 |
-
$WSresponse = $client->createWallet($WSRequest);
|
| 1191 |
-
break;
|
| 1192 |
-
case 'createWebWallet':
|
| 1193 |
-
$WSresponse = $client->createWebWallet($WSRequest);
|
| 1194 |
-
break;
|
| 1195 |
-
case 'disablePaymentRecord':
|
| 1196 |
-
$WSresponse = $client->disablePaymentRecord($WSRequest);
|
| 1197 |
-
break;
|
| 1198 |
-
case 'disableWallet':
|
| 1199 |
-
$WSresponse = $client->disableWallet($WSRequest);
|
| 1200 |
-
break;
|
| 1201 |
-
case 'doAuthorization':
|
| 1202 |
-
$WSresponse = $client->doAuthorization($WSRequest);
|
| 1203 |
-
break;
|
| 1204 |
-
case 'doCapture':
|
| 1205 |
-
$WSresponse = $client->doCapture($WSRequest);
|
| 1206 |
-
break;
|
| 1207 |
-
case 'doCredit':
|
| 1208 |
-
$WSresponse = $client->doCredit($WSRequest);
|
| 1209 |
-
break;
|
| 1210 |
-
case 'doDebit':
|
| 1211 |
-
$WSresponse = $client->doDebit($WSRequest);
|
| 1212 |
-
break;
|
| 1213 |
-
case 'doImmediateWalletPayment':
|
| 1214 |
-
$WSresponse = $client->doImmediateWalletPayment($WSRequest);
|
| 1215 |
-
break;
|
| 1216 |
-
case 'doReAuthorization':
|
| 1217 |
-
$WSresponse = $client->doReAuthorization($WSRequest);
|
| 1218 |
-
break;
|
| 1219 |
-
case 'doRecurrentWalletPayment':
|
| 1220 |
-
$WSresponse = $client->doRecurrentWalletPayment($WSRequest);
|
| 1221 |
-
break;
|
| 1222 |
-
case 'doRefund':
|
| 1223 |
-
$WSresponse = $client->doRefund($WSRequest);
|
| 1224 |
-
break;
|
| 1225 |
-
case 'doReset':
|
| 1226 |
-
$WSresponse = $client->doReset($WSRequest);
|
| 1227 |
-
break;
|
| 1228 |
-
case 'doScheduledWalletPayment':
|
| 1229 |
-
$WSresponse = $client->doScheduledWalletPayment($WSRequest);
|
| 1230 |
-
break;
|
| 1231 |
-
case 'doScoringCheque':
|
| 1232 |
-
$WSresponse = $client->doScoringCheque($WSRequest);
|
| 1233 |
-
break;
|
| 1234 |
-
case 'doWebPayment':
|
| 1235 |
-
$WSresponse = $client->doWebPayment($WSRequest);
|
| 1236 |
-
break;
|
| 1237 |
-
case 'enableWallet':
|
| 1238 |
-
$WSresponse = $client->enableWallet($WSRequest);
|
| 1239 |
-
break;
|
| 1240 |
-
case 'getBalance':
|
| 1241 |
-
$WSresponse = $client->getBalance($WSRequest);
|
| 1242 |
-
break;
|
| 1243 |
-
case 'getCards':
|
| 1244 |
-
$WSresponse = $client->getCards($WSRequest);
|
| 1245 |
-
break;
|
| 1246 |
-
case 'getEncryptionKey':
|
| 1247 |
-
$WSresponse = $client->getEncryptionKey($WSRequest);
|
| 1248 |
-
break;
|
| 1249 |
-
case 'getMerchantSettings':
|
| 1250 |
-
$WSresponse = $client->getMerchantSettings($WSRequest);
|
| 1251 |
-
break;
|
| 1252 |
-
case 'getPaymentRecord':
|
| 1253 |
-
$WSresponse = $client->getPaymentRecord($WSRequest);
|
| 1254 |
-
break;
|
| 1255 |
-
case 'getTransactionDetails':
|
| 1256 |
-
$WSresponse = $client->getTransactionDetails($WSRequest);
|
| 1257 |
-
break;
|
| 1258 |
-
case 'getWallet':
|
| 1259 |
-
$WSresponse = $client->getWallet($WSRequest);
|
| 1260 |
-
break;
|
| 1261 |
-
case 'getWebPaymentDetails':
|
| 1262 |
-
$WSresponse = $client->getWebPaymentDetails($WSRequest);
|
| 1263 |
-
break;
|
| 1264 |
-
case 'getWebWallet':
|
| 1265 |
-
$WSresponse = $client->getWebWallet($WSRequest);
|
| 1266 |
-
break;
|
| 1267 |
-
case 'manageWebWallet' :
|
| 1268 |
-
$WSresponse = $client->manageWebWallet($WSRequest);
|
| 1269 |
-
break;
|
| 1270 |
-
case 'transactionsSearch':
|
| 1271 |
-
$WSresponse = $client->transactionsSearch($WSRequest);
|
| 1272 |
-
break;
|
| 1273 |
-
case 'updateWallet':
|
| 1274 |
-
$WSresponse = $client->updateWallet($WSRequest);
|
| 1275 |
-
break;
|
| 1276 |
-
case 'updateWebWallet':
|
| 1277 |
-
$WSresponse = $client->updateWebWallet($WSRequest);
|
| 1278 |
-
break;
|
| 1279 |
-
case 'verifyAuthentication':
|
| 1280 |
-
$WSresponse = $client->verifyAuthentication($WSRequest);
|
| 1281 |
-
break;
|
| 1282 |
-
case 'verifyEnrollment':
|
| 1283 |
-
$WSresponse = $client->verifyEnrollment($WSRequest);
|
| 1284 |
-
break;
|
| 1285 |
-
|
| 1286 |
-
}
|
| 1287 |
-
|
| 1288 |
-
$this->CURRENT_NUMBER_CALL++;
|
| 1289 |
-
$this->SetDefaultSocketTimeOut();
|
| 1290 |
-
if($Method == 'getCards'){
|
| 1291 |
-
$response = util::responseToArrayForGetCards($WSresponse);
|
| 1292 |
-
|
| 1293 |
-
}else{
|
| 1294 |
-
$response = util::responseToArray($WSresponse);
|
| 1295 |
-
}
|
| 1296 |
-
$response = $this->AddResponseSwitchingChain($Method,$response);
|
| 1297 |
-
|
| 1298 |
-
if($this->CheckForError($response)){
|
| 1299 |
-
throw new Exception('Technical Error : '+$response['result']['code']+' : '+$response['result']['shortMessage']+' : '+$response['result']['longMessage']);
|
| 1300 |
-
}else{
|
| 1301 |
-
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1302 |
-
if(!$this->CheckIniValue('EndSwitchTry',0)){
|
| 1303 |
-
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1304 |
-
$jIniFileModifier->setValue('EndSwitchTry', 0, 'Switcher', null);
|
| 1305 |
-
$jIniFileModifier->save();
|
| 1306 |
-
}
|
| 1307 |
-
}
|
| 1308 |
-
$this->writeTrace("response return (code ".$response['result']['code'].")");
|
| 1309 |
-
return $response;
|
| 1310 |
-
}
|
| 1311 |
-
}catch ( Exception $e ) {
|
| 1312 |
-
$this->writeTrace("Exception : ".$e->getMessage());
|
| 1313 |
-
if($this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1314 |
-
$WS = $Method;
|
| 1315 |
-
return $this->Switcher($DateDebut,$Method,$WS,$WSRequest,$this->WSDL_DIRECT_SOAP);
|
| 1316 |
-
}
|
| 1317 |
-
return $e->getMessage();
|
| 1318 |
-
}
|
| 1319 |
-
}
|
| 1320 |
-
|
| 1321 |
-
public function createWallet($array){
|
| 1322 |
-
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1323 |
-
$WSRequest = array (
|
| 1324 |
-
'version' => $array['version'], // modified by smile
|
| 1325 |
-
'contractNumber' => $array['contractNumber'],
|
| 1326 |
-
'wallet' => $this->wallet($array['wallet'],$array['address'],$array['card']),
|
| 1327 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1328 |
-
'owner' => $this->owner($array['owner'],$array['ownerAddress']),
|
| 1329 |
-
'privateDataList' => $this->privates,
|
| 1330 |
-
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1331 |
-
'media' => $this->media,
|
| 1332 |
-
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1333 |
-
);
|
| 1334 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'createWallet');
|
| 1335 |
-
}
|
| 1336 |
-
|
| 1337 |
-
public function createWebWallet($array){
|
| 1338 |
-
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1339 |
-
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1340 |
-
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1341 |
-
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1342 |
-
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1343 |
-
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1344 |
-
if(isset($array['languageCode'])&& strlen($array['languageCode'])) $this->languageCode = $array['languageCode'];
|
| 1345 |
-
if(isset($array['securityMode'])&& strlen($array['securityMode'])) $this->securityMode = $array['securityMode'];
|
| 1346 |
-
if(!isset($array['contracts'])||!strlen($array['contracts'][0]))$array['contracts'] = '';
|
| 1347 |
-
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1348 |
-
$WSRequest = array (
|
| 1349 |
-
'version' => $array['version'], // modified by smile
|
| 1350 |
-
'contractNumber' => $array['contractNumber'],
|
| 1351 |
-
'selectedContractList' => $this->contracts($array['contracts']),
|
| 1352 |
-
'updatePersonalDetails' => $array['updatePersonalDetails'],
|
| 1353 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1354 |
-
'languageCode' => $this->languageCode,
|
| 1355 |
-
'customPaymentPageCode' => $this->customPaymentPageCode,
|
| 1356 |
-
'securityMode' => $this->securityMode,
|
| 1357 |
-
'returnURL' => $this->returnURL,
|
| 1358 |
-
'cancelURL' => $this->cancelURL,
|
| 1359 |
-
'notificationURL' => $this->notificationURL,
|
| 1360 |
-
'privateDataList' => $this->privates,
|
| 1361 |
-
'customPaymentTemplateURL' => $this->customPaymentTemplateURL,
|
| 1362 |
-
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1363 |
-
);
|
| 1364 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'createWebWallet');
|
| 1365 |
-
}
|
| 1366 |
-
|
| 1367 |
-
public function disablePaymentRecord($array){
|
| 1368 |
-
$WSRequest = array (
|
| 1369 |
-
'contractNumber' => $array['contractNumber'],
|
| 1370 |
-
'paymentRecordId' => $array['paymentRecordId']
|
| 1371 |
-
);
|
| 1372 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'disablePaymentRecord');
|
| 1373 |
-
}
|
| 1374 |
-
|
| 1375 |
-
public function disableWallet($array){
|
| 1376 |
-
$WSRequest = array (
|
| 1377 |
-
'contractNumber' => $array['contractNumber'],
|
| 1378 |
-
'walletIdList' => $this->walletIdList,
|
| 1379 |
-
'cardInd' => $array['cardInd']
|
| 1380 |
-
);
|
| 1381 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'disableWallet');
|
| 1382 |
-
}
|
| 1383 |
-
|
| 1384 |
-
public function doAuthorization($array){
|
| 1385 |
-
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1386 |
-
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1387 |
-
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1388 |
-
$WSRequest = array (
|
| 1389 |
-
'version' => $array['version'], // modified by smile
|
| 1390 |
-
'payment' => $this->payment($array['payment']),
|
| 1391 |
-
'card' => $this->card($array['card']),
|
| 1392 |
-
'order' => $this->order($array['order']),
|
| 1393 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1394 |
-
'privateDataList' => $this->privates,
|
| 1395 |
-
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1396 |
-
'bankAccountData' => $this->bankAccountData($array['BankAccountData']),
|
| 1397 |
-
'media' => $this->media
|
| 1398 |
-
);
|
| 1399 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doAuthorization');
|
| 1400 |
-
}
|
| 1401 |
-
|
| 1402 |
-
public function doCapture($array){
|
| 1403 |
-
$WSRequest = array (
|
| 1404 |
-
'version' => $array['version'], // modified by smile
|
| 1405 |
-
'transactionID' =>$array['transactionID'],
|
| 1406 |
-
'payment' => $this->payment($array['payment']),
|
| 1407 |
-
'privateDataList' => $this->privates,
|
| 1408 |
-
'sequenceNumber'=>$array['sequenceNumber'],
|
| 1409 |
-
'media' => $this->media
|
| 1410 |
-
);
|
| 1411 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doCapture');
|
| 1412 |
-
}
|
| 1413 |
-
|
| 1414 |
-
public function doCredit($array){
|
| 1415 |
-
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1416 |
-
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1417 |
-
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1418 |
-
$WSRequest = array (
|
| 1419 |
-
'version' => $array['version'], // modified by smile
|
| 1420 |
-
'payment' => $this->payment($array['payment']),
|
| 1421 |
-
'card' => $this->card($array['card']),
|
| 1422 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1423 |
-
'privateDataList' => $this->privates,
|
| 1424 |
-
'order' => $this->order($array['order']),
|
| 1425 |
-
'comment' =>$array['comment'],
|
| 1426 |
-
'media' => $this->media
|
| 1427 |
-
);
|
| 1428 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doCredit');
|
| 1429 |
-
}
|
| 1430 |
-
|
| 1431 |
-
public function doDebit($array){
|
| 1432 |
-
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1433 |
-
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1434 |
-
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1435 |
-
$WSRequest = array (
|
| 1436 |
-
'version' => $array['version'], // modified by smile
|
| 1437 |
-
'payment' => $this->payment($array['payment']),
|
| 1438 |
-
'card' => $this->card($array['card']),
|
| 1439 |
-
'order' => $this->order($array['order']),
|
| 1440 |
-
'privateDataList' => $this->privates,
|
| 1441 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1442 |
-
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1443 |
-
'authorization' =>$this->authorization($array['authorization']),
|
| 1444 |
-
'media' => $this->media
|
| 1445 |
-
);
|
| 1446 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doDebit');
|
| 1447 |
-
}
|
| 1448 |
-
|
| 1449 |
-
public function doImmediateWalletPayment($array){
|
| 1450 |
-
$WSRequest = array (
|
| 1451 |
-
'version' => $array['version'], // modified by smile
|
| 1452 |
-
'payment' => $this->payment($array['payment']),
|
| 1453 |
-
'order' => $this->order($array['order']),
|
| 1454 |
-
'walletId' => $array['walletId'],
|
| 1455 |
-
'cardInd' => $array['cardInd'],
|
| 1456 |
-
'privateDataList' => $this->privates,
|
| 1457 |
-
'media' => $this->media,
|
| 1458 |
-
);
|
| 1459 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doImmediateWalletPayment');
|
| 1460 |
-
}
|
| 1461 |
-
|
| 1462 |
-
public function doReAuthorization($array){
|
| 1463 |
-
$WSRequest = array (
|
| 1464 |
-
'version' => $array['version'], // modified by smile
|
| 1465 |
-
'transactionID' => $array['transactionID'],
|
| 1466 |
-
'payment' => $this->payment($array['payment']),
|
| 1467 |
-
'order' => $this->order($array['order']),
|
| 1468 |
-
'privateDataList' => $this->privates,
|
| 1469 |
-
'media' => $this->media
|
| 1470 |
-
);
|
| 1471 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doReAuthorization');
|
| 1472 |
-
}
|
| 1473 |
-
|
| 1474 |
-
public function doRecurrentWalletPayment($array){
|
| 1475 |
-
$WSRequest = array (
|
| 1476 |
-
'version' => $array['version'], // modified by smile
|
| 1477 |
-
'payment' => $this->payment($array['payment']),
|
| 1478 |
-
'orderRef' => $array['orderRef'],
|
| 1479 |
-
'orderDate' => $array['orderDate'],
|
| 1480 |
-
'scheduledDate' => $array['scheduled'],
|
| 1481 |
-
'walletId' => $array['walletId'],
|
| 1482 |
-
'cardInd' => $array['cardInd'],
|
| 1483 |
-
'recurring' => $this->recurring($array['recurring']),
|
| 1484 |
-
'privateDataList' => $this->privates,
|
| 1485 |
-
'order' => $this->order($array['order']),
|
| 1486 |
-
'media' => $this->media
|
| 1487 |
-
);
|
| 1488 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doRecurrentWalletPayment');
|
| 1489 |
-
}
|
| 1490 |
-
|
| 1491 |
-
public function doRefund($array){
|
| 1492 |
-
$WSRequest = array (
|
| 1493 |
-
'version' => $array['version'], // modified by smile
|
| 1494 |
-
'transactionID' =>$array['transactionID'],
|
| 1495 |
-
'payment' =>$this->payment($array['payment']),
|
| 1496 |
-
'comment' =>$array['comment'],
|
| 1497 |
-
'privateDataList' => $this->privates,
|
| 1498 |
-
'sequenceNumber'=>$array['sequenceNumber'],
|
| 1499 |
-
'media' => $this->media
|
| 1500 |
-
);
|
| 1501 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doRefund');
|
| 1502 |
-
}
|
| 1503 |
-
|
| 1504 |
-
public function doReset($array){
|
| 1505 |
-
$WSRequest = array (
|
| 1506 |
-
'version' => $array['version'], // modified by smile
|
| 1507 |
-
'transactionID' => $array['transactionID'],
|
| 1508 |
-
'comment' => $array['comment'],
|
| 1509 |
-
'media' => $this->media
|
| 1510 |
-
);
|
| 1511 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doReset');
|
| 1512 |
-
}
|
| 1513 |
-
|
| 1514 |
-
public function doScheduledWalletPayment($array){
|
| 1515 |
-
$WSRequest = array (
|
| 1516 |
-
'version' => $array['version'], // modified by smile
|
| 1517 |
-
'payment' => $this->payment($array['payment']),
|
| 1518 |
-
'orderRef' => $array['orderRef'],
|
| 1519 |
-
'orderDate' => $array['orderDate'],
|
| 1520 |
-
'scheduledDate' => $array['scheduled'],
|
| 1521 |
-
'walletId' => $array['walletId'],
|
| 1522 |
-
'cardInd' => $array['cardInd'],
|
| 1523 |
-
'order' => $this->order($array['order']),
|
| 1524 |
-
'privateDataList' => $this->privates,
|
| 1525 |
-
'media' => $this->media
|
| 1526 |
-
);
|
| 1527 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doScheduledWalletPayment');
|
| 1528 |
-
}
|
| 1529 |
-
|
| 1530 |
-
public function doScoringCheque($array){
|
| 1531 |
-
$WSRequest = array (
|
| 1532 |
-
'version' => $array['version'], // modified by smile
|
| 1533 |
-
'payment' => $this->payment($array['payment']),
|
| 1534 |
-
'cheque' => $this->cheque($array['cheque']),
|
| 1535 |
-
'order' => $this->order($array['order']),
|
| 1536 |
-
'privateDataList' => $this->privates,
|
| 1537 |
-
'media' => $this->media
|
| 1538 |
-
);
|
| 1539 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doScoringCheque');
|
| 1540 |
-
}
|
| 1541 |
-
|
| 1542 |
-
public function doWebPayment($array){
|
| 1543 |
-
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1544 |
-
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1545 |
-
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1546 |
-
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1547 |
-
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1548 |
-
if(isset($array['languageCode'])&& strlen($array['languageCode'])) $this->languageCode = $array['languageCode'];
|
| 1549 |
-
if(isset($array['securityMode'])&& strlen($array['securityMode'])) $this->securityMode = $array['securityMode'];
|
| 1550 |
-
if(!isset($array['payment']))$array['payment'] = null;
|
| 1551 |
-
if(!isset($array['contracts'])||!strlen($array['contracts'][0]))$array['contracts'] = '';
|
| 1552 |
-
if(!isset($array['secondContracts'])||!strlen($array['secondContracts'][0]))$array['secondContracts'] = '';
|
| 1553 |
-
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1554 |
-
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1555 |
-
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1556 |
-
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1557 |
-
if(!isset($array['recurring']))$array['recurring'] = null;
|
| 1558 |
-
$WSRequest = array (
|
| 1559 |
-
'version' => $array['version'], // modified by smile
|
| 1560 |
-
'payment' => $this->payment($array['payment']),
|
| 1561 |
-
'returnURL' => $this->returnURL,
|
| 1562 |
-
'cancelURL' => $this->cancelURL,
|
| 1563 |
-
'order' => $this->order($array['order']),
|
| 1564 |
-
'notificationURL' => $this->notificationURL,
|
| 1565 |
-
'customPaymentTemplateURL' => $this->customPaymentTemplateURL,
|
| 1566 |
-
'selectedContractList' => $this->contracts($array['contracts']),
|
| 1567 |
-
'secondSelectedContractList' => $this->secondContracts($array['secondContracts']),
|
| 1568 |
-
'privateDataList' => $this->privates,
|
| 1569 |
-
'languageCode' => $this->languageCode,
|
| 1570 |
-
'customPaymentPageCode' => $this->customPaymentPageCode,
|
| 1571 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1572 |
-
'securityMode' => $this->securityMode,
|
| 1573 |
-
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1574 |
-
);
|
| 1575 |
-
|
| 1576 |
-
if(isset($array['payment']['mode'])){
|
| 1577 |
-
if(($array['payment']['mode'] == "REC") || ($array['payment']['mode'] == "NX")) {
|
| 1578 |
-
$WSRequest['recurring'] = $this->recurring($array['recurring']);
|
| 1579 |
-
}
|
| 1580 |
-
}
|
| 1581 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'doWebPayment');
|
| 1582 |
-
}
|
| 1583 |
-
|
| 1584 |
-
public function enableWallet($array){
|
| 1585 |
-
$WSRequest = array (
|
| 1586 |
-
'contractNumber' => $array['contractNumber'],
|
| 1587 |
-
'walletId' => $array['walletId'],
|
| 1588 |
-
'cardInd' => $array['cardInd']
|
| 1589 |
-
);
|
| 1590 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'enableWallet');
|
| 1591 |
-
}
|
| 1592 |
-
|
| 1593 |
-
public function getBalance($array){
|
| 1594 |
-
$WSRequest = array(
|
| 1595 |
-
'contractNumber' => $array['contractNumber'],
|
| 1596 |
-
'cardID' => $array['cardID']
|
| 1597 |
-
);
|
| 1598 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getBalance');
|
| 1599 |
-
}
|
| 1600 |
-
|
| 1601 |
-
public function getCards($array){
|
| 1602 |
-
$WSRequest = array (
|
| 1603 |
-
'contractNumber' => $array['contractNumber'],
|
| 1604 |
-
'walletId' => $array['walletId'],
|
| 1605 |
-
'cardInd' => $array['cardInd']
|
| 1606 |
-
);
|
| 1607 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getCards');
|
| 1608 |
-
}
|
| 1609 |
-
|
| 1610 |
-
public function getEncryptionKey($array){
|
| 1611 |
-
$WSRequest = array();
|
| 1612 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getEncryptionKey');
|
| 1613 |
-
}
|
| 1614 |
-
|
| 1615 |
-
public function getMerchantSettings($array){
|
| 1616 |
-
$WSRequest = array(
|
| 1617 |
-
'version' => $array['version'] // modified by smile
|
| 1618 |
-
);
|
| 1619 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getMerchantSettings');
|
| 1620 |
-
}
|
| 1621 |
-
|
| 1622 |
-
public function getPaymentRecord($array){
|
| 1623 |
-
$WSRequest = array (
|
| 1624 |
-
'version' => $array['version'], // modified by smile
|
| 1625 |
-
'contractNumber' => $array['contractNumber'],
|
| 1626 |
-
'paymentRecordId' => $array['paymentRecordId']
|
| 1627 |
-
);
|
| 1628 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getPaymentRecord');
|
| 1629 |
-
}
|
| 1630 |
-
public function getTransactionDetails($array){
|
| 1631 |
-
$WSRequest = array (
|
| 1632 |
-
'version' => $array['version'], // modified by smile
|
| 1633 |
-
'transactionId' => $array['transactionId'],
|
| 1634 |
-
'orderRef' => $array['orderRef'],
|
| 1635 |
-
'startDate' => $array['startDate'],
|
| 1636 |
-
'endDate' => $array['endDate'],
|
| 1637 |
-
'transactionHistory' => $array['transactionHistory'],
|
| 1638 |
-
'archiveSearch' => $array['archiveSearch']
|
| 1639 |
-
);
|
| 1640 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::EXTENDED_API,'getTransactionDetails');
|
| 1641 |
-
}
|
| 1642 |
-
public function getWallet($array){
|
| 1643 |
-
$WSRequest = array (
|
| 1644 |
-
'version' => $array['version'], // modified by smile
|
| 1645 |
-
'contractNumber' => $array['contractNumber'],
|
| 1646 |
-
'walletId' => $array['walletId'],
|
| 1647 |
-
'cardInd' => $array['cardInd'],
|
| 1648 |
-
'media' => $this->media
|
| 1649 |
-
);
|
| 1650 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getWallet');
|
| 1651 |
-
}
|
| 1652 |
-
|
| 1653 |
-
public function getWebPaymentDetails($array){
|
| 1654 |
-
$this->TokenSwitch($array['token']);
|
| 1655 |
-
return $this->webServiceRequest($array,$array,paylineSDK::WEB_API,'getWebPaymentDetails');
|
| 1656 |
-
}
|
| 1657 |
-
|
| 1658 |
-
public function getWebWallet($array){
|
| 1659 |
-
$this->TokenSwitch($array['token']);
|
| 1660 |
-
return $this->webServiceRequest($array,$array,paylineSDK::WEB_API,'getWebWallet');
|
| 1661 |
-
}
|
| 1662 |
-
|
| 1663 |
-
public function manageWebWallet($array){
|
| 1664 |
-
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1665 |
-
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1666 |
-
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1667 |
-
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1668 |
-
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1669 |
-
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1670 |
-
if(!isset($array['owner']))$array['owner'] = null;
|
| 1671 |
-
if(!isset($array['ownerAddress']))$array['ownerAddress'] = null;
|
| 1672 |
-
if(!isset($array['contracts'])||!strlen($array['contracts'][0]))$array['contracts'] = '';
|
| 1673 |
-
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1674 |
-
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1675 |
-
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1676 |
-
$WSRequest = array (
|
| 1677 |
-
'version' => $array['version'], // modified by smile
|
| 1678 |
-
'contractNumber' => $array['contractNumber'],
|
| 1679 |
-
'selectedContractList' => $this->contracts($array['contracts']),
|
| 1680 |
-
'updatePersonalDetails' => $array['updatePersonalDetails'],
|
| 1681 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1682 |
-
'owner' => $this->owner($array['owner'],$array['ownerAddress']),
|
| 1683 |
-
'languageCode' => $array['languageCode'],
|
| 1684 |
-
'customPaymentPageCode' => $array['customPaymentPageCode'],
|
| 1685 |
-
'securityMode' => $array['securityMode'],
|
| 1686 |
-
'returnURL' => $this->returnURL,
|
| 1687 |
-
'cancelURL' => $this->cancelURL,
|
| 1688 |
-
'notificationURL' => $this->notificationURL,
|
| 1689 |
-
'privateDataList' => $this->privates,
|
| 1690 |
-
'customPaymentTemplateURL' => $array['customPaymentTemplateURL'],
|
| 1691 |
-
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1692 |
-
);
|
| 1693 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'manageWebWallet');
|
| 1694 |
-
}
|
| 1695 |
-
|
| 1696 |
-
public function transactionsSearch($array){
|
| 1697 |
-
$WSRequest = array (
|
| 1698 |
-
'version' => $array['version'], // modified by smile
|
| 1699 |
-
'transactionId' => $array['transactionId'],
|
| 1700 |
-
'orderRef' => $array['orderRef'],
|
| 1701 |
-
'startDate' => $array['startDate'],
|
| 1702 |
-
'endDate' => $array['endDate'],
|
| 1703 |
-
'contractNumber' => $array['contractNumber'],
|
| 1704 |
-
'authorizationNumber' => $array['authorizationNumber'],
|
| 1705 |
-
'returnCode' => $array['returnCode'],
|
| 1706 |
-
'paymentMean' => $array['paymentMean'],
|
| 1707 |
-
'transactionType' => $array['transactionType'],
|
| 1708 |
-
'name' => $array['name'],
|
| 1709 |
-
'firstName' => $array['firstName'],
|
| 1710 |
-
'email' => $array['email'],
|
| 1711 |
-
'cardNumber' => $array['cardNumber'],
|
| 1712 |
-
'currency' => $array['currency'],
|
| 1713 |
-
'minAmount' => $array['minAmount'],
|
| 1714 |
-
'maxAmount' => $array['maxAmount'],
|
| 1715 |
-
'walletId' => $array['walletId'],
|
| 1716 |
-
'sequenceNumber' => $array['sequenceNumber'],
|
| 1717 |
-
'token' => $array['token']
|
| 1718 |
-
);
|
| 1719 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::EXTENDED_API,'transactionsSearch');
|
| 1720 |
-
}
|
| 1721 |
-
|
| 1722 |
-
public function updateWallet($array){
|
| 1723 |
-
$WSRequest = array (
|
| 1724 |
-
'version' => $array['version'], // modified by smile
|
| 1725 |
-
'contractNumber' => $array['contractNumber'],
|
| 1726 |
-
'cardInd' => $array['cardInd'],
|
| 1727 |
-
'wallet' => $this->wallet($array['wallet'],$array['address'],$array['card']),
|
| 1728 |
-
'buyer' => $this->buyer($array['buyer'], $array['billingAddress'],$array['shippingAddress']),
|
| 1729 |
-
'owner' => $this->owner($array['owner'],$array['ownerAddress']),
|
| 1730 |
-
'privateDataList' => $this->privates,
|
| 1731 |
-
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1732 |
-
'media' => $this->media,
|
| 1733 |
-
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1734 |
-
);
|
| 1735 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'updateWallet');
|
| 1736 |
-
}
|
| 1737 |
-
|
| 1738 |
-
public function updateWebWallet($array){
|
| 1739 |
-
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1740 |
-
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1741 |
-
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1742 |
-
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1743 |
-
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1744 |
-
if(isset($array['languageCode'])&& strlen($array['languageCode'])) $this->languageCode = $array['languageCode'];
|
| 1745 |
-
if(isset($array['securityMode'])&& strlen($array['securityMode'])) $this->securityMode = $array['securityMode'];
|
| 1746 |
-
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1747 |
-
$WSRequest = array (
|
| 1748 |
-
'version' => $array['version'], // modified by smile
|
| 1749 |
-
'contractNumber' => $array['contractNumber'],
|
| 1750 |
-
'cardInd' => $array['cardInd'],
|
| 1751 |
-
'walletId' => $array['walletId'],
|
| 1752 |
-
'updatePersonalDetails' => $array['updatePersonalDetails'],
|
| 1753 |
-
'updateOwnerDetails' => $array['updateOwnerDetails'],
|
| 1754 |
-
'updatePaymentDetails' => $array['updatePaymentDetails'],
|
| 1755 |
-
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1756 |
-
'languageCode' => $this->languageCode,
|
| 1757 |
-
'customPaymentPageCode' => $this->customPaymentPageCode,
|
| 1758 |
-
'securityMode' => $this->securityMode,
|
| 1759 |
-
'returnURL' => $this->returnURL,
|
| 1760 |
-
'cancelURL' => $this->cancelURL,
|
| 1761 |
-
'notificationURL' => $this->notificationURL,
|
| 1762 |
-
'privateDataList' => $this->privates,
|
| 1763 |
-
'customPaymentTemplateURL' => $this->customPaymentTemplateURL,
|
| 1764 |
-
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1765 |
-
);
|
| 1766 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'updateWebWallet');
|
| 1767 |
-
}
|
| 1768 |
-
|
| 1769 |
-
public function verifyAuthentication($array){
|
| 1770 |
-
$WSRequest = array (
|
| 1771 |
-
'contractNumber' => $array['contractNumber'],
|
| 1772 |
-
'pares' => $array['pares'],
|
| 1773 |
-
'md' => $array['md'],
|
| 1774 |
-
'card' => $this->card($array['card'])
|
| 1775 |
-
);
|
| 1776 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'verifyAuthentication');
|
| 1777 |
-
}
|
| 1778 |
-
|
| 1779 |
-
public function verifyEnrollment($array){
|
| 1780 |
-
$WSRequest = array (
|
| 1781 |
-
'payment' => $this->payment($array['payment']),
|
| 1782 |
-
'card' => $this->card($array['card']),
|
| 1783 |
-
'orderRef' => $array['orderRef'],
|
| 1784 |
-
'userAgent' => $array['userAgent']
|
| 1785 |
-
);
|
| 1786 |
-
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'verifyEnrollment');
|
| 1787 |
-
}
|
| 1788 |
-
}
|
| 1789 |
-
?>
|
| 1 |
+
<?php
|
| 2 |
+
//
|
| 3 |
+
// Payline Class
|
| 4 |
+
// Copyright Monext
|
| 5 |
+
//
|
| 6 |
+
require_once('jIniFileModifier.php');
|
| 7 |
+
//
|
| 8 |
+
// OBJECTS DEFINITIONS
|
| 9 |
+
//
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
class util{
|
| 13 |
+
|
| 14 |
+
/**
|
| 15 |
+
* make an array from a payline server response object.
|
| 16 |
+
* @params : $response : Objet response from payline
|
| 17 |
+
* @return : Object convert in an array
|
| 18 |
+
**/
|
| 19 |
+
static function responseToArray($response){
|
| 20 |
+
|
| 21 |
+
$array = array();
|
| 22 |
+
foreach($response as $k=>$v){
|
| 23 |
+
if (is_object($v)) {
|
| 24 |
+
$array[$k] = util::responseToArray($v);
|
| 25 |
+
}
|
| 26 |
+
else { $array[$k] = $v;
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
return $array;
|
| 30 |
+
|
| 31 |
+
return $response;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
static function responseToArrayForGetCards($response){
|
| 35 |
+
|
| 36 |
+
$array = array();
|
| 37 |
+
foreach($response as $k=>$v){
|
| 38 |
+
|
| 39 |
+
if (is_object($v) && ($k != 'cards' ) ) {
|
| 40 |
+
$array[$k] = util::responseToArrayForGetCards($v);
|
| 41 |
+
}
|
| 42 |
+
else {
|
| 43 |
+
if($k == 'cards' && count($v) == 1 ){
|
| 44 |
+
$array[$k][0] = $v;
|
| 45 |
+
}else{
|
| 46 |
+
$array[$k] = $v;
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
return $array;
|
| 51 |
+
|
| 52 |
+
return $response;
|
| 53 |
+
}
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
//
|
| 57 |
+
// PL_PAYMENT OBJECT DEFINITION
|
| 58 |
+
//
|
| 59 |
+
class pl_payment{
|
| 60 |
+
|
| 61 |
+
// ATTRIBUTES LISTING
|
| 62 |
+
public $amount;
|
| 63 |
+
public $currency;
|
| 64 |
+
public $action;
|
| 65 |
+
public $mode;
|
| 66 |
+
public $contractNumber;
|
| 67 |
+
public $differedActionDate;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
//
|
| 71 |
+
// PL_ORDER OBJECT DEFINITION
|
| 72 |
+
//
|
| 73 |
+
class pl_order{
|
| 74 |
+
|
| 75 |
+
// ATTRIBUTES LISTING
|
| 76 |
+
public $ref;
|
| 77 |
+
public $origin;
|
| 78 |
+
public $country;
|
| 79 |
+
public $taxes;
|
| 80 |
+
public $amount;
|
| 81 |
+
public $currency;
|
| 82 |
+
public $date;
|
| 83 |
+
public $quantity;
|
| 84 |
+
public $comment;
|
| 85 |
+
public $details;
|
| 86 |
+
|
| 87 |
+
function __construct() {
|
| 88 |
+
$this->date = date('d/m/Y H:i', time());
|
| 89 |
+
$this->details = array();
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
//
|
| 94 |
+
// PL_PRIVATEDATA OBJECT DEFINITION
|
| 95 |
+
//
|
| 96 |
+
class pl_privateData{
|
| 97 |
+
|
| 98 |
+
// ATTRIBUTES LISTING
|
| 99 |
+
public $key ;
|
| 100 |
+
public $value;
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
//
|
| 104 |
+
// PL_AUTHORIZATION OBJECT DEFINITION
|
| 105 |
+
//
|
| 106 |
+
class pl_authorization{
|
| 107 |
+
|
| 108 |
+
// ATTRIBUTES LISTING
|
| 109 |
+
public $number;
|
| 110 |
+
public $date;
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
//
|
| 114 |
+
// PL_ADDRESS OBJECT DEFINITION
|
| 115 |
+
//
|
| 116 |
+
class pl_address{
|
| 117 |
+
|
| 118 |
+
// ATTRIBUTES LISTING
|
| 119 |
+
public $name;
|
| 120 |
+
public $street1;
|
| 121 |
+
public $street2;
|
| 122 |
+
public $cityName;
|
| 123 |
+
public $zipCode;
|
| 124 |
+
public $country;
|
| 125 |
+
public $phone;
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
//
|
| 129 |
+
// PL_BUYER OBJECT DEFINITION
|
| 130 |
+
//
|
| 131 |
+
class pl_buyer{
|
| 132 |
+
|
| 133 |
+
// ATTRIBUTES LISTING
|
| 134 |
+
public $lastName;
|
| 135 |
+
public $firstName;
|
| 136 |
+
public $email;
|
| 137 |
+
public $customerId;
|
| 138 |
+
public $walletId;
|
| 139 |
+
public $walletDisplayed;
|
| 140 |
+
public $walletSecured;
|
| 141 |
+
public $walletCardInd;
|
| 142 |
+
public $shippingAdress;
|
| 143 |
+
public $billingAddress;
|
| 144 |
+
public $accountCreateDate;
|
| 145 |
+
public $accountAverageAmount;
|
| 146 |
+
public $accountOrderCount;
|
| 147 |
+
public $ip;
|
| 148 |
+
public $mobilePhone;
|
| 149 |
+
|
| 150 |
+
function __construct() {
|
| 151 |
+
$this->accountCreateDate = date('d/m/y', time());
|
| 152 |
+
}
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
//
|
| 156 |
+
// PL_OWNER OBJECT DEFINITION
|
| 157 |
+
//
|
| 158 |
+
class pl_owner{
|
| 159 |
+
|
| 160 |
+
// ATTRIBUTES LISTING
|
| 161 |
+
public $lastName;
|
| 162 |
+
public $firstName;
|
| 163 |
+
public $billingAddress;
|
| 164 |
+
public $issueCardDate;
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
//
|
| 168 |
+
// PL_ORDERDETAIL OBJECT DEFINITION
|
| 169 |
+
//
|
| 170 |
+
class pl_orderDetail{
|
| 171 |
+
|
| 172 |
+
// ATTRIBUTES LISTING
|
| 173 |
+
public $ref;
|
| 174 |
+
public $price;
|
| 175 |
+
public $quantity;
|
| 176 |
+
public $comment;
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
//
|
| 180 |
+
// PL_CARD OBJECT DEFINITION
|
| 181 |
+
//
|
| 182 |
+
class pl_card{
|
| 183 |
+
|
| 184 |
+
// ATTRIBUTES LISTING
|
| 185 |
+
public $number;
|
| 186 |
+
public $type;
|
| 187 |
+
public $expirationDate;
|
| 188 |
+
public $cvx;
|
| 189 |
+
public $ownerBirthdayDate;
|
| 190 |
+
public $password;
|
| 191 |
+
public $cardholder; //added by smile
|
| 192 |
+
public $token;
|
| 193 |
+
|
| 194 |
+
function __construct($type) {
|
| 195 |
+
$this->accountCreateDate = date('d/m/y', time());
|
| 196 |
+
}
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
|
| 200 |
+
//
|
| 201 |
+
// PL_TRANSACTION OBJECT DEFINITION
|
| 202 |
+
//
|
| 203 |
+
class pl_transaction{
|
| 204 |
+
|
| 205 |
+
// ATTRIBUTES LISTING
|
| 206 |
+
public $id;
|
| 207 |
+
public $isPossibleFraud;
|
| 208 |
+
public $isDuplicated;
|
| 209 |
+
public $date;
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
|
| 213 |
+
//
|
| 214 |
+
// PL_RESULT OBJECT DEFINITION
|
| 215 |
+
//
|
| 216 |
+
class pl_result{
|
| 217 |
+
|
| 218 |
+
// ATTRIBUTES LISTING
|
| 219 |
+
public $code;
|
| 220 |
+
public $shortMessage;
|
| 221 |
+
public $longMessage;
|
| 222 |
+
}
|
| 223 |
+
|
| 224 |
+
//
|
| 225 |
+
// PL_CAPTURE OBJECT DEFINITION
|
| 226 |
+
//
|
| 227 |
+
class pl_capture{
|
| 228 |
+
|
| 229 |
+
// ATTRIBUTES LISTING
|
| 230 |
+
public $transactionID;
|
| 231 |
+
public $payment;
|
| 232 |
+
public $sequenceNumber;
|
| 233 |
+
|
| 234 |
+
function __construct() {
|
| 235 |
+
$this->payment = new pl_payment();
|
| 236 |
+
}
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
//
|
| 240 |
+
// PL_REFUND OBJECT DEFINITION
|
| 241 |
+
//
|
| 242 |
+
class pl_refund extends pl_capture {
|
| 243 |
+
function __construct() {
|
| 244 |
+
parent::__construct();
|
| 245 |
+
}
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
//
|
| 249 |
+
// PL_WALLET OBJECT DEFINITION
|
| 250 |
+
//
|
| 251 |
+
class pl_wallet{
|
| 252 |
+
|
| 253 |
+
// ATTRIBUTES LISTING
|
| 254 |
+
public $walletId;
|
| 255 |
+
public $lastName;
|
| 256 |
+
public $firstName;
|
| 257 |
+
public $email;
|
| 258 |
+
public $shippingAddress;
|
| 259 |
+
public $card;
|
| 260 |
+
public $comment;
|
| 261 |
+
|
| 262 |
+
function __construct() {
|
| 263 |
+
}
|
| 264 |
+
}
|
| 265 |
+
|
| 266 |
+
//
|
| 267 |
+
// PL_RECURRING OBJECT DEFINITION
|
| 268 |
+
//
|
| 269 |
+
class pl_recurring{
|
| 270 |
+
|
| 271 |
+
// ATTRIBUTES LISTING
|
| 272 |
+
public $firstAmount;
|
| 273 |
+
public $amount;
|
| 274 |
+
public $billingCycle;
|
| 275 |
+
public $billingLeft;
|
| 276 |
+
public $billingDay;
|
| 277 |
+
public $startDate;
|
| 278 |
+
|
| 279 |
+
function __construct() {
|
| 280 |
+
}
|
| 281 |
+
}
|
| 282 |
+
|
| 283 |
+
//
|
| 284 |
+
// PL_AUTHENTIFICATION 3D SECURE
|
| 285 |
+
//
|
| 286 |
+
class pl_authentication3DSecure{
|
| 287 |
+
|
| 288 |
+
// ATTRIBUTES LISTING
|
| 289 |
+
public $md ;
|
| 290 |
+
public $pares ;
|
| 291 |
+
public $xid ;
|
| 292 |
+
public $eci ;
|
| 293 |
+
public $cavv ;
|
| 294 |
+
public $cavvAlgorithm ;
|
| 295 |
+
public $vadsResult ;
|
| 296 |
+
|
| 297 |
+
function __construct() {
|
| 298 |
+
}
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
//
|
| 302 |
+
// PL_BANKACCOUNTDATA
|
| 303 |
+
//
|
| 304 |
+
class pl_bankAccountData{
|
| 305 |
+
|
| 306 |
+
|
| 307 |
+
// ATTRIBUTES LISTING
|
| 308 |
+
public $countryCode ;
|
| 309 |
+
public $bankCode ;
|
| 310 |
+
public $accountNumber ;
|
| 311 |
+
public $key ;
|
| 312 |
+
|
| 313 |
+
|
| 314 |
+
function __construct() {
|
| 315 |
+
}
|
| 316 |
+
}
|
| 317 |
+
|
| 318 |
+
//
|
| 319 |
+
// PL_CHEQUE
|
| 320 |
+
//
|
| 321 |
+
class pl_cheque{
|
| 322 |
+
|
| 323 |
+
// ATTRIBUTES LISTING
|
| 324 |
+
public $number ;
|
| 325 |
+
|
| 326 |
+
function __construct() {
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
|
| 330 |
+
final class Log {
|
| 331 |
+
private $filename;
|
| 332 |
+
private $path;
|
| 333 |
+
|
| 334 |
+
public function __construct($filename) {
|
| 335 |
+
$this->filename = $filename;
|
| 336 |
+
$tmp = explode(DIRECTORY_SEPARATOR ,dirname(__FILE__));
|
| 337 |
+
|
| 338 |
+
// up one level from the current directory
|
| 339 |
+
for($i=0,$s = sizeof($tmp)-1; $i<$s; $i++){
|
| 340 |
+
$this->path .= $tmp[$i].DIRECTORY_SEPARATOR;
|
| 341 |
+
}
|
| 342 |
+
$this->path .= 'logs'.DIRECTORY_SEPARATOR;
|
| 343 |
+
}
|
| 344 |
+
|
| 345 |
+
public function write($message) {
|
| 346 |
+
$file = $this->path.$this->filename;
|
| 347 |
+
$handle = fopen($file, 'a+');
|
| 348 |
+
fwrite($handle, date('Y-m-d G:i:s') . ' - ' . $message . "\n");
|
| 349 |
+
fclose($handle);
|
| 350 |
+
}
|
| 351 |
+
}
|
| 352 |
+
|
| 353 |
+
//
|
| 354 |
+
// PAYLINESDK CLASS
|
| 355 |
+
//
|
| 356 |
+
class paylineSDK{
|
| 357 |
+
|
| 358 |
+
// kit version
|
| 359 |
+
const KIT_VERSION = 'module Magento 1.7.8';
|
| 360 |
+
|
| 361 |
+
// trace log
|
| 362 |
+
var $paylineTrace;
|
| 363 |
+
|
| 364 |
+
// SOAP URL's
|
| 365 |
+
const PAYLINE_NAMESPACE = 'http://obj.ws.payline.experian.com';
|
| 366 |
+
const WSDL = 'Payline.wsdl';
|
| 367 |
+
const PROD_ENDPOINT = 'https://services.payline.com/V4/services/';
|
| 368 |
+
const PROD_ENDPOINT_HD = 'https://services.payline.com/V4/services/';
|
| 369 |
+
const HOMO_ENDPOINT = 'https://homologation.payline.com/V4/services/';
|
| 370 |
+
const HOMO_ENDPOINT_HD = 'https://homologation.payline.com/V4/services/';
|
| 371 |
+
|
| 372 |
+
const DIRECT_API = 'DirectPaymentAPI';
|
| 373 |
+
const EXTENDED_API = 'ExtendedAPI';
|
| 374 |
+
const WEB_API = 'WebPaymentAPI';
|
| 375 |
+
|
| 376 |
+
// current endpoint
|
| 377 |
+
private $webServicesEndpoint;
|
| 378 |
+
|
| 379 |
+
// version of web service
|
| 380 |
+
private $version = '';
|
| 381 |
+
|
| 382 |
+
// devise used by the customer
|
| 383 |
+
private $media = '';
|
| 384 |
+
|
| 385 |
+
// SOAP ACTIONS CONSTANTS
|
| 386 |
+
const soap_result = 'result';
|
| 387 |
+
const soap_authorization = 'authorization';
|
| 388 |
+
const soap_card = 'card';
|
| 389 |
+
const soap_order = 'order';
|
| 390 |
+
const soap_orderDetail = 'orderDetail';
|
| 391 |
+
const soap_payment = 'payment';
|
| 392 |
+
const soap_transaction = 'transaction';
|
| 393 |
+
const soap_privateData = 'privateData';
|
| 394 |
+
const soap_buyer = 'buyer';
|
| 395 |
+
const soap_owner = 'owner';
|
| 396 |
+
const soap_address = 'address';
|
| 397 |
+
const soap_capture = 'capture';
|
| 398 |
+
const soap_refund = 'refund';
|
| 399 |
+
const soap_refund_auth = 'refundAuthorization';
|
| 400 |
+
const soap_authentication3DSecure = 'authentication3DSecure';
|
| 401 |
+
const soap_bankAccountData = 'bankAccountData';
|
| 402 |
+
const soap_cheque = 'cheque';
|
| 403 |
+
|
| 404 |
+
// Target environment
|
| 405 |
+
public $production;
|
| 406 |
+
|
| 407 |
+
// ARRAY
|
| 408 |
+
public $header_soap;
|
| 409 |
+
public $items;
|
| 410 |
+
public $privates;
|
| 411 |
+
|
| 412 |
+
// OPTIONS
|
| 413 |
+
public $cancelURL;
|
| 414 |
+
public $securityMode;
|
| 415 |
+
public $notificationURL;
|
| 416 |
+
public $returnURL;
|
| 417 |
+
public $customPaymentTemplateURL;
|
| 418 |
+
public $customPaymentPageCode;
|
| 419 |
+
public $languageCode;
|
| 420 |
+
|
| 421 |
+
// WALLET
|
| 422 |
+
public $walletIdList;
|
| 423 |
+
|
| 424 |
+
// SWITCHING VAR
|
| 425 |
+
public $NMAX_TENTATIVE = '';
|
| 426 |
+
public $CALL_TIMEOUT = '';
|
| 427 |
+
public $RETRY_TIMEOUT = '';
|
| 428 |
+
public $PRIMARY = true ;
|
| 429 |
+
public $CURRENT_NUMBER_CALL = 0;
|
| 430 |
+
public $DEFAULT_SOCKET_TIMEOUT = 0;
|
| 431 |
+
|
| 432 |
+
/**
|
| 433 |
+
* contructor of PAYLINESDK CLASS
|
| 434 |
+
**/
|
| 435 |
+
function __construct($merchant_id, $acess_key, $proxy_host, $proxy_port, $proxy_login, $proxy_password, $production) {
|
| 436 |
+
$this->writeTrace('----------------------------------------------------------');
|
| 437 |
+
$this->writeTrace("paylineSDK::__construct($merchant_id, ".$this->maskAccessKey($acess_key).", $proxy_host, $proxy_port, $proxy_login, $proxy_password, $production)");
|
| 438 |
+
$this->header_soap = array();
|
| 439 |
+
$this->header_soap['login'] = $merchant_id;
|
| 440 |
+
$this->header_soap['password'] = $acess_key;
|
| 441 |
+
if($proxy_host != ''){
|
| 442 |
+
$this->header_soap['proxy_host'] = $proxy_host;
|
| 443 |
+
$this->header_soap['proxy_port'] = $proxy_port;
|
| 444 |
+
$this->header_soap['proxy_login'] = $proxy_login;
|
| 445 |
+
$this->header_soap['proxy_password'] = $proxy_password;
|
| 446 |
+
}
|
| 447 |
+
$this->production = $production;
|
| 448 |
+
if($production){
|
| 449 |
+
$this->webServicesEndpoint = paylineSDK::PROD_ENDPOINT;
|
| 450 |
+
}else{
|
| 451 |
+
$this->webServicesEndpoint = paylineSDK::HOMO_ENDPOINT;
|
| 452 |
+
}
|
| 453 |
+
$this->header_soap['style'] = SOAP_DOCUMENT;
|
| 454 |
+
$this->header_soap['use'] = SOAP_LITERAL;
|
| 455 |
+
$this->header_soap['version'] = paylineSDK::KIT_VERSION;
|
| 456 |
+
$this->items = array();
|
| 457 |
+
$this->privates = array();
|
| 458 |
+
$this->walletIdList = array();
|
| 459 |
+
|
| 460 |
+
ini_set('user_agent', "PHP\r\nversion: ".paylineSDK::KIT_VERSION);
|
| 461 |
+
}
|
| 462 |
+
|
| 463 |
+
/**
|
| 464 |
+
* function payment
|
| 465 |
+
* @params : $array : array. the array keys are listed in pl_payment CLASS.
|
| 466 |
+
* @return : SoapVar : object
|
| 467 |
+
* @description : build pl_payment instance from $array and make SoapVar object for payment.
|
| 468 |
+
**/
|
| 469 |
+
protected function payment($array) {
|
| 470 |
+
$payment = new pl_payment();
|
| 471 |
+
if($array && is_array($array)){
|
| 472 |
+
foreach($array as $k=>$v){
|
| 473 |
+
if(array_key_exists($k, $payment)&&(strlen($v))){
|
| 474 |
+
$payment->$k = $v;
|
| 475 |
+
}
|
| 476 |
+
}
|
| 477 |
+
}
|
| 478 |
+
return new SoapVar($payment, SOAP_ENC_OBJECT, paylineSDK::soap_payment, paylineSDK::PAYLINE_NAMESPACE);
|
| 479 |
+
}
|
| 480 |
+
|
| 481 |
+
/**
|
| 482 |
+
* function order
|
| 483 |
+
* @params : $array : array. the array keys are listed in pl_order CLASS.
|
| 484 |
+
* @return : SoapVar : object
|
| 485 |
+
* @description : build pl_order instance from $array and make SoapVar object for order.
|
| 486 |
+
**/
|
| 487 |
+
protected function order($array) {
|
| 488 |
+
$order = new pl_order();
|
| 489 |
+
if($array && is_array($array)){
|
| 490 |
+
foreach($array as $k=>$v){
|
| 491 |
+
if(array_key_exists($k, $order)&&(strlen($v))){
|
| 492 |
+
$order->$k = $v;
|
| 493 |
+
}
|
| 494 |
+
}
|
| 495 |
+
}
|
| 496 |
+
$allDetails = array();
|
| 497 |
+
// insert orderDetails
|
| 498 |
+
$order->details = $this->items;
|
| 499 |
+
return new SoapVar($order, SOAP_ENC_OBJECT, paylineSDK::soap_order, paylineSDK::PAYLINE_NAMESPACE);
|
| 500 |
+
}
|
| 501 |
+
|
| 502 |
+
/**
|
| 503 |
+
* function address
|
| 504 |
+
* @params : $address : array. the array keys are listed in pl_address CLASS.
|
| 505 |
+
* @return : SoapVar : object
|
| 506 |
+
* @description : build pl_address instance from $array and make SoapVar object for address.
|
| 507 |
+
**/
|
| 508 |
+
protected function address($array) {
|
| 509 |
+
$address = new pl_address();
|
| 510 |
+
if($array && is_array($array)){
|
| 511 |
+
foreach($array as $k=>$v){
|
| 512 |
+
if(array_key_exists($k, $address)&&(strlen($v)))$address->$k = $v;
|
| 513 |
+
}
|
| 514 |
+
}
|
| 515 |
+
return new SoapVar($address, SOAP_ENC_OBJECT, paylineSDK::soap_address, paylineSDK::PAYLINE_NAMESPACE);
|
| 516 |
+
}
|
| 517 |
+
|
| 518 |
+
/**
|
| 519 |
+
* function buyer
|
| 520 |
+
* @params : $array : array. the array keys are listed in pl_buyer CLASS.
|
| 521 |
+
* @params : $shippingAdress : array. the array keys are listed in pl_address CLASS.
|
| 522 |
+
* @params : $billingAddress : array. the array keys are listed in pl_address CLASS.
|
| 523 |
+
* @return : SoapVar : object
|
| 524 |
+
* @description : build pl_buyer instance from $array and $address and make SoapVar object for buyer.
|
| 525 |
+
**/
|
| 526 |
+
protected function buyer($array,$shippingAdress,$billingAddress) {
|
| 527 |
+
$buyer = new pl_buyer();
|
| 528 |
+
if($array && is_array($array)){
|
| 529 |
+
foreach($array as $k=>$v){
|
| 530 |
+
if(array_key_exists($k, $buyer)&&(strlen($v)))$buyer->$k = $v;
|
| 531 |
+
}
|
| 532 |
+
}
|
| 533 |
+
$buyer->shippingAdress = $this->address($shippingAdress);
|
| 534 |
+
$buyer->billingAddress = $this->address($billingAddress);
|
| 535 |
+
return new SoapVar($buyer, SOAP_ENC_OBJECT, paylineSDK::soap_buyer, paylineSDK::PAYLINE_NAMESPACE);
|
| 536 |
+
}
|
| 537 |
+
|
| 538 |
+
/**
|
| 539 |
+
* function owner
|
| 540 |
+
* @params : $array : array. the array keys are listed in pl_buyer CLASS.
|
| 541 |
+
* @params : $shippingAdress : array. the array keys are listed in pl_address CLASS.
|
| 542 |
+
* @params : $billingAddress : array. the array keys are listed in pl_address CLASS.
|
| 543 |
+
* @return : SoapVar : object
|
| 544 |
+
* @description : build pl_buyer instance from $array and $address and make SoapVar object for buyer.
|
| 545 |
+
**/
|
| 546 |
+
protected function owner($array,$Address) {
|
| 547 |
+
if($array != null){
|
| 548 |
+
$owner = new pl_owner();
|
| 549 |
+
if($array && is_array($array)){
|
| 550 |
+
foreach($array as $k=>$v){
|
| 551 |
+
if(array_key_exists($k, $owner)&&(strlen($v)))$owner->$k = $v;
|
| 552 |
+
}
|
| 553 |
+
}
|
| 554 |
+
$owner->billingAddress = $this->address($Address);
|
| 555 |
+
return new SoapVar($owner, SOAP_ENC_OBJECT, paylineSDK::soap_owner, paylineSDK::PAYLINE_NAMESPACE);
|
| 556 |
+
}else{
|
| 557 |
+
return null;
|
| 558 |
+
}
|
| 559 |
+
}
|
| 560 |
+
|
| 561 |
+
/**
|
| 562 |
+
* function contracts
|
| 563 |
+
* @params : $contracts : array. array of contracts
|
| 564 |
+
* @return : $contracts : array. the same as params if exist, or an array with default contract defined in
|
| 565 |
+
* configuration
|
| 566 |
+
* @description : Add datas to contract array
|
| 567 |
+
**/
|
| 568 |
+
protected function contracts($contracts) {
|
| 569 |
+
if($contracts && is_array($contracts)){
|
| 570 |
+
return $contracts;
|
| 571 |
+
}
|
| 572 |
+
return explode(';',(string)Mage::helper('payline')->contractNumberList);
|
| 573 |
+
}
|
| 574 |
+
|
| 575 |
+
/**
|
| 576 |
+
* function secondContracts
|
| 577 |
+
* @params : $secondContracts : array. array of contracts
|
| 578 |
+
* @return : $secondContracts : array. the same as params if exist, null otherwise
|
| 579 |
+
* @description : Add datas to contract array
|
| 580 |
+
**/
|
| 581 |
+
protected function secondContracts($secondContracts) {
|
| 582 |
+
if($secondContracts && is_array($secondContracts)){
|
| 583 |
+
return $secondContracts;
|
| 584 |
+
}
|
| 585 |
+
return null;
|
| 586 |
+
}
|
| 587 |
+
|
| 588 |
+
/**
|
| 589 |
+
* function authentification 3Dsecure
|
| 590 |
+
* @params : $array : array. the array keys are listed in pl_card CLASS.
|
| 591 |
+
* @return : SoapVar : object
|
| 592 |
+
* @description : build pl_authentication3DSecure instance from $array and make SoapVar object for authentication3DSecure.
|
| 593 |
+
**/
|
| 594 |
+
protected function authentication3DSecure($array) {
|
| 595 |
+
$authentication3DSecure = new pl_authentication3DSecure($array);
|
| 596 |
+
if($array && is_array($array)){
|
| 597 |
+
foreach($array as $k=>$v){
|
| 598 |
+
if(array_key_exists($k, $authentication3DSecure)&&(strlen($v))){
|
| 599 |
+
$authentication3DSecure->$k = $v;
|
| 600 |
+
}
|
| 601 |
+
}
|
| 602 |
+
}
|
| 603 |
+
return new SoapVar($authentication3DSecure, SOAP_ENC_OBJECT, paylineSDK::soap_authentication3DSecure, paylineSDK::PAYLINE_NAMESPACE);
|
| 604 |
+
}
|
| 605 |
+
|
| 606 |
+
/**
|
| 607 |
+
* function authorization
|
| 608 |
+
* @params : $array : array. the array keys are listed in pl_card CLASS.
|
| 609 |
+
* @return : SoapVar : object
|
| 610 |
+
* @description : build pl_authentication3DSecure instance from $array and make SoapVar object for authentication3DSecure.
|
| 611 |
+
**/
|
| 612 |
+
protected function authorization($array) {
|
| 613 |
+
$authorization = new pl_authorization($array);
|
| 614 |
+
if($array && is_array($array)){
|
| 615 |
+
foreach($array as $k=>$v){
|
| 616 |
+
if(array_key_exists($k, $authorization)&&(strlen($v))){
|
| 617 |
+
$authorization->$k = $v;
|
| 618 |
+
}
|
| 619 |
+
}
|
| 620 |
+
}
|
| 621 |
+
return new SoapVar($authorization, SOAP_ENC_OBJECT, paylineSDK::soap_authorization, paylineSDK::PAYLINE_NAMESPACE);
|
| 622 |
+
}
|
| 623 |
+
|
| 624 |
+
/**
|
| 625 |
+
* function card
|
| 626 |
+
* @params : $array : array. the array keys are listed in pl_card CLASS.
|
| 627 |
+
* @return : SoapVar : object
|
| 628 |
+
* @description : build pl_card instance from $array and make SoapVar object for card.
|
| 629 |
+
**/
|
| 630 |
+
protected function card($array) {
|
| 631 |
+
$card = new pl_card($array['type']);
|
| 632 |
+
if($array && is_array($array)){
|
| 633 |
+
foreach($array as $k=>$v){
|
| 634 |
+
if(array_key_exists($k, $card)&&(strlen($v))){
|
| 635 |
+
$card->$k = $v;
|
| 636 |
+
}
|
| 637 |
+
}
|
| 638 |
+
}
|
| 639 |
+
return new SoapVar($card, SOAP_ENC_OBJECT, paylineSDK::soap_card, paylineSDK::PAYLINE_NAMESPACE);
|
| 640 |
+
}
|
| 641 |
+
|
| 642 |
+
|
| 643 |
+
|
| 644 |
+
/**
|
| 645 |
+
* function bankAccountData
|
| 646 |
+
* @params : $array : array. the array keys are listed in pl_bankAccountData CLASS.
|
| 647 |
+
* @return : SoapVar : object
|
| 648 |
+
* @description : build pl_bankAccountData instance from $array and make SoapVar object for bankAccountData.
|
| 649 |
+
**/
|
| 650 |
+
protected function bankAccountData($array) {
|
| 651 |
+
$bankAccountData = new pl_bankAccountData($array);
|
| 652 |
+
if($array && is_array($array)){
|
| 653 |
+
foreach($array as $k=>$v){
|
| 654 |
+
if(array_key_exists($k, $bankAccountData)&&(strlen($v))){
|
| 655 |
+
$bankAccountData->$k = $v;
|
| 656 |
+
}
|
| 657 |
+
}
|
| 658 |
+
}
|
| 659 |
+
return new SoapVar(null, SOAP_ENC_OBJECT, paylineSDK::soap_bankAccountData, paylineSDK::PAYLINE_NAMESPACE);
|
| 660 |
+
}
|
| 661 |
+
|
| 662 |
+
/**
|
| 663 |
+
* function cheque
|
| 664 |
+
* @params : $array : array. the array keys are listed in pl_cheque CLASS.
|
| 665 |
+
* @return : SoapVar : object
|
| 666 |
+
* @description : build pl_authentication3DSecure instance from $array and make SoapVar object for cheque.
|
| 667 |
+
**/
|
| 668 |
+
protected function cheque($array) {
|
| 669 |
+
$cheque = new pl_cheque($array);
|
| 670 |
+
if($array && is_array($array)){
|
| 671 |
+
foreach($array as $k=>$v){
|
| 672 |
+
if(array_key_exists($k, $cheque)&&(strlen($v))){
|
| 673 |
+
$cheque->$k = $v;
|
| 674 |
+
}
|
| 675 |
+
}
|
| 676 |
+
}
|
| 677 |
+
return new SoapVar($cheque, SOAP_ENC_OBJECT, paylineSDK::soap_cheque, paylineSDK::PAYLINE_NAMESPACE);
|
| 678 |
+
}
|
| 679 |
+
|
| 680 |
+
/****************************************************/
|
| 681 |
+
// WALLET //
|
| 682 |
+
/****************************************************/
|
| 683 |
+
|
| 684 |
+
/**
|
| 685 |
+
* function wallet
|
| 686 |
+
* @params : array : array. the array keys are listed in pl_wallet CLASS.
|
| 687 |
+
* @params : address : array. the array keys are listed in pl_address CLASS.
|
| 688 |
+
* @params : card : array. the array keys are listed in pl_card CLASS.
|
| 689 |
+
* @return : wallet: pl_wallet Object.
|
| 690 |
+
* @description : build a wallet object.
|
| 691 |
+
**/
|
| 692 |
+
protected function wallet($array,$address,$card) {
|
| 693 |
+
$wallet = new pl_wallet();
|
| 694 |
+
if($array && is_array($array)){
|
| 695 |
+
foreach($array as $k=>$v){
|
| 696 |
+
if(array_key_exists($k, $wallet)&&(strlen($v)))$wallet->$k = $v;
|
| 697 |
+
}
|
| 698 |
+
}
|
| 699 |
+
|
| 700 |
+
$wallet->shippingAddress = $this->address($address);
|
| 701 |
+
$wallet->card = $this->card($card);
|
| 702 |
+
|
| 703 |
+
return $wallet;
|
| 704 |
+
}
|
| 705 |
+
|
| 706 |
+
/**
|
| 707 |
+
* function recurring
|
| 708 |
+
* @params : array : array. the array keys are listed in pl_recurring CLASS.
|
| 709 |
+
* @return : recurring object.
|
| 710 |
+
* @description : build a recurring object.
|
| 711 |
+
**/
|
| 712 |
+
protected function recurring($array) {
|
| 713 |
+
if($array){
|
| 714 |
+
$recurring = new pl_recurring();
|
| 715 |
+
if($array && is_array($array)){
|
| 716 |
+
foreach($array as $k=>$v){
|
| 717 |
+
if(array_key_exists($k, $recurring)&&(strlen($v)))$recurring->$k = $v;
|
| 718 |
+
}
|
| 719 |
+
}
|
| 720 |
+
return $recurring;
|
| 721 |
+
}
|
| 722 |
+
else return null;
|
| 723 |
+
}
|
| 724 |
+
|
| 725 |
+
/**
|
| 726 |
+
* function setItem
|
| 727 |
+
* @params : $item : array. the array keys are listed in PL_ORDERDETAIL CLASS.
|
| 728 |
+
* @description : Make $item SoapVar object and insert in items array
|
| 729 |
+
**/
|
| 730 |
+
public function setItem($item) {
|
| 731 |
+
$orderDetail = new pl_orderDetail();
|
| 732 |
+
if($item && is_array($item)){
|
| 733 |
+
foreach($item as $k=>$v){
|
| 734 |
+
if(array_key_exists($k, $orderDetail)&&(strlen($v)))$orderDetail->$k = $v;
|
| 735 |
+
}
|
| 736 |
+
}
|
| 737 |
+
$this->items[] = new SoapVar($orderDetail, SOAP_ENC_OBJECT, paylineSDK::soap_orderDetail, paylineSDK::PAYLINE_NAMESPACE);
|
| 738 |
+
}
|
| 739 |
+
|
| 740 |
+
/**
|
| 741 |
+
* function setPrivate
|
| 742 |
+
* @params : $private : array. the array keys are listed in PRIVATE CLASS.
|
| 743 |
+
* @description : Make $setPrivate SoapVar object and insert in privates array
|
| 744 |
+
**/
|
| 745 |
+
public function setPrivate($array) {
|
| 746 |
+
$private = new pl_privateData();
|
| 747 |
+
if($array && is_array($array)){
|
| 748 |
+
foreach($array as $k=>$v){
|
| 749 |
+
if(array_key_exists($k, $private)&&(strlen($v)))$private->$k = $v;
|
| 750 |
+
}
|
| 751 |
+
}
|
| 752 |
+
$this->privates[] = new SoapVar($private, SOAP_ENC_OBJECT, paylineSDK::soap_privateData, paylineSDK::PAYLINE_NAMESPACE);
|
| 753 |
+
}
|
| 754 |
+
|
| 755 |
+
/**
|
| 756 |
+
* function setWalletIdList
|
| 757 |
+
* @params : sting : string if wallet id separated by ';'.
|
| 758 |
+
* @return :
|
| 759 |
+
* @description : make an array of wallet id .
|
| 760 |
+
**/
|
| 761 |
+
public function setWalletIdList($walletIdList) {
|
| 762 |
+
if ($walletIdList) $this->walletIdList = explode(";", $walletIdList);
|
| 763 |
+
if(empty($walletIdList))$this->walletIdList = array(0) ;
|
| 764 |
+
}
|
| 765 |
+
|
| 766 |
+
private function maskAccessKey($accessKey){
|
| 767 |
+
$maskedAccessKey = substr($accessKey,0,2);
|
| 768 |
+
$maskedAccessKey .= substr("********************",0,strlen($accessKey)-4);
|
| 769 |
+
$maskedAccessKey .= substr($accessKey,-2);
|
| 770 |
+
return $maskedAccessKey;
|
| 771 |
+
}
|
| 772 |
+
|
| 773 |
+
private function IsSwitchingEnabled($Method){
|
| 774 |
+
$Enabled = false;
|
| 775 |
+
$ListeWS = (string)Mage::helper('payline')->contractNumber;
|
| 776 |
+
$ArrayWS = explode(",",$ListeWS);
|
| 777 |
+
foreach($ArrayWS as $Key => $Value){
|
| 778 |
+
if($Method === $Value){
|
| 779 |
+
$Enabled = true;
|
| 780 |
+
}
|
| 781 |
+
}
|
| 782 |
+
return $Enabled;
|
| 783 |
+
}
|
| 784 |
+
|
| 785 |
+
// Paramétrage Switch Primary
|
| 786 |
+
private function SwitchToPrimary(){
|
| 787 |
+
$this->NMAX_TENTATIVE = (string)Mage::helper('payline')->primaryMaxfailRetry;
|
| 788 |
+
$this->CALL_TIMEOUT = (string)Mage::helper('payline')->primaryCallTimeout;
|
| 789 |
+
$this->RETRY_TIMEOUT = (string)Mage::helper('payline')->primaryReplayTimer;
|
| 790 |
+
$this->PRIMARY = true;
|
| 791 |
+
$this->CURRENT_NUMBER_CALL = 0;
|
| 792 |
+
$this->header_soap['connection_timeout'] = $this->CALL_TIMEOUT;
|
| 793 |
+
if($this->production){
|
| 794 |
+
$this->webServicesEndpoint = paylineSDK::PROD_ENDPOINT;
|
| 795 |
+
}else{
|
| 796 |
+
$this->webServicesEndpoint = paylineSDK::HOMO_ENDPOINT;
|
| 797 |
+
}
|
| 798 |
+
}
|
| 799 |
+
|
| 800 |
+
// Paramétrage Switch Secondary
|
| 801 |
+
private function SwitchToSecondary(){
|
| 802 |
+
$this->NMAX_TENTATIVE = (string)Mage::helper('payline')->secondaryMaxfailRetry;
|
| 803 |
+
$this->CALL_TIMEOUT = (string)Mage::helper('payline')->secondaryCallTimeout;
|
| 804 |
+
$this->RETRY_TIMEOUT = (string)Mage::helper('payline')->secondaryReplayTimer;
|
| 805 |
+
$this->PRIMARY = false;
|
| 806 |
+
$this->CURRENT_NUMBER_CALL = 0;
|
| 807 |
+
$this->header_soap['connection_timeout'] = $this->CALL_TIMEOUT;
|
| 808 |
+
if($this->production){
|
| 809 |
+
$this->webServicesEndpoint = paylineSDK::PROD_ENDPOINT_HD;
|
| 810 |
+
}else{
|
| 811 |
+
$this->webServicesEndpoint = paylineSDK::HOMO_ENDPOINT_HD;
|
| 812 |
+
}
|
| 813 |
+
}
|
| 814 |
+
|
| 815 |
+
private function IsForceSwitch($Force){
|
| 816 |
+
$bool = false;
|
| 817 |
+
if(isset($Force) && !empty($Force)){
|
| 818 |
+
$bool = true;
|
| 819 |
+
}else{
|
| 820 |
+
$bool = false;
|
| 821 |
+
}
|
| 822 |
+
return $bool;
|
| 823 |
+
}
|
| 824 |
+
|
| 825 |
+
private function CheckForSwitching(){
|
| 826 |
+
$bool = false ;
|
| 827 |
+
$ini_array = parse_ini_file((string)Mage::helper('payline')->ini_file);
|
| 828 |
+
$TimeEndSwitch = $ini_array['TimeEndSwitch'];
|
| 829 |
+
$CurrentTime = time();
|
| 830 |
+
if(isset($TimeEndSwitch) && !empty($TimeEndSwitch)){
|
| 831 |
+
if($TimeEndSwitch > $CurrentTime){
|
| 832 |
+
$bool = true;
|
| 833 |
+
return $bool;
|
| 834 |
+
}else{
|
| 835 |
+
$bool = false;
|
| 836 |
+
return $bool;
|
| 837 |
+
}
|
| 838 |
+
}else{
|
| 839 |
+
$bool = false;
|
| 840 |
+
return $bool;
|
| 841 |
+
}
|
| 842 |
+
}
|
| 843 |
+
|
| 844 |
+
private function CheckForError($response){
|
| 845 |
+
$ErrCheck = false;
|
| 846 |
+
$ErrList = (string)Mage::helper('payline')->paylineErrCode;
|
| 847 |
+
$ArrayErr = explode(",",$ErrList);
|
| 848 |
+
foreach($ArrayErr as $Key => $Value){
|
| 849 |
+
if($response['result']['code'] === $Value){
|
| 850 |
+
$ErrCheck = true;
|
| 851 |
+
}
|
| 852 |
+
}
|
| 853 |
+
return $ErrCheck;
|
| 854 |
+
}
|
| 855 |
+
|
| 856 |
+
private function CheckForTokenError($response){
|
| 857 |
+
$ErrCheck = false;
|
| 858 |
+
$ErrList = (string)Mage::helper('payline')->paylineErrToken;
|
| 859 |
+
$ArrayErr = explode(",",$ErrList);
|
| 860 |
+
foreach($ArrayErr as $Key => $Value){
|
| 861 |
+
if($response['result']['code'] === $Value){
|
| 862 |
+
$ErrCheck = true;
|
| 863 |
+
}
|
| 864 |
+
}
|
| 865 |
+
return $ErrCheck;
|
| 866 |
+
}
|
| 867 |
+
|
| 868 |
+
private function init_config($Method,$ForceSwitch,$ForceValue){
|
| 869 |
+
if($this->IsSwitchingEnabled($Method)){
|
| 870 |
+
if(isset($ForceSwitch) && $this->IsForceSwitch($ForceSwitch)){
|
| 871 |
+
if(isset($ForceValue) && $ForceValue == "Primaire"){
|
| 872 |
+
$this->SwitchToPrimary();
|
| 873 |
+
}else if(isset($ForceValue) && $ForceValue == "Secondaire"){
|
| 874 |
+
$this->SwitchToSecondary();
|
| 875 |
+
}
|
| 876 |
+
}else{
|
| 877 |
+
if($this->CheckForSwitching()){
|
| 878 |
+
$this->SwitchToSecondary();
|
| 879 |
+
}else{
|
| 880 |
+
$this->SwitchToPrimary();
|
| 881 |
+
}
|
| 882 |
+
}
|
| 883 |
+
}else{
|
| 884 |
+
if(isset($ForceSwitch) && $this->IsForceSwitch($ForceSwitch)){
|
| 885 |
+
if(isset($ForceValue) && $ForceValue == "Primaire"){
|
| 886 |
+
$this->SwitchToPrimary();
|
| 887 |
+
}else if(isset($ForceValue) && $ForceValue == "Secondaire"){
|
| 888 |
+
$this->SwitchToSecondary();
|
| 889 |
+
}
|
| 890 |
+
}else{
|
| 891 |
+
$this->SwitchToPrimary();
|
| 892 |
+
}
|
| 893 |
+
}
|
| 894 |
+
}
|
| 895 |
+
|
| 896 |
+
private function CheckEndSwitch(){
|
| 897 |
+
$bool = false ;
|
| 898 |
+
$ini_array = parse_ini_file((string)Mage::helper('payline')->ini_file);
|
| 899 |
+
$TimeEndSwitch = $ini_array['TimeEndSwitch'];
|
| 900 |
+
$EndSwitch = $ini_array['EndSwitchTry'];
|
| 901 |
+
$CurrentTime = time();
|
| 902 |
+
if(isset($TimeEndSwitch) && !empty($TimeEndSwitch)){
|
| 903 |
+
if(($CurrentTime > $TimeEndSwitch) && $EndSwitch == 1 && $this->PRIMARY){
|
| 904 |
+
$bool = true;
|
| 905 |
+
}
|
| 906 |
+
}
|
| 907 |
+
return $bool;
|
| 908 |
+
}
|
| 909 |
+
|
| 910 |
+
|
| 911 |
+
private function SetCallSocketTimeOut(){
|
| 912 |
+
$this->DEFAULT_SOCKET_TIMEOUT = ini_get('default_socket_timeout');
|
| 913 |
+
ini_set('default_socket_timeout', $this->CALL_TIMEOUT);
|
| 914 |
+
}
|
| 915 |
+
|
| 916 |
+
private function SetDefaultSocketTimeOut(){
|
| 917 |
+
ini_set('default_socket_timeout', $this->DEFAULT_SOCKET_TIMEOUT);
|
| 918 |
+
}
|
| 919 |
+
|
| 920 |
+
private function VerifyIfAnotherWShasSwitch($Method){
|
| 921 |
+
if($this->IsSwitchingEnabled($Method) && $this->CheckForSwitching() && $this->PRIMARY){
|
| 922 |
+
$this->SwitchToSecondary();
|
| 923 |
+
}
|
| 924 |
+
}
|
| 925 |
+
private function AddResponseSwitchingChain($Method,$response){
|
| 926 |
+
if($this->IsSwitchingEnabled($Method)){
|
| 927 |
+
$response['Switch']['Wsdl File'] = "$this->WSDL_DIRECT_SOAP";
|
| 928 |
+
}
|
| 929 |
+
return $response;
|
| 930 |
+
}
|
| 931 |
+
|
| 932 |
+
private function CheckIniValue($key,$value){
|
| 933 |
+
$bool = false ;
|
| 934 |
+
$ini_array = parse_ini_file((string)Mage::helper('payline')->ini_file);
|
| 935 |
+
$EndSwitch = $ini_array[$key];
|
| 936 |
+
if(isset($EndSwitch) && !empty($EndSwitch) && $EndSwitch == $value){
|
| 937 |
+
$bool = true;
|
| 938 |
+
}
|
| 939 |
+
|
| 940 |
+
return $bool;
|
| 941 |
+
}
|
| 942 |
+
|
| 943 |
+
private function Switcher($DateDebut,$Method,$WS,$WSRequest,$WDSL){
|
| 944 |
+
$DateFin = time();
|
| 945 |
+
$this->SetDefaultSocketTimeOut();
|
| 946 |
+
$response = array();
|
| 947 |
+
while($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL){
|
| 948 |
+
if($this->PRIMARY){
|
| 949 |
+
if(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)) >= 0){
|
| 950 |
+
sleep(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)));
|
| 951 |
+
$DateDebut = 0;
|
| 952 |
+
$DateFin = 0;
|
| 953 |
+
}
|
| 954 |
+
}else{
|
| 955 |
+
sleep($this->RETRY_TIMEOUT);
|
| 956 |
+
}
|
| 957 |
+
try{
|
| 958 |
+
$this->SetCallSocketTimeOut();
|
| 959 |
+
$this->VerifyIfAnotherWShasSwitch($Method);
|
| 960 |
+
$client = new SoapClient($WDSL, $this->header_soap);
|
| 961 |
+
$DateDebut = time();
|
| 962 |
+
$WSresponse = $this->WSCall("$WS",$WSRequest,$client);
|
| 963 |
+
$this->SetDefaultSocketTimeOut();
|
| 964 |
+
$response = util::responseToArray($WSresponse);
|
| 965 |
+
$response = $this->AddResponseSwitchingChain($Method,$response);
|
| 966 |
+
if($this->CheckForError($response)){
|
| 967 |
+
throw new Exception('Technical Error : '+$response['result']['code']+' : '+$response['result']['shortMessage']+' : '+$response['result']['longMessage']);
|
| 968 |
+
}else{
|
| 969 |
+
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 970 |
+
if(!$this->CheckIniValue('EndSwitchTry',0)){
|
| 971 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 972 |
+
$jIniFileModifier->setValue('EndSwitchTry', 0, 'Switcher', null);
|
| 973 |
+
$jIniFileModifier->save();
|
| 974 |
+
}
|
| 975 |
+
}
|
| 976 |
+
return $response;
|
| 977 |
+
}
|
| 978 |
+
}catch (Exception $e){
|
| 979 |
+
$DateFin = time();
|
| 980 |
+
$this->CURRENT_NUMBER_CALL++;
|
| 981 |
+
if(!($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL) && $this->PRIMARY){
|
| 982 |
+
$this->SwitchToSecondary();
|
| 983 |
+
$this->CURRENT_NUMBER_CALL = 0;
|
| 984 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 985 |
+
$jIniFileModifier->setValue('TimeEndSwitch', time()+((int)Mage::helper('payline')->ini_file), 'Switcher', null);
|
| 986 |
+
$jIniFileModifier->save();
|
| 987 |
+
if(!$this->CheckIniValue('EndSwitchTry',1)){
|
| 988 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 989 |
+
$jIniFileModifier->setValue('EndSwitchTry', 1, 'Switcher', null);
|
| 990 |
+
$jIniFileModifier->save();
|
| 991 |
+
}
|
| 992 |
+
}
|
| 993 |
+
|
| 994 |
+
}
|
| 995 |
+
|
| 996 |
+
}
|
| 997 |
+
return $response;
|
| 998 |
+
}
|
| 999 |
+
|
| 1000 |
+
// Fonction qui permet l'utilisation de la plateforme HD et qui corrige le bug de formatage des données pour le WS getCards
|
| 1001 |
+
private function SwitcherFormatResponse($DateDebut,$Method,$WS,$WSRequest,$WDSL){
|
| 1002 |
+
$DateFin = time();
|
| 1003 |
+
$this->SetDefaultSocketTimeOut();
|
| 1004 |
+
$response = array();
|
| 1005 |
+
while($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL){
|
| 1006 |
+
if($this->PRIMARY){
|
| 1007 |
+
if(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)) >= 0){
|
| 1008 |
+
sleep(($this->RETRY_TIMEOUT - ($DateDebut-$DateFin)));
|
| 1009 |
+
$DateDebut = 0;
|
| 1010 |
+
$DateFin = 0;
|
| 1011 |
+
}
|
| 1012 |
+
}else{
|
| 1013 |
+
sleep($this->RETRY_TIMEOUT);
|
| 1014 |
+
}
|
| 1015 |
+
try{
|
| 1016 |
+
$this->SetCallSocketTimeOut();
|
| 1017 |
+
$this->VerifyIfAnotherWShasSwitch($Method);
|
| 1018 |
+
$client = new SoapClient($WDSL, $this->header_soap);
|
| 1019 |
+
$DateDebut = time();
|
| 1020 |
+
$WSresponse = $this->WSCall("$WS",$WSRequest,$client);
|
| 1021 |
+
$this->SetDefaultSocketTimeOut();
|
| 1022 |
+
$response = util::responseToArrayForGetCards($WSresponse);
|
| 1023 |
+
$response = $this->AddResponseSwitchingChain($Method,$response);
|
| 1024 |
+
if($this->CheckForError($response)){
|
| 1025 |
+
throw new Exception('Technical Error : '+$response['result']['code']+' : '+$response['result']['shortMessage']+' : '+$response['result']['longMessage']);
|
| 1026 |
+
}else{
|
| 1027 |
+
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1028 |
+
if(!$this->CheckIniValue('EndSwitchTry',0)){
|
| 1029 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1030 |
+
$jIniFileModifier->setValue('EndSwitchTry', 0, 'Switcher', null);
|
| 1031 |
+
$jIniFileModifier->save();
|
| 1032 |
+
}
|
| 1033 |
+
}
|
| 1034 |
+
return $response;
|
| 1035 |
+
}
|
| 1036 |
+
}catch (Exception $e){
|
| 1037 |
+
$DateFin = time();
|
| 1038 |
+
$this->CURRENT_NUMBER_CALL++;
|
| 1039 |
+
if(!($this->NMAX_TENTATIVE >= $this->CURRENT_NUMBER_CALL) && $this->PRIMARY){
|
| 1040 |
+
$this->SwitchToSecondary();
|
| 1041 |
+
$this->CURRENT_NUMBER_CALL = 0;
|
| 1042 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1043 |
+
$jIniFileModifier->setValue('TimeEndSwitch', time()+((int)Mage::helper('payline')->ini_file), 'Switcher', null);
|
| 1044 |
+
$jIniFileModifier->save();
|
| 1045 |
+
if(!$this->CheckIniValue('EndSwitchTry',1)){
|
| 1046 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1047 |
+
$jIniFileModifier->setValue('EndSwitchTry', 1, 'Switcher', null);
|
| 1048 |
+
$jIniFileModifier->save();
|
| 1049 |
+
}
|
| 1050 |
+
}
|
| 1051 |
+
}
|
| 1052 |
+
}
|
| 1053 |
+
return $response;
|
| 1054 |
+
}
|
| 1055 |
+
|
| 1056 |
+
private function WSCall($Method,$WSRequest,$client){
|
| 1057 |
+
$response = null ;
|
| 1058 |
+
switch ($Method) {
|
| 1059 |
+
case "doWebPayment":
|
| 1060 |
+
$response = $client->doWebPayment($WSRequest);
|
| 1061 |
+
break;
|
| 1062 |
+
case "doAuthorization":
|
| 1063 |
+
$response = $client->doAuthorization($WSRequest);
|
| 1064 |
+
break;
|
| 1065 |
+
case "doCapture":
|
| 1066 |
+
$response = $client->doCapture($WSRequest);
|
| 1067 |
+
break;
|
| 1068 |
+
case "doRefund":
|
| 1069 |
+
$response = $client->doRefund($WSRequest);
|
| 1070 |
+
break;
|
| 1071 |
+
case "doCredit":
|
| 1072 |
+
$response = $client->doCredit($WSRequest);
|
| 1073 |
+
break;
|
| 1074 |
+
case "verifyEnrollment":
|
| 1075 |
+
$response = $client->verifyEnrollment($WSRequest);
|
| 1076 |
+
break;
|
| 1077 |
+
case "doDebit":
|
| 1078 |
+
$response = $client->doDebit($WSRequest);
|
| 1079 |
+
break;
|
| 1080 |
+
case "doReset":
|
| 1081 |
+
$response = $client->doReset($WSRequest);
|
| 1082 |
+
break;
|
| 1083 |
+
case "createWallet":
|
| 1084 |
+
$response = $client->createWallet($WSRequest);
|
| 1085 |
+
break;
|
| 1086 |
+
case "getWallet":
|
| 1087 |
+
$response = $client->getWallet($WSRequest);
|
| 1088 |
+
break;
|
| 1089 |
+
case "updateWallet":
|
| 1090 |
+
$response = $client->updateWallet($WSRequest);
|
| 1091 |
+
break;
|
| 1092 |
+
case "createWebWallet":
|
| 1093 |
+
$response = $client->createWebWallet($WSRequest);
|
| 1094 |
+
break;
|
| 1095 |
+
case "updateWebWallet":
|
| 1096 |
+
$response = $client->updateWebWallet($WSRequest);
|
| 1097 |
+
break;
|
| 1098 |
+
case "disableWallet":
|
| 1099 |
+
$response = $client->disableWallet($WSRequest);
|
| 1100 |
+
break;
|
| 1101 |
+
case "enableWallet":
|
| 1102 |
+
$response = $client->enableWallet($WSRequest);
|
| 1103 |
+
break;
|
| 1104 |
+
case "doImmediateWalletPayment":
|
| 1105 |
+
$response = $client->doImmediateWalletPayment($WSRequest);
|
| 1106 |
+
break;
|
| 1107 |
+
case "doScheduledWalletPayment":
|
| 1108 |
+
$response = $client->doScheduledWalletPayment($WSRequest);
|
| 1109 |
+
break;
|
| 1110 |
+
case "doRecurrentWalletPayment":
|
| 1111 |
+
$response = $client->doRecurrentWalletPayment($WSRequest);
|
| 1112 |
+
break;
|
| 1113 |
+
case "getPaymentRecord":
|
| 1114 |
+
$response = $client->getPaymentRecord($WSRequest);
|
| 1115 |
+
break;
|
| 1116 |
+
case "disablePaymentRecord":
|
| 1117 |
+
$response = $client->disablePaymentRecord($WSRequest);
|
| 1118 |
+
break;
|
| 1119 |
+
case "getTransactionDetails":
|
| 1120 |
+
$response = $client->getTransactionDetails($WSRequest);
|
| 1121 |
+
break;
|
| 1122 |
+
case "transactionsSearch":
|
| 1123 |
+
$response = $client->transactionsSearch($WSRequest);
|
| 1124 |
+
break;
|
| 1125 |
+
case "verifyAuthentication":
|
| 1126 |
+
$response = $client->verifyAuthentication($WSRequest);
|
| 1127 |
+
break;
|
| 1128 |
+
case "getEncryptionKey":
|
| 1129 |
+
$response = $client->getEncryptionKey($WSRequest);
|
| 1130 |
+
break;
|
| 1131 |
+
case "getCards":
|
| 1132 |
+
$response = $client->getCards($WSRequest);
|
| 1133 |
+
break;
|
| 1134 |
+
case "doScoringCheque":
|
| 1135 |
+
$response = $client->doScoringCheque($WSRequest);
|
| 1136 |
+
break;
|
| 1137 |
+
case "doReAuthorization":
|
| 1138 |
+
$response = $client->doReAuthorization($WSRequest);
|
| 1139 |
+
break;
|
| 1140 |
+
}
|
| 1141 |
+
return $response;
|
| 1142 |
+
}
|
| 1143 |
+
|
| 1144 |
+
private function TokenSwitch($token){
|
| 1145 |
+
$Check = substr($token,0,1);
|
| 1146 |
+
if($Check == (string)Mage::helper('payline')->primaryTokenPrefix){
|
| 1147 |
+
$this->SwitchToPrimary();
|
| 1148 |
+
}else if($Check == (string)Mage::helper('payline')->secondaryTokenPrefix){
|
| 1149 |
+
$this->SwitchToSecondary();
|
| 1150 |
+
}
|
| 1151 |
+
}
|
| 1152 |
+
|
| 1153 |
+
/**
|
| 1154 |
+
* @method writeTrace
|
| 1155 |
+
* @desc write a trace in Payline log file
|
| 1156 |
+
* @param $trace : the string to add in the log file
|
| 1157 |
+
*/
|
| 1158 |
+
public function writeTrace($trace){
|
| 1159 |
+
if(!isset($this->paylineTrace)){
|
| 1160 |
+
$this->paylineTrace = new Log(date('Y-m-d',time()).'.log');
|
| 1161 |
+
}
|
| 1162 |
+
$this->paylineTrace->write($trace);
|
| 1163 |
+
}
|
| 1164 |
+
|
| 1165 |
+
private function webServiceRequest($array,$WSRequest,$PaylineAPI,$Method){
|
| 1166 |
+
try{
|
| 1167 |
+
if(isset($array['Switch']['Forced'])){
|
| 1168 |
+
$this->init_config($Method,$array['Switch']['Forced'],$array['Switch']['Choice']);
|
| 1169 |
+
}else{
|
| 1170 |
+
$this->init_config($Method,'','');
|
| 1171 |
+
}
|
| 1172 |
+
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1173 |
+
$this->NMAX_TENTATIVE = 1;
|
| 1174 |
+
}
|
| 1175 |
+
set_time_limit(0);
|
| 1176 |
+
$this->SetCallSocketTimeOut();
|
| 1177 |
+
$DateDebut = time();
|
| 1178 |
+
$this->VerifyIfAnotherWShasSwitch($Method);
|
| 1179 |
+
$client = new SoapClient(dirname(__FILE__).'/'.paylineSDK::WSDL, $this->header_soap);
|
| 1180 |
+
$client->__setLocation ($this->webServicesEndpoint.$PaylineAPI);
|
| 1181 |
+
$this->writeTrace("webServiceRequest($Method) - Location : ".$this->webServicesEndpoint.$PaylineAPI);
|
| 1182 |
+
if(isset($array['version'])&& strlen($array['version'])) $this->version = $array['version'];
|
| 1183 |
+
if(isset($array['media'])&& strlen($array['media'])) $this->media = $array['media'];
|
| 1184 |
+
|
| 1185 |
+
switch($Method){
|
| 1186 |
+
case 'createMerchant':
|
| 1187 |
+
$WSresponse = $client->createMerchant($WSRequest);
|
| 1188 |
+
break;
|
| 1189 |
+
case 'createWallet':
|
| 1190 |
+
$WSresponse = $client->createWallet($WSRequest);
|
| 1191 |
+
break;
|
| 1192 |
+
case 'createWebWallet':
|
| 1193 |
+
$WSresponse = $client->createWebWallet($WSRequest);
|
| 1194 |
+
break;
|
| 1195 |
+
case 'disablePaymentRecord':
|
| 1196 |
+
$WSresponse = $client->disablePaymentRecord($WSRequest);
|
| 1197 |
+
break;
|
| 1198 |
+
case 'disableWallet':
|
| 1199 |
+
$WSresponse = $client->disableWallet($WSRequest);
|
| 1200 |
+
break;
|
| 1201 |
+
case 'doAuthorization':
|
| 1202 |
+
$WSresponse = $client->doAuthorization($WSRequest);
|
| 1203 |
+
break;
|
| 1204 |
+
case 'doCapture':
|
| 1205 |
+
$WSresponse = $client->doCapture($WSRequest);
|
| 1206 |
+
break;
|
| 1207 |
+
case 'doCredit':
|
| 1208 |
+
$WSresponse = $client->doCredit($WSRequest);
|
| 1209 |
+
break;
|
| 1210 |
+
case 'doDebit':
|
| 1211 |
+
$WSresponse = $client->doDebit($WSRequest);
|
| 1212 |
+
break;
|
| 1213 |
+
case 'doImmediateWalletPayment':
|
| 1214 |
+
$WSresponse = $client->doImmediateWalletPayment($WSRequest);
|
| 1215 |
+
break;
|
| 1216 |
+
case 'doReAuthorization':
|
| 1217 |
+
$WSresponse = $client->doReAuthorization($WSRequest);
|
| 1218 |
+
break;
|
| 1219 |
+
case 'doRecurrentWalletPayment':
|
| 1220 |
+
$WSresponse = $client->doRecurrentWalletPayment($WSRequest);
|
| 1221 |
+
break;
|
| 1222 |
+
case 'doRefund':
|
| 1223 |
+
$WSresponse = $client->doRefund($WSRequest);
|
| 1224 |
+
break;
|
| 1225 |
+
case 'doReset':
|
| 1226 |
+
$WSresponse = $client->doReset($WSRequest);
|
| 1227 |
+
break;
|
| 1228 |
+
case 'doScheduledWalletPayment':
|
| 1229 |
+
$WSresponse = $client->doScheduledWalletPayment($WSRequest);
|
| 1230 |
+
break;
|
| 1231 |
+
case 'doScoringCheque':
|
| 1232 |
+
$WSresponse = $client->doScoringCheque($WSRequest);
|
| 1233 |
+
break;
|
| 1234 |
+
case 'doWebPayment':
|
| 1235 |
+
$WSresponse = $client->doWebPayment($WSRequest);
|
| 1236 |
+
break;
|
| 1237 |
+
case 'enableWallet':
|
| 1238 |
+
$WSresponse = $client->enableWallet($WSRequest);
|
| 1239 |
+
break;
|
| 1240 |
+
case 'getBalance':
|
| 1241 |
+
$WSresponse = $client->getBalance($WSRequest);
|
| 1242 |
+
break;
|
| 1243 |
+
case 'getCards':
|
| 1244 |
+
$WSresponse = $client->getCards($WSRequest);
|
| 1245 |
+
break;
|
| 1246 |
+
case 'getEncryptionKey':
|
| 1247 |
+
$WSresponse = $client->getEncryptionKey($WSRequest);
|
| 1248 |
+
break;
|
| 1249 |
+
case 'getMerchantSettings':
|
| 1250 |
+
$WSresponse = $client->getMerchantSettings($WSRequest);
|
| 1251 |
+
break;
|
| 1252 |
+
case 'getPaymentRecord':
|
| 1253 |
+
$WSresponse = $client->getPaymentRecord($WSRequest);
|
| 1254 |
+
break;
|
| 1255 |
+
case 'getTransactionDetails':
|
| 1256 |
+
$WSresponse = $client->getTransactionDetails($WSRequest);
|
| 1257 |
+
break;
|
| 1258 |
+
case 'getWallet':
|
| 1259 |
+
$WSresponse = $client->getWallet($WSRequest);
|
| 1260 |
+
break;
|
| 1261 |
+
case 'getWebPaymentDetails':
|
| 1262 |
+
$WSresponse = $client->getWebPaymentDetails($WSRequest);
|
| 1263 |
+
break;
|
| 1264 |
+
case 'getWebWallet':
|
| 1265 |
+
$WSresponse = $client->getWebWallet($WSRequest);
|
| 1266 |
+
break;
|
| 1267 |
+
case 'manageWebWallet' :
|
| 1268 |
+
$WSresponse = $client->manageWebWallet($WSRequest);
|
| 1269 |
+
break;
|
| 1270 |
+
case 'transactionsSearch':
|
| 1271 |
+
$WSresponse = $client->transactionsSearch($WSRequest);
|
| 1272 |
+
break;
|
| 1273 |
+
case 'updateWallet':
|
| 1274 |
+
$WSresponse = $client->updateWallet($WSRequest);
|
| 1275 |
+
break;
|
| 1276 |
+
case 'updateWebWallet':
|
| 1277 |
+
$WSresponse = $client->updateWebWallet($WSRequest);
|
| 1278 |
+
break;
|
| 1279 |
+
case 'verifyAuthentication':
|
| 1280 |
+
$WSresponse = $client->verifyAuthentication($WSRequest);
|
| 1281 |
+
break;
|
| 1282 |
+
case 'verifyEnrollment':
|
| 1283 |
+
$WSresponse = $client->verifyEnrollment($WSRequest);
|
| 1284 |
+
break;
|
| 1285 |
+
|
| 1286 |
+
}
|
| 1287 |
+
|
| 1288 |
+
$this->CURRENT_NUMBER_CALL++;
|
| 1289 |
+
$this->SetDefaultSocketTimeOut();
|
| 1290 |
+
if($Method == 'getCards'){
|
| 1291 |
+
$response = util::responseToArrayForGetCards($WSresponse);
|
| 1292 |
+
|
| 1293 |
+
}else{
|
| 1294 |
+
$response = util::responseToArray($WSresponse);
|
| 1295 |
+
}
|
| 1296 |
+
$response = $this->AddResponseSwitchingChain($Method,$response);
|
| 1297 |
+
|
| 1298 |
+
if($this->CheckForError($response)){
|
| 1299 |
+
throw new Exception('Technical Error : '+$response['result']['code']+' : '+$response['result']['shortMessage']+' : '+$response['result']['longMessage']);
|
| 1300 |
+
}else{
|
| 1301 |
+
if($this->CheckEndSwitch() && $this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1302 |
+
if(!$this->CheckIniValue('EndSwitchTry',0)){
|
| 1303 |
+
$jIniFileModifier = new jIniFileModifier((string)Mage::helper('payline')->ini_file);
|
| 1304 |
+
$jIniFileModifier->setValue('EndSwitchTry', 0, 'Switcher', null);
|
| 1305 |
+
$jIniFileModifier->save();
|
| 1306 |
+
}
|
| 1307 |
+
}
|
| 1308 |
+
$this->writeTrace("response return (code ".$response['result']['code'].")");
|
| 1309 |
+
return $response;
|
| 1310 |
+
}
|
| 1311 |
+
}catch ( Exception $e ) {
|
| 1312 |
+
$this->writeTrace("Exception : ".$e->getMessage());
|
| 1313 |
+
if($this->IsSwitchingEnabled($Method) && !(isset($array['Switch']['Forced']) && $this->IsForceSwitch($array['Switch']['Forced']))){
|
| 1314 |
+
$WS = $Method;
|
| 1315 |
+
return $this->Switcher($DateDebut,$Method,$WS,$WSRequest,$this->WSDL_DIRECT_SOAP);
|
| 1316 |
+
}
|
| 1317 |
+
return $e->getMessage();
|
| 1318 |
+
}
|
| 1319 |
+
}
|
| 1320 |
+
|
| 1321 |
+
public function createWallet($array){
|
| 1322 |
+
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1323 |
+
$WSRequest = array (
|
| 1324 |
+
'version' => $array['version'], // modified by smile
|
| 1325 |
+
'contractNumber' => $array['contractNumber'],
|
| 1326 |
+
'wallet' => $this->wallet($array['wallet'],$array['address'],$array['card']),
|
| 1327 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1328 |
+
'owner' => $this->owner($array['owner'],$array['ownerAddress']),
|
| 1329 |
+
'privateDataList' => $this->privates,
|
| 1330 |
+
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1331 |
+
'media' => $this->media,
|
| 1332 |
+
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1333 |
+
);
|
| 1334 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'createWallet');
|
| 1335 |
+
}
|
| 1336 |
+
|
| 1337 |
+
public function createWebWallet($array){
|
| 1338 |
+
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1339 |
+
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1340 |
+
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1341 |
+
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1342 |
+
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1343 |
+
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1344 |
+
if(isset($array['languageCode'])&& strlen($array['languageCode'])) $this->languageCode = $array['languageCode'];
|
| 1345 |
+
if(isset($array['securityMode'])&& strlen($array['securityMode'])) $this->securityMode = $array['securityMode'];
|
| 1346 |
+
if(!isset($array['contracts'])||!strlen($array['contracts'][0]))$array['contracts'] = '';
|
| 1347 |
+
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1348 |
+
$WSRequest = array (
|
| 1349 |
+
'version' => $array['version'], // modified by smile
|
| 1350 |
+
'contractNumber' => $array['contractNumber'],
|
| 1351 |
+
'selectedContractList' => $this->contracts($array['contracts']),
|
| 1352 |
+
'updatePersonalDetails' => $array['updatePersonalDetails'],
|
| 1353 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1354 |
+
'languageCode' => $this->languageCode,
|
| 1355 |
+
'customPaymentPageCode' => $this->customPaymentPageCode,
|
| 1356 |
+
'securityMode' => $this->securityMode,
|
| 1357 |
+
'returnURL' => $this->returnURL,
|
| 1358 |
+
'cancelURL' => $this->cancelURL,
|
| 1359 |
+
'notificationURL' => $this->notificationURL,
|
| 1360 |
+
'privateDataList' => $this->privates,
|
| 1361 |
+
'customPaymentTemplateURL' => $this->customPaymentTemplateURL,
|
| 1362 |
+
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1363 |
+
);
|
| 1364 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'createWebWallet');
|
| 1365 |
+
}
|
| 1366 |
+
|
| 1367 |
+
public function disablePaymentRecord($array){
|
| 1368 |
+
$WSRequest = array (
|
| 1369 |
+
'contractNumber' => $array['contractNumber'],
|
| 1370 |
+
'paymentRecordId' => $array['paymentRecordId']
|
| 1371 |
+
);
|
| 1372 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'disablePaymentRecord');
|
| 1373 |
+
}
|
| 1374 |
+
|
| 1375 |
+
public function disableWallet($array){
|
| 1376 |
+
$WSRequest = array (
|
| 1377 |
+
'contractNumber' => $array['contractNumber'],
|
| 1378 |
+
'walletIdList' => $this->walletIdList,
|
| 1379 |
+
'cardInd' => $array['cardInd']
|
| 1380 |
+
);
|
| 1381 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'disableWallet');
|
| 1382 |
+
}
|
| 1383 |
+
|
| 1384 |
+
public function doAuthorization($array){
|
| 1385 |
+
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1386 |
+
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1387 |
+
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1388 |
+
$WSRequest = array (
|
| 1389 |
+
'version' => $array['version'], // modified by smile
|
| 1390 |
+
'payment' => $this->payment($array['payment']),
|
| 1391 |
+
'card' => $this->card($array['card']),
|
| 1392 |
+
'order' => $this->order($array['order']),
|
| 1393 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1394 |
+
'privateDataList' => $this->privates,
|
| 1395 |
+
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1396 |
+
'bankAccountData' => $this->bankAccountData($array['BankAccountData']),
|
| 1397 |
+
'media' => $this->media
|
| 1398 |
+
);
|
| 1399 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doAuthorization');
|
| 1400 |
+
}
|
| 1401 |
+
|
| 1402 |
+
public function doCapture($array){
|
| 1403 |
+
$WSRequest = array (
|
| 1404 |
+
'version' => $array['version'], // modified by smile
|
| 1405 |
+
'transactionID' =>$array['transactionID'],
|
| 1406 |
+
'payment' => $this->payment($array['payment']),
|
| 1407 |
+
'privateDataList' => $this->privates,
|
| 1408 |
+
'sequenceNumber'=>$array['sequenceNumber'],
|
| 1409 |
+
'media' => $this->media
|
| 1410 |
+
);
|
| 1411 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doCapture');
|
| 1412 |
+
}
|
| 1413 |
+
|
| 1414 |
+
public function doCredit($array){
|
| 1415 |
+
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1416 |
+
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1417 |
+
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1418 |
+
$WSRequest = array (
|
| 1419 |
+
'version' => $array['version'], // modified by smile
|
| 1420 |
+
'payment' => $this->payment($array['payment']),
|
| 1421 |
+
'card' => $this->card($array['card']),
|
| 1422 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1423 |
+
'privateDataList' => $this->privates,
|
| 1424 |
+
'order' => $this->order($array['order']),
|
| 1425 |
+
'comment' =>$array['comment'],
|
| 1426 |
+
'media' => $this->media
|
| 1427 |
+
);
|
| 1428 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doCredit');
|
| 1429 |
+
}
|
| 1430 |
+
|
| 1431 |
+
public function doDebit($array){
|
| 1432 |
+
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1433 |
+
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1434 |
+
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1435 |
+
$WSRequest = array (
|
| 1436 |
+
'version' => $array['version'], // modified by smile
|
| 1437 |
+
'payment' => $this->payment($array['payment']),
|
| 1438 |
+
'card' => $this->card($array['card']),
|
| 1439 |
+
'order' => $this->order($array['order']),
|
| 1440 |
+
'privateDataList' => $this->privates,
|
| 1441 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1442 |
+
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1443 |
+
'authorization' =>$this->authorization($array['authorization']),
|
| 1444 |
+
'media' => $this->media
|
| 1445 |
+
);
|
| 1446 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doDebit');
|
| 1447 |
+
}
|
| 1448 |
+
|
| 1449 |
+
public function doImmediateWalletPayment($array){
|
| 1450 |
+
$WSRequest = array (
|
| 1451 |
+
'version' => $array['version'], // modified by smile
|
| 1452 |
+
'payment' => $this->payment($array['payment']),
|
| 1453 |
+
'order' => $this->order($array['order']),
|
| 1454 |
+
'walletId' => $array['walletId'],
|
| 1455 |
+
'cardInd' => $array['cardInd'],
|
| 1456 |
+
'privateDataList' => $this->privates,
|
| 1457 |
+
'media' => $this->media,
|
| 1458 |
+
);
|
| 1459 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doImmediateWalletPayment');
|
| 1460 |
+
}
|
| 1461 |
+
|
| 1462 |
+
public function doReAuthorization($array){
|
| 1463 |
+
$WSRequest = array (
|
| 1464 |
+
'version' => $array['version'], // modified by smile
|
| 1465 |
+
'transactionID' => $array['transactionID'],
|
| 1466 |
+
'payment' => $this->payment($array['payment']),
|
| 1467 |
+
'order' => $this->order($array['order']),
|
| 1468 |
+
'privateDataList' => $this->privates,
|
| 1469 |
+
'media' => $this->media
|
| 1470 |
+
);
|
| 1471 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doReAuthorization');
|
| 1472 |
+
}
|
| 1473 |
+
|
| 1474 |
+
public function doRecurrentWalletPayment($array){
|
| 1475 |
+
$WSRequest = array (
|
| 1476 |
+
'version' => $array['version'], // modified by smile
|
| 1477 |
+
'payment' => $this->payment($array['payment']),
|
| 1478 |
+
'orderRef' => $array['orderRef'],
|
| 1479 |
+
'orderDate' => $array['orderDate'],
|
| 1480 |
+
'scheduledDate' => $array['scheduled'],
|
| 1481 |
+
'walletId' => $array['walletId'],
|
| 1482 |
+
'cardInd' => $array['cardInd'],
|
| 1483 |
+
'recurring' => $this->recurring($array['recurring']),
|
| 1484 |
+
'privateDataList' => $this->privates,
|
| 1485 |
+
'order' => $this->order($array['order']),
|
| 1486 |
+
'media' => $this->media
|
| 1487 |
+
);
|
| 1488 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doRecurrentWalletPayment');
|
| 1489 |
+
}
|
| 1490 |
+
|
| 1491 |
+
public function doRefund($array){
|
| 1492 |
+
$WSRequest = array (
|
| 1493 |
+
'version' => $array['version'], // modified by smile
|
| 1494 |
+
'transactionID' =>$array['transactionID'],
|
| 1495 |
+
'payment' =>$this->payment($array['payment']),
|
| 1496 |
+
'comment' =>$array['comment'],
|
| 1497 |
+
'privateDataList' => $this->privates,
|
| 1498 |
+
'sequenceNumber'=>$array['sequenceNumber'],
|
| 1499 |
+
'media' => $this->media
|
| 1500 |
+
);
|
| 1501 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doRefund');
|
| 1502 |
+
}
|
| 1503 |
+
|
| 1504 |
+
public function doReset($array){
|
| 1505 |
+
$WSRequest = array (
|
| 1506 |
+
'version' => $array['version'], // modified by smile
|
| 1507 |
+
'transactionID' => $array['transactionID'],
|
| 1508 |
+
'comment' => $array['comment'],
|
| 1509 |
+
'media' => $this->media
|
| 1510 |
+
);
|
| 1511 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doReset');
|
| 1512 |
+
}
|
| 1513 |
+
|
| 1514 |
+
public function doScheduledWalletPayment($array){
|
| 1515 |
+
$WSRequest = array (
|
| 1516 |
+
'version' => $array['version'], // modified by smile
|
| 1517 |
+
'payment' => $this->payment($array['payment']),
|
| 1518 |
+
'orderRef' => $array['orderRef'],
|
| 1519 |
+
'orderDate' => $array['orderDate'],
|
| 1520 |
+
'scheduledDate' => $array['scheduled'],
|
| 1521 |
+
'walletId' => $array['walletId'],
|
| 1522 |
+
'cardInd' => $array['cardInd'],
|
| 1523 |
+
'order' => $this->order($array['order']),
|
| 1524 |
+
'privateDataList' => $this->privates,
|
| 1525 |
+
'media' => $this->media
|
| 1526 |
+
);
|
| 1527 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doScheduledWalletPayment');
|
| 1528 |
+
}
|
| 1529 |
+
|
| 1530 |
+
public function doScoringCheque($array){
|
| 1531 |
+
$WSRequest = array (
|
| 1532 |
+
'version' => $array['version'], // modified by smile
|
| 1533 |
+
'payment' => $this->payment($array['payment']),
|
| 1534 |
+
'cheque' => $this->cheque($array['cheque']),
|
| 1535 |
+
'order' => $this->order($array['order']),
|
| 1536 |
+
'privateDataList' => $this->privates,
|
| 1537 |
+
'media' => $this->media
|
| 1538 |
+
);
|
| 1539 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'doScoringCheque');
|
| 1540 |
+
}
|
| 1541 |
+
|
| 1542 |
+
public function doWebPayment($array){
|
| 1543 |
+
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1544 |
+
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1545 |
+
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1546 |
+
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1547 |
+
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1548 |
+
if(isset($array['languageCode'])&& strlen($array['languageCode'])) $this->languageCode = $array['languageCode'];
|
| 1549 |
+
if(isset($array['securityMode'])&& strlen($array['securityMode'])) $this->securityMode = $array['securityMode'];
|
| 1550 |
+
if(!isset($array['payment']))$array['payment'] = null;
|
| 1551 |
+
if(!isset($array['contracts'])||!strlen($array['contracts'][0]))$array['contracts'] = '';
|
| 1552 |
+
if(!isset($array['secondContracts'])||!strlen($array['secondContracts'][0]))$array['secondContracts'] = '';
|
| 1553 |
+
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1554 |
+
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1555 |
+
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1556 |
+
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1557 |
+
if(!isset($array['recurring']))$array['recurring'] = null;
|
| 1558 |
+
$WSRequest = array (
|
| 1559 |
+
'version' => $array['version'], // modified by smile
|
| 1560 |
+
'payment' => $this->payment($array['payment']),
|
| 1561 |
+
'returnURL' => $this->returnURL,
|
| 1562 |
+
'cancelURL' => $this->cancelURL,
|
| 1563 |
+
'order' => $this->order($array['order']),
|
| 1564 |
+
'notificationURL' => $this->notificationURL,
|
| 1565 |
+
'customPaymentTemplateURL' => $this->customPaymentTemplateURL,
|
| 1566 |
+
'selectedContractList' => $this->contracts($array['contracts']),
|
| 1567 |
+
'secondSelectedContractList' => $this->secondContracts($array['secondContracts']),
|
| 1568 |
+
'privateDataList' => $this->privates,
|
| 1569 |
+
'languageCode' => $this->languageCode,
|
| 1570 |
+
'customPaymentPageCode' => $this->customPaymentPageCode,
|
| 1571 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1572 |
+
'securityMode' => $this->securityMode,
|
| 1573 |
+
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1574 |
+
);
|
| 1575 |
+
|
| 1576 |
+
if(isset($array['payment']['mode'])){
|
| 1577 |
+
if(($array['payment']['mode'] == "REC") || ($array['payment']['mode'] == "NX")) {
|
| 1578 |
+
$WSRequest['recurring'] = $this->recurring($array['recurring']);
|
| 1579 |
+
}
|
| 1580 |
+
}
|
| 1581 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'doWebPayment');
|
| 1582 |
+
}
|
| 1583 |
+
|
| 1584 |
+
public function enableWallet($array){
|
| 1585 |
+
$WSRequest = array (
|
| 1586 |
+
'contractNumber' => $array['contractNumber'],
|
| 1587 |
+
'walletId' => $array['walletId'],
|
| 1588 |
+
'cardInd' => $array['cardInd']
|
| 1589 |
+
);
|
| 1590 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'enableWallet');
|
| 1591 |
+
}
|
| 1592 |
+
|
| 1593 |
+
public function getBalance($array){
|
| 1594 |
+
$WSRequest = array(
|
| 1595 |
+
'contractNumber' => $array['contractNumber'],
|
| 1596 |
+
'cardID' => $array['cardID']
|
| 1597 |
+
);
|
| 1598 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getBalance');
|
| 1599 |
+
}
|
| 1600 |
+
|
| 1601 |
+
public function getCards($array){
|
| 1602 |
+
$WSRequest = array (
|
| 1603 |
+
'contractNumber' => $array['contractNumber'],
|
| 1604 |
+
'walletId' => $array['walletId'],
|
| 1605 |
+
'cardInd' => $array['cardInd']
|
| 1606 |
+
);
|
| 1607 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getCards');
|
| 1608 |
+
}
|
| 1609 |
+
|
| 1610 |
+
public function getEncryptionKey($array){
|
| 1611 |
+
$WSRequest = array();
|
| 1612 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getEncryptionKey');
|
| 1613 |
+
}
|
| 1614 |
+
|
| 1615 |
+
public function getMerchantSettings($array){
|
| 1616 |
+
$WSRequest = array(
|
| 1617 |
+
'version' => $array['version'] // modified by smile
|
| 1618 |
+
);
|
| 1619 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getMerchantSettings');
|
| 1620 |
+
}
|
| 1621 |
+
|
| 1622 |
+
public function getPaymentRecord($array){
|
| 1623 |
+
$WSRequest = array (
|
| 1624 |
+
'version' => $array['version'], // modified by smile
|
| 1625 |
+
'contractNumber' => $array['contractNumber'],
|
| 1626 |
+
'paymentRecordId' => $array['paymentRecordId']
|
| 1627 |
+
);
|
| 1628 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getPaymentRecord');
|
| 1629 |
+
}
|
| 1630 |
+
public function getTransactionDetails($array){
|
| 1631 |
+
$WSRequest = array (
|
| 1632 |
+
'version' => $array['version'], // modified by smile
|
| 1633 |
+
'transactionId' => $array['transactionId'],
|
| 1634 |
+
'orderRef' => $array['orderRef'],
|
| 1635 |
+
'startDate' => $array['startDate'],
|
| 1636 |
+
'endDate' => $array['endDate'],
|
| 1637 |
+
'transactionHistory' => $array['transactionHistory'],
|
| 1638 |
+
'archiveSearch' => $array['archiveSearch']
|
| 1639 |
+
);
|
| 1640 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::EXTENDED_API,'getTransactionDetails');
|
| 1641 |
+
}
|
| 1642 |
+
public function getWallet($array){
|
| 1643 |
+
$WSRequest = array (
|
| 1644 |
+
'version' => $array['version'], // modified by smile
|
| 1645 |
+
'contractNumber' => $array['contractNumber'],
|
| 1646 |
+
'walletId' => $array['walletId'],
|
| 1647 |
+
'cardInd' => $array['cardInd'],
|
| 1648 |
+
'media' => $this->media
|
| 1649 |
+
);
|
| 1650 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'getWallet');
|
| 1651 |
+
}
|
| 1652 |
+
|
| 1653 |
+
public function getWebPaymentDetails($array){
|
| 1654 |
+
$this->TokenSwitch($array['token']);
|
| 1655 |
+
return $this->webServiceRequest($array,$array,paylineSDK::WEB_API,'getWebPaymentDetails');
|
| 1656 |
+
}
|
| 1657 |
+
|
| 1658 |
+
public function getWebWallet($array){
|
| 1659 |
+
$this->TokenSwitch($array['token']);
|
| 1660 |
+
return $this->webServiceRequest($array,$array,paylineSDK::WEB_API,'getWebWallet');
|
| 1661 |
+
}
|
| 1662 |
+
|
| 1663 |
+
public function manageWebWallet($array){
|
| 1664 |
+
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1665 |
+
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1666 |
+
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1667 |
+
if(!isset($array['buyer']))$array['buyer'] = null;
|
| 1668 |
+
if(!isset($array['billingAddress']))$array['billingAddress'] = null;
|
| 1669 |
+
if(!isset($array['shippingAddress']))$array['shippingAddress'] = null;
|
| 1670 |
+
if(!isset($array['owner']))$array['owner'] = null;
|
| 1671 |
+
if(!isset($array['ownerAddress']))$array['ownerAddress'] = null;
|
| 1672 |
+
if(!isset($array['contracts'])||!strlen($array['contracts'][0]))$array['contracts'] = '';
|
| 1673 |
+
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1674 |
+
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1675 |
+
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1676 |
+
$WSRequest = array (
|
| 1677 |
+
'version' => $array['version'], // modified by smile
|
| 1678 |
+
'contractNumber' => $array['contractNumber'],
|
| 1679 |
+
'selectedContractList' => $this->contracts($array['contracts']),
|
| 1680 |
+
'updatePersonalDetails' => $array['updatePersonalDetails'],
|
| 1681 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1682 |
+
'owner' => $this->owner($array['owner'],$array['ownerAddress']),
|
| 1683 |
+
'languageCode' => $array['languageCode'],
|
| 1684 |
+
'customPaymentPageCode' => $array['customPaymentPageCode'],
|
| 1685 |
+
'securityMode' => $array['securityMode'],
|
| 1686 |
+
'returnURL' => $this->returnURL,
|
| 1687 |
+
'cancelURL' => $this->cancelURL,
|
| 1688 |
+
'notificationURL' => $this->notificationURL,
|
| 1689 |
+
'privateDataList' => $this->privates,
|
| 1690 |
+
'customPaymentTemplateURL' => $array['customPaymentTemplateURL'],
|
| 1691 |
+
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1692 |
+
);
|
| 1693 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'manageWebWallet');
|
| 1694 |
+
}
|
| 1695 |
+
|
| 1696 |
+
public function transactionsSearch($array){
|
| 1697 |
+
$WSRequest = array (
|
| 1698 |
+
'version' => $array['version'], // modified by smile
|
| 1699 |
+
'transactionId' => $array['transactionId'],
|
| 1700 |
+
'orderRef' => $array['orderRef'],
|
| 1701 |
+
'startDate' => $array['startDate'],
|
| 1702 |
+
'endDate' => $array['endDate'],
|
| 1703 |
+
'contractNumber' => $array['contractNumber'],
|
| 1704 |
+
'authorizationNumber' => $array['authorizationNumber'],
|
| 1705 |
+
'returnCode' => $array['returnCode'],
|
| 1706 |
+
'paymentMean' => $array['paymentMean'],
|
| 1707 |
+
'transactionType' => $array['transactionType'],
|
| 1708 |
+
'name' => $array['name'],
|
| 1709 |
+
'firstName' => $array['firstName'],
|
| 1710 |
+
'email' => $array['email'],
|
| 1711 |
+
'cardNumber' => $array['cardNumber'],
|
| 1712 |
+
'currency' => $array['currency'],
|
| 1713 |
+
'minAmount' => $array['minAmount'],
|
| 1714 |
+
'maxAmount' => $array['maxAmount'],
|
| 1715 |
+
'walletId' => $array['walletId'],
|
| 1716 |
+
'sequenceNumber' => $array['sequenceNumber'],
|
| 1717 |
+
'token' => $array['token']
|
| 1718 |
+
);
|
| 1719 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::EXTENDED_API,'transactionsSearch');
|
| 1720 |
+
}
|
| 1721 |
+
|
| 1722 |
+
public function updateWallet($array){
|
| 1723 |
+
$WSRequest = array (
|
| 1724 |
+
'version' => $array['version'], // modified by smile
|
| 1725 |
+
'contractNumber' => $array['contractNumber'],
|
| 1726 |
+
'cardInd' => $array['cardInd'],
|
| 1727 |
+
'wallet' => $this->wallet($array['wallet'],$array['address'],$array['card']),
|
| 1728 |
+
'buyer' => $this->buyer($array['buyer'], $array['billingAddress'],$array['shippingAddress']),
|
| 1729 |
+
'owner' => $this->owner($array['owner'],$array['ownerAddress']),
|
| 1730 |
+
'privateDataList' => $this->privates,
|
| 1731 |
+
'authentication3DSecure' =>$this->authentication3DSecure($array['3DSecure']),
|
| 1732 |
+
'media' => $this->media,
|
| 1733 |
+
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1734 |
+
);
|
| 1735 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'updateWallet');
|
| 1736 |
+
}
|
| 1737 |
+
|
| 1738 |
+
public function updateWebWallet($array){
|
| 1739 |
+
if(isset($array['cancelURL'])&& strlen($array['cancelURL'])) $this->cancelURL = $array['cancelURL'];
|
| 1740 |
+
if(isset($array['notificationURL']) && strlen($array['notificationURL'])) $this->notificationURL = $array['notificationURL'];
|
| 1741 |
+
if(isset($array['returnURL'])&& strlen($array['returnURL'])) $this->returnURL = $array['returnURL'];
|
| 1742 |
+
if(isset($array['customPaymentTemplateURL'])&& strlen($array['customPaymentTemplateURL'])) $this->customPaymentTemplateURL = $array['customPaymentTemplateURL'];
|
| 1743 |
+
if(isset($array['customPaymentPageCode'])&& strlen($array['customPaymentPageCode'])) $this->customPaymentPageCode = $array['customPaymentPageCode'];
|
| 1744 |
+
if(isset($array['languageCode'])&& strlen($array['languageCode'])) $this->languageCode = $array['languageCode'];
|
| 1745 |
+
if(isset($array['securityMode'])&& strlen($array['securityMode'])) $this->securityMode = $array['securityMode'];
|
| 1746 |
+
if(!isset($array['walletContracts'])||!strlen($array['walletContracts'][0]))$array['walletContracts'] = '';
|
| 1747 |
+
$WSRequest = array (
|
| 1748 |
+
'version' => $array['version'], // modified by smile
|
| 1749 |
+
'contractNumber' => $array['contractNumber'],
|
| 1750 |
+
'cardInd' => $array['cardInd'],
|
| 1751 |
+
'walletId' => $array['walletId'],
|
| 1752 |
+
'updatePersonalDetails' => $array['updatePersonalDetails'],
|
| 1753 |
+
'updateOwnerDetails' => $array['updateOwnerDetails'],
|
| 1754 |
+
'updatePaymentDetails' => $array['updatePaymentDetails'],
|
| 1755 |
+
'buyer' => $this->buyer($array['buyer'],$array['billingAddress'],$array['shippingAddress']),
|
| 1756 |
+
'languageCode' => $this->languageCode,
|
| 1757 |
+
'customPaymentPageCode' => $this->customPaymentPageCode,
|
| 1758 |
+
'securityMode' => $this->securityMode,
|
| 1759 |
+
'returnURL' => $this->returnURL,
|
| 1760 |
+
'cancelURL' => $this->cancelURL,
|
| 1761 |
+
'notificationURL' => $this->notificationURL,
|
| 1762 |
+
'privateDataList' => $this->privates,
|
| 1763 |
+
'customPaymentTemplateURL' => $this->customPaymentTemplateURL,
|
| 1764 |
+
'contractNumberWalletList' => $this->secondContracts($array['walletContracts'])
|
| 1765 |
+
);
|
| 1766 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::WEB_API,'updateWebWallet');
|
| 1767 |
+
}
|
| 1768 |
+
|
| 1769 |
+
public function verifyAuthentication($array){
|
| 1770 |
+
$WSRequest = array (
|
| 1771 |
+
'contractNumber' => $array['contractNumber'],
|
| 1772 |
+
'pares' => $array['pares'],
|
| 1773 |
+
'md' => $array['md'],
|
| 1774 |
+
'card' => $this->card($array['card'])
|
| 1775 |
+
);
|
| 1776 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'verifyAuthentication');
|
| 1777 |
+
}
|
| 1778 |
+
|
| 1779 |
+
public function verifyEnrollment($array){
|
| 1780 |
+
$WSRequest = array (
|
| 1781 |
+
'payment' => $this->payment($array['payment']),
|
| 1782 |
+
'card' => $this->card($array['card']),
|
| 1783 |
+
'orderRef' => $array['orderRef'],
|
| 1784 |
+
'userAgent' => $array['userAgent']
|
| 1785 |
+
);
|
| 1786 |
+
return $this->webServiceRequest($array,$WSRequest,paylineSDK::DIRECT_API,'verifyEnrollment');
|
| 1787 |
+
}
|
| 1788 |
+
}
|
| 1789 |
+
?>
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2013-07-10.log
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2013-07-10 11:43:42 - ----------------------------------------------------------
|
| 2 |
+
2013-07-10 11:43:42 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2013-07-10 11:43:43 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2013-07-10 11:43:44 - response return (code 02303)
|
| 5 |
+
2013-07-10 11:46:20 - ----------------------------------------------------------
|
| 6 |
+
2013-07-10 11:46:20 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2013-07-10 11:46:20 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 8 |
+
2013-07-10 11:46:21 - response return (code 02303)
|
| 9 |
+
2013-07-10 11:46:21 - ----------------------------------------------------------
|
| 10 |
+
2013-07-10 11:46:21 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 11 |
+
2013-07-10 11:46:21 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 12 |
+
2013-07-10 11:46:22 - response return (code 02303)
|
| 13 |
+
2013-07-10 11:46:31 - ----------------------------------------------------------
|
| 14 |
+
2013-07-10 11:46:31 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 15 |
+
2013-07-10 11:46:31 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 16 |
+
2013-07-10 11:46:32 - response return (code 02303)
|
| 17 |
+
2013-07-10 11:47:17 - ----------------------------------------------------------
|
| 18 |
+
2013-07-10 11:47:17 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 19 |
+
2013-07-10 11:47:17 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 20 |
+
2013-07-10 11:47:18 - response return (code 02303)
|
| 21 |
+
2013-07-10 11:47:18 - ----------------------------------------------------------
|
| 22 |
+
2013-07-10 11:47:18 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 23 |
+
2013-07-10 11:47:18 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 24 |
+
2013-07-10 11:47:19 - response return (code 02303)
|
| 25 |
+
2013-07-10 12:19:29 - ----------------------------------------------------------
|
| 26 |
+
2013-07-10 12:19:29 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 27 |
+
2013-07-10 12:19:29 - webServiceRequest(getMerchantSettings) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 28 |
+
2013-07-10 12:19:30 - response return (code 00000)
|
| 29 |
+
2013-07-10 12:19:51 - ----------------------------------------------------------
|
| 30 |
+
2013-07-10 12:19:51 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 31 |
+
2013-07-10 12:19:51 - webServiceRequest(getMerchantSettings) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 32 |
+
2013-07-10 12:19:52 - response return (code 00000)
|
| 33 |
+
2013-07-10 12:21:30 - ----------------------------------------------------------
|
| 34 |
+
2013-07-10 12:21:30 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 35 |
+
2013-07-10 12:21:30 - webServiceRequest(getMerchantSettings) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 36 |
+
2013-07-10 12:21:31 - response return (code 00000)
|
| 37 |
+
2013-07-10 12:22:21 - ----------------------------------------------------------
|
| 38 |
+
2013-07-10 12:22:21 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 39 |
+
2013-07-10 12:22:21 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 40 |
+
2013-07-10 12:22:22 - response return (code 02500)
|
| 41 |
+
2013-07-10 13:35:34 - ----------------------------------------------------------
|
| 42 |
+
2013-07-10 13:35:34 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 43 |
+
2013-07-10 13:35:34 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 44 |
+
2013-07-10 13:35:35 - response return (code 02500)
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-01-21.log
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-01-21 16:38:48 - ----------------------------------------------------------
|
| 2 |
+
2014-01-21 16:38:48 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-01-21 16:38:49 - webServiceRequest(getMerchantSettings) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-01-21 16:38:49 - response return (code 00000)
|
| 5 |
+
2014-01-21 16:38:57 - ----------------------------------------------------------
|
| 6 |
+
2014-01-21 16:38:57 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2014-01-21 16:38:57 - webServiceRequest(getMerchantSettings) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 8 |
+
2014-01-21 16:38:58 - response return (code 00000)
|
| 9 |
+
2014-01-21 16:44:36 - ----------------------------------------------------------
|
| 10 |
+
2014-01-21 16:44:36 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 11 |
+
2014-01-21 16:44:36 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 12 |
+
2014-01-21 16:44:38 - response return (code 00000)
|
| 13 |
+
2014-01-21 16:44:38 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 14 |
+
2014-01-21 16:44:38 - response return (code 00000)
|
| 15 |
+
2014-01-21 16:44:39 - webServiceRequest(createWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 16 |
+
2014-01-21 16:44:40 - response return (code 02500)
|
| 17 |
+
2014-01-21 16:50:33 - ----------------------------------------------------------
|
| 18 |
+
2014-01-21 16:50:33 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 19 |
+
2014-01-21 16:50:33 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 20 |
+
2014-01-21 16:50:34 - response return (code 02500)
|
| 21 |
+
2014-01-21 16:54:58 - ----------------------------------------------------------
|
| 22 |
+
2014-01-21 16:54:58 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 23 |
+
2014-01-21 16:54:58 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 24 |
+
2014-01-21 16:54:59 - response return (code 00000)
|
| 25 |
+
2014-01-21 16:54:59 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 26 |
+
2014-01-21 16:55:00 - response return (code 00000)
|
| 27 |
+
2014-01-21 16:56:10 - ----------------------------------------------------------
|
| 28 |
+
2014-01-21 16:56:10 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 29 |
+
2014-01-21 16:56:10 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 30 |
+
2014-01-21 16:56:12 - response return (code 00000)
|
| 31 |
+
2014-01-21 16:56:12 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 32 |
+
2014-01-21 16:56:12 - response return (code 00000)
|
| 33 |
+
2014-01-21 16:56:59 - ----------------------------------------------------------
|
| 34 |
+
2014-01-21 16:56:59 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 35 |
+
2014-01-21 16:56:59 - webServiceRequest(updateWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 36 |
+
2014-01-21 16:57:00 - response return (code 00000)
|
| 37 |
+
2014-01-21 16:57:19 - ----------------------------------------------------------
|
| 38 |
+
2014-01-21 16:57:19 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 39 |
+
2014-01-21 16:57:19 - webServiceRequest(updateWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 40 |
+
2014-01-21 16:57:20 - response return (code 00000)
|
| 41 |
+
2014-01-21 16:57:56 - ----------------------------------------------------------
|
| 42 |
+
2014-01-21 16:57:56 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 43 |
+
2014-01-21 16:57:56 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 44 |
+
2014-01-21 16:57:57 - response return (code 02500)
|
| 45 |
+
2014-01-21 16:57:57 - ----------------------------------------------------------
|
| 46 |
+
2014-01-21 16:57:57 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 47 |
+
2014-01-21 16:57:57 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 48 |
+
2014-01-21 16:57:58 - response return (code 02500)
|
| 49 |
+
2014-01-21 16:58:25 - ----------------------------------------------------------
|
| 50 |
+
2014-01-21 16:58:25 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 51 |
+
2014-01-21 16:58:25 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 52 |
+
2014-01-21 16:58:26 - response return (code 00000)
|
| 53 |
+
2014-01-21 16:58:26 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 54 |
+
2014-01-21 16:58:26 - response return (code 00000)
|
| 55 |
+
2014-01-21 16:59:50 - ----------------------------------------------------------
|
| 56 |
+
2014-01-21 16:59:50 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 57 |
+
2014-01-21 16:59:50 - webServiceRequest(disableWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 58 |
+
2014-01-21 16:59:51 - response return (code 02500)
|
| 59 |
+
2014-01-21 16:59:54 - ----------------------------------------------------------
|
| 60 |
+
2014-01-21 16:59:54 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 61 |
+
2014-01-21 16:59:54 - webServiceRequest(createWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 62 |
+
2014-01-21 16:59:55 - response return (code 00000)
|
| 63 |
+
2014-01-21 17:00:15 - ----------------------------------------------------------
|
| 64 |
+
2014-01-21 17:00:15 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 65 |
+
2014-01-21 17:00:15 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 66 |
+
2014-01-21 17:00:16 - response return (code 02500)
|
| 67 |
+
2014-01-21 17:00:16 - ----------------------------------------------------------
|
| 68 |
+
2014-01-21 17:00:16 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 69 |
+
2014-01-21 17:00:16 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 70 |
+
2014-01-21 17:00:17 - response return (code 02500)
|
| 71 |
+
2014-01-21 17:00:42 - ----------------------------------------------------------
|
| 72 |
+
2014-01-21 17:00:42 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 73 |
+
2014-01-21 17:00:42 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 74 |
+
2014-01-21 17:00:44 - response return (code 00000)
|
| 75 |
+
2014-01-21 17:00:44 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 76 |
+
2014-01-21 17:00:44 - response return (code 00000)
|
| 77 |
+
2014-01-21 17:02:12 - ----------------------------------------------------------
|
| 78 |
+
2014-01-21 17:02:12 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 79 |
+
2014-01-21 17:02:12 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 80 |
+
2014-01-21 17:02:14 - response return (code 00000)
|
| 81 |
+
2014-01-21 17:02:20 - ----------------------------------------------------------
|
| 82 |
+
2014-01-21 17:02:20 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 83 |
+
2014-01-21 17:02:20 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 84 |
+
2014-01-21 17:02:22 - response return (code 02500)
|
| 85 |
+
2014-01-21 17:10:35 - ----------------------------------------------------------
|
| 86 |
+
2014-01-21 17:10:35 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 87 |
+
2014-01-21 17:10:35 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 88 |
+
2014-01-21 17:10:36 - response return (code 00000)
|
| 89 |
+
2014-01-21 17:10:36 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 90 |
+
2014-01-21 17:10:37 - response return (code 00000)
|
| 91 |
+
2014-01-21 17:15:25 - ----------------------------------------------------------
|
| 92 |
+
2014-01-21 17:15:25 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 93 |
+
2014-01-21 17:15:25 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 94 |
+
2014-01-21 17:15:26 - response return (code 00000)
|
| 95 |
+
2014-01-21 17:15:26 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 96 |
+
2014-01-21 17:15:26 - response return (code 00000)
|
| 97 |
+
2014-01-21 17:15:28 - webServiceRequest(createWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 98 |
+
2014-01-21 17:15:30 - response return (code 02500)
|
| 99 |
+
2014-01-21 17:27:39 - ----------------------------------------------------------
|
| 100 |
+
2014-01-21 17:27:39 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 101 |
+
2014-01-21 17:27:39 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 102 |
+
2014-01-21 17:27:40 - response return (code 00000)
|
| 103 |
+
2014-01-21 17:27:44 - ----------------------------------------------------------
|
| 104 |
+
2014-01-21 17:27:44 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 105 |
+
2014-01-21 17:27:44 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 106 |
+
2014-01-21 17:27:45 - Exception : 2101
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-01-28.log
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-01-28 14:12:49 - ----------------------------------------------------------
|
| 2 |
+
2014-01-28 14:12:49 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-01-28 14:12:49 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-01-28 14:12:50 - response return (code 02500)
|
| 5 |
+
2014-01-28 14:13:21 - ----------------------------------------------------------
|
| 6 |
+
2014-01-28 14:13:21 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2014-01-28 14:13:21 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 8 |
+
2014-01-28 14:13:22 - response return (code 00000)
|
| 9 |
+
2014-01-28 14:14:13 - ----------------------------------------------------------
|
| 10 |
+
2014-01-28 14:14:13 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 11 |
+
2014-01-28 14:14:13 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 12 |
+
2014-01-28 14:14:16 - response return (code 21000)
|
| 13 |
+
2014-01-28 14:14:55 - ----------------------------------------------------------
|
| 14 |
+
2014-01-28 14:14:55 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 15 |
+
2014-01-28 14:14:55 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 16 |
+
2014-01-28 14:14:56 - response return (code 00000)
|
| 17 |
+
2014-01-28 14:14:59 - ----------------------------------------------------------
|
| 18 |
+
2014-01-28 14:14:59 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 19 |
+
2014-01-28 14:14:59 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 20 |
+
2014-01-28 14:15:00 - Exception : 2101
|
| 21 |
+
2014-01-28 16:51:13 - ----------------------------------------------------------
|
| 22 |
+
2014-01-28 16:51:13 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 23 |
+
2014-01-28 16:51:13 - webServiceRequest(getMerchantSettings) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 24 |
+
2014-01-28 16:51:14 - response return (code 00000)
|
| 25 |
+
2014-01-28 17:10:20 - ----------------------------------------------------------
|
| 26 |
+
2014-01-28 17:10:20 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 27 |
+
2014-01-28 17:10:20 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 28 |
+
2014-01-28 17:10:21 - response return (code 00000)
|
| 29 |
+
2014-01-28 17:10:21 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 30 |
+
2014-01-28 17:10:22 - response return (code 00000)
|
| 31 |
+
2014-01-28 17:10:22 - webServiceRequest(createWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 32 |
+
2014-01-28 17:10:23 - response return (code 02500)
|
| 33 |
+
2014-01-28 17:13:11 - ----------------------------------------------------------
|
| 34 |
+
2014-01-28 17:13:11 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 35 |
+
2014-01-28 17:13:11 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 36 |
+
2014-01-28 17:13:12 - response return (code 02500)
|
| 37 |
+
2014-01-28 17:15:56 - ----------------------------------------------------------
|
| 38 |
+
2014-01-28 17:15:56 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 39 |
+
2014-01-28 17:15:56 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 40 |
+
2014-01-28 17:15:57 - response return (code 00000)
|
| 41 |
+
2014-01-28 17:15:57 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 42 |
+
2014-01-28 17:15:58 - response return (code 00000)
|
| 43 |
+
2014-01-28 17:16:20 - ----------------------------------------------------------
|
| 44 |
+
2014-01-28 17:16:20 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 45 |
+
2014-01-28 17:16:20 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 46 |
+
2014-01-28 17:16:21 - response return (code 02500)
|
| 47 |
+
2014-01-28 17:18:38 - ----------------------------------------------------------
|
| 48 |
+
2014-01-28 17:18:38 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 49 |
+
2014-01-28 17:18:38 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 50 |
+
2014-01-28 17:18:40 - response return (code 00000)
|
| 51 |
+
2014-01-28 17:18:40 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 52 |
+
2014-01-28 17:18:41 - response return (code 00000)
|
| 53 |
+
2014-01-28 17:19:35 - ----------------------------------------------------------
|
| 54 |
+
2014-01-28 17:19:35 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 55 |
+
2014-01-28 17:19:35 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 56 |
+
2014-01-28 17:19:36 - response return (code 00000)
|
| 57 |
+
2014-01-28 17:19:43 - ----------------------------------------------------------
|
| 58 |
+
2014-01-28 17:19:43 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 59 |
+
2014-01-28 17:19:43 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 60 |
+
2014-01-28 17:19:44 - response return (code 00000)
|
| 61 |
+
2014-01-28 17:21:22 - ----------------------------------------------------------
|
| 62 |
+
2014-01-28 17:21:22 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 63 |
+
2014-01-28 17:21:22 - webServiceRequest(updateWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 64 |
+
2014-01-28 17:21:23 - response return (code 00000)
|
| 65 |
+
2014-01-28 17:21:54 - ----------------------------------------------------------
|
| 66 |
+
2014-01-28 17:21:54 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 67 |
+
2014-01-28 17:21:54 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 68 |
+
2014-01-28 17:21:55 - response return (code 02500)
|
| 69 |
+
2014-01-28 17:21:56 - ----------------------------------------------------------
|
| 70 |
+
2014-01-28 17:21:56 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 71 |
+
2014-01-28 17:21:56 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 72 |
+
2014-01-28 17:21:57 - response return (code 02500)
|
| 73 |
+
2014-01-28 17:22:13 - ----------------------------------------------------------
|
| 74 |
+
2014-01-28 17:22:13 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 75 |
+
2014-01-28 17:22:13 - webServiceRequest(disableWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 76 |
+
2014-01-28 17:22:14 - response return (code 02500)
|
| 77 |
+
2014-01-28 17:22:22 - ----------------------------------------------------------
|
| 78 |
+
2014-01-28 17:22:22 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 79 |
+
2014-01-28 17:22:22 - webServiceRequest(createWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 80 |
+
2014-01-28 17:22:23 - response return (code 00000)
|
| 81 |
+
2014-01-28 17:22:44 - ----------------------------------------------------------
|
| 82 |
+
2014-01-28 17:22:44 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 83 |
+
2014-01-28 17:22:44 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 84 |
+
2014-01-28 17:22:45 - response return (code 02500)
|
| 85 |
+
2014-01-28 17:22:46 - ----------------------------------------------------------
|
| 86 |
+
2014-01-28 17:22:46 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 87 |
+
2014-01-28 17:22:46 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 88 |
+
2014-01-28 17:22:47 - response return (code 02500)
|
| 89 |
+
2014-01-28 17:22:51 - ----------------------------------------------------------
|
| 90 |
+
2014-01-28 17:22:51 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 91 |
+
2014-01-28 17:22:51 - webServiceRequest(updateWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 92 |
+
2014-01-28 17:22:52 - response return (code 00000)
|
| 93 |
+
2014-01-28 17:23:13 - ----------------------------------------------------------
|
| 94 |
+
2014-01-28 17:23:13 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 95 |
+
2014-01-28 17:23:13 - webServiceRequest(updateWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 96 |
+
2014-01-28 17:23:14 - response return (code 00000)
|
| 97 |
+
2014-01-28 17:23:32 - ----------------------------------------------------------
|
| 98 |
+
2014-01-28 17:23:32 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 99 |
+
2014-01-28 17:23:32 - webServiceRequest(updateWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 100 |
+
2014-01-28 17:23:33 - response return (code 00000)
|
| 101 |
+
2014-01-28 17:24:07 - ----------------------------------------------------------
|
| 102 |
+
2014-01-28 17:24:07 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 103 |
+
2014-01-28 17:24:07 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 104 |
+
2014-01-28 17:24:08 - response return (code 02500)
|
| 105 |
+
2014-01-28 17:24:09 - ----------------------------------------------------------
|
| 106 |
+
2014-01-28 17:24:09 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 107 |
+
2014-01-28 17:24:09 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 108 |
+
2014-01-28 17:24:09 - response return (code 02500)
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-03.log
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-02-03 8:55:42 - ----------------------------------------------------------
|
| 2 |
+
2014-02-03 8:55:42 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-02-03 8:55:43 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-02-03 8:55:44 - response return (code 02500)
|
| 5 |
+
2014-02-03 8:57:22 - ----------------------------------------------------------
|
| 6 |
+
2014-02-03 8:57:22 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2014-02-03 8:57:22 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 8 |
+
2014-02-03 8:57:23 - response return (code 02500)
|
| 9 |
+
2014-02-03 8:58:59 - ----------------------------------------------------------
|
| 10 |
+
2014-02-03 8:58:59 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 11 |
+
2014-02-03 8:58:59 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 12 |
+
2014-02-03 8:59:00 - response return (code 00000)
|
| 13 |
+
2014-02-03 9:02:27 - ----------------------------------------------------------
|
| 14 |
+
2014-02-03 9:02:27 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 15 |
+
2014-02-03 9:02:27 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 16 |
+
2014-02-03 9:02:27 - response return (code 00000)
|
| 17 |
+
2014-02-03 9:11:47 - ----------------------------------------------------------
|
| 18 |
+
2014-02-03 9:11:47 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 19 |
+
2014-02-03 9:11:47 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 20 |
+
2014-02-03 9:11:48 - response return (code 00000)
|
| 21 |
+
2014-02-03 9:13:34 - ----------------------------------------------------------
|
| 22 |
+
2014-02-03 9:13:34 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 23 |
+
2014-02-03 9:13:34 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 24 |
+
2014-02-03 9:13:34 - response return (code 00000)
|
| 25 |
+
2014-02-03 9:23:47 - ----------------------------------------------------------
|
| 26 |
+
2014-02-03 9:23:47 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 27 |
+
2014-02-03 9:23:47 - webServiceRequest(doWebPayment) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 28 |
+
2014-02-03 9:23:48 - response return (code 00000)
|
| 29 |
+
2014-02-03 9:24:04 - ----------------------------------------------------------
|
| 30 |
+
2014-02-03 9:24:04 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 31 |
+
2014-02-03 9:24:04 - webServiceRequest(getWebPaymentDetails) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 32 |
+
2014-02-03 9:24:06 - response return (code 02500)
|
| 33 |
+
2014-02-03 9:42:10 - ----------------------------------------------------------
|
| 34 |
+
2014-02-03 9:42:10 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 35 |
+
2014-02-03 9:42:11 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 36 |
+
2014-02-03 9:42:12 - response return (code 00000)
|
| 37 |
+
2014-02-03 9:42:12 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 38 |
+
2014-02-03 9:42:13 - response return (code 00000)
|
| 39 |
+
2014-02-03 9:56:27 - ----------------------------------------------------------
|
| 40 |
+
2014-02-03 9:56:27 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 41 |
+
2014-02-03 9:56:27 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 42 |
+
2014-02-03 9:56:29 - response return (code 00000)
|
| 43 |
+
2014-02-03 9:56:29 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 44 |
+
2014-02-03 9:56:31 - response return (code 00000)
|
| 45 |
+
2014-02-03 10:35:17 - ----------------------------------------------------------
|
| 46 |
+
2014-02-03 10:35:17 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 47 |
+
2014-02-03 10:35:17 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 48 |
+
2014-02-03 10:35:20 - response return (code 00000)
|
| 49 |
+
2014-02-03 10:35:20 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 50 |
+
2014-02-03 10:35:21 - response return (code 00000)
|
| 51 |
+
2014-02-03 10:44:18 - ----------------------------------------------------------
|
| 52 |
+
2014-02-03 10:44:18 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 53 |
+
2014-02-03 10:44:18 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 54 |
+
2014-02-03 10:44:20 - response return (code 00000)
|
| 55 |
+
2014-02-03 10:44:20 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 56 |
+
2014-02-03 10:44:21 - response return (code 00000)
|
| 57 |
+
2014-02-03 10:50:31 - ----------------------------------------------------------
|
| 58 |
+
2014-02-03 10:50:31 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 59 |
+
2014-02-03 10:50:31 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 60 |
+
2014-02-03 10:50:32 - response return (code 00000)
|
| 61 |
+
2014-02-03 10:50:32 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 62 |
+
2014-02-03 10:50:34 - response return (code 00000)
|
| 63 |
+
2014-02-03 10:53:09 - ----------------------------------------------------------
|
| 64 |
+
2014-02-03 10:53:09 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 65 |
+
2014-02-03 10:53:09 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 66 |
+
2014-02-03 10:53:10 - response return (code 00000)
|
| 67 |
+
2014-02-03 10:53:10 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 68 |
+
2014-02-03 10:53:11 - response return (code 00000)
|
| 69 |
+
2014-02-03 10:53:57 - ----------------------------------------------------------
|
| 70 |
+
2014-02-03 10:53:57 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 71 |
+
2014-02-03 10:53:57 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 72 |
+
2014-02-03 10:53:59 - response return (code 00000)
|
| 73 |
+
2014-02-03 10:53:59 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 74 |
+
2014-02-03 10:54:00 - response return (code 00000)
|
| 75 |
+
2014-02-03 11:00:34 - ----------------------------------------------------------
|
| 76 |
+
2014-02-03 11:00:34 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 77 |
+
2014-02-03 11:00:34 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 78 |
+
2014-02-03 11:00:35 - response return (code 00000)
|
| 79 |
+
2014-02-03 11:00:35 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 80 |
+
2014-02-03 11:00:37 - response return (code 00000)
|
| 81 |
+
2014-02-03 11:07:05 - ----------------------------------------------------------
|
| 82 |
+
2014-02-03 11:07:05 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 83 |
+
2014-02-03 11:07:05 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 84 |
+
2014-02-03 11:07:06 - response return (code 00000)
|
| 85 |
+
2014-02-03 11:07:06 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 86 |
+
2014-02-03 11:07:07 - response return (code 00000)
|
| 87 |
+
2014-02-03 11:09:14 - ----------------------------------------------------------
|
| 88 |
+
2014-02-03 11:09:14 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 89 |
+
2014-02-03 11:09:14 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 90 |
+
2014-02-03 11:09:15 - response return (code 00000)
|
| 91 |
+
2014-02-03 11:09:15 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 92 |
+
2014-02-03 11:09:16 - response return (code 00000)
|
| 93 |
+
2014-02-03 11:11:11 - ----------------------------------------------------------
|
| 94 |
+
2014-02-03 11:11:11 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 95 |
+
2014-02-03 11:11:11 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 96 |
+
2014-02-03 11:11:13 - response return (code 00000)
|
| 97 |
+
2014-02-03 11:11:13 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 98 |
+
2014-02-03 11:11:15 - response return (code 00000)
|
| 99 |
+
2014-02-03 11:13:29 - ----------------------------------------------------------
|
| 100 |
+
2014-02-03 11:13:29 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 101 |
+
2014-02-03 11:13:29 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 102 |
+
2014-02-03 11:13:30 - response return (code 02500)
|
| 103 |
+
2014-02-03 11:13:46 - ----------------------------------------------------------
|
| 104 |
+
2014-02-03 11:13:46 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 105 |
+
2014-02-03 11:13:46 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 106 |
+
2014-02-03 11:13:47 - response return (code 00000)
|
| 107 |
+
2014-02-03 11:13:47 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 108 |
+
2014-02-03 11:13:48 - response return (code 00000)
|
| 109 |
+
2014-02-03 11:16:05 - ----------------------------------------------------------
|
| 110 |
+
2014-02-03 11:16:05 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 111 |
+
2014-02-03 11:16:05 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 112 |
+
2014-02-03 11:16:05 - response return (code 00000)
|
| 113 |
+
2014-02-03 11:16:05 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 114 |
+
2014-02-03 11:16:06 - response return (code 00000)
|
| 115 |
+
2014-02-03 13:23:45 - ----------------------------------------------------------
|
| 116 |
+
2014-02-03 13:23:45 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 117 |
+
2014-02-03 13:23:45 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 118 |
+
2014-02-03 13:23:46 - response return (code 02500)
|
| 119 |
+
2014-02-03 13:23:59 - ----------------------------------------------------------
|
| 120 |
+
2014-02-03 13:23:59 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 121 |
+
2014-02-03 13:23:59 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 122 |
+
2014-02-03 13:24:00 - response return (code 00000)
|
| 123 |
+
2014-02-03 13:24:00 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 124 |
+
2014-02-03 13:24:01 - response return (code 00000)
|
| 125 |
+
2014-02-03 13:25:20 - ----------------------------------------------------------
|
| 126 |
+
2014-02-03 13:25:20 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 127 |
+
2014-02-03 13:25:20 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 128 |
+
2014-02-03 13:25:21 - response return (code 00000)
|
| 129 |
+
2014-02-03 13:25:21 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 130 |
+
2014-02-03 13:25:23 - response return (code 00000)
|
| 131 |
+
2014-02-03 13:27:33 - ----------------------------------------------------------
|
| 132 |
+
2014-02-03 13:27:33 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 133 |
+
2014-02-03 13:27:33 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 134 |
+
2014-02-03 13:27:33 - response return (code 02500)
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-10.log
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-02-10 14:31:10 - ----------------------------------------------------------
|
| 2 |
+
2014-02-10 14:31:10 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-02-10 14:31:10 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-02-10 14:31:12 - response return (code 00000)
|
| 5 |
+
2014-02-10 14:31:12 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 6 |
+
2014-02-10 14:31:13 - response return (code 00000)
|
| 7 |
+
2014-02-10 14:47:27 - ----------------------------------------------------------
|
| 8 |
+
2014-02-10 14:47:27 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 9 |
+
2014-02-10 14:47:28 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 10 |
+
2014-02-10 14:47:29 - response return (code 01913)
|
| 11 |
+
2014-02-10 15:45:15 - ----------------------------------------------------------
|
| 12 |
+
2014-02-10 15:45:15 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 13 |
+
2014-02-10 15:45:15 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 14 |
+
2014-02-10 15:45:17 - response return (code 02500)
|
| 15 |
+
2014-02-10 16:01:49 - ----------------------------------------------------------
|
| 16 |
+
2014-02-10 16:01:49 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 17 |
+
2014-02-10 16:01:49 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 18 |
+
2014-02-10 16:01:50 - response return (code 02500)
|
| 19 |
+
2014-02-10 16:30:28 - ----------------------------------------------------------
|
| 20 |
+
2014-02-10 16:30:28 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 21 |
+
2014-02-10 16:30:28 - webServiceRequest(createWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 22 |
+
2014-02-10 16:30:31 - response return (code 00000)
|
| 23 |
+
2014-02-10 16:31:03 - ----------------------------------------------------------
|
| 24 |
+
2014-02-10 16:31:03 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 25 |
+
2014-02-10 16:31:03 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 26 |
+
2014-02-10 16:31:04 - response return (code 02500)
|
| 27 |
+
2014-02-10 16:31:20 - ----------------------------------------------------------
|
| 28 |
+
2014-02-10 16:31:20 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 29 |
+
2014-02-10 16:31:20 - webServiceRequest(getWebWallet) - Location : https://homologation.payline.com/V4/services/WebPaymentAPI
|
| 30 |
+
2014-02-10 16:31:21 - response return (code 02500)
|
| 31 |
+
2014-02-10 16:32:12 - ----------------------------------------------------------
|
| 32 |
+
2014-02-10 16:32:12 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 33 |
+
2014-02-10 16:32:12 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 34 |
+
2014-02-10 16:32:15 - response return (code 00000)
|
| 35 |
+
2014-02-10 16:32:15 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 36 |
+
2014-02-10 16:32:17 - response return (code 00000)
|
| 37 |
+
2014-02-10 16:33:11 - ----------------------------------------------------------
|
| 38 |
+
2014-02-10 16:33:11 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 39 |
+
2014-02-10 16:33:11 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 40 |
+
2014-02-10 16:33:12 - response return (code 01913)
|
| 41 |
+
2014-02-10 16:33:53 - ----------------------------------------------------------
|
| 42 |
+
2014-02-10 16:33:53 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 43 |
+
2014-02-10 16:33:53 - webServiceRequest(doAuthorization) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 44 |
+
2014-02-10 16:33:54 - response return (code 00000)
|
| 45 |
+
2014-02-10 16:33:54 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 46 |
+
2014-02-10 16:33:55 - response return (code 00000)
|
| 47 |
+
2014-02-10 16:33:56 - webServiceRequest(createWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 48 |
+
2014-02-10 16:33:59 - response return (code 02500)
|
| 49 |
+
2014-02-10 16:34:11 - ----------------------------------------------------------
|
| 50 |
+
2014-02-10 16:34:11 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 51 |
+
2014-02-10 16:34:11 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 52 |
+
2014-02-10 16:34:13 - response return (code 02500)
|
| 53 |
+
2014-02-10 16:46:55 - ----------------------------------------------------------
|
| 54 |
+
2014-02-10 16:46:55 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 55 |
+
2014-02-10 16:46:55 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 56 |
+
2014-02-10 16:46:57 - response return (code 02500)
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-11.log
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-02-11 16:30:12 - ----------------------------------------------------------
|
| 2 |
+
2014-02-11 16:30:12 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-02-11 16:30:12 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-02-11 16:30:13 - response return (code 02500)
|
| 5 |
+
2014-02-11 16:30:53 - ----------------------------------------------------------
|
| 6 |
+
2014-02-11 16:30:53 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2014-02-11 16:30:53 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 8 |
+
2014-02-11 16:30:54 - response return (code 02500)
|
| 9 |
+
2014-02-11 16:31:30 - ----------------------------------------------------------
|
| 10 |
+
2014-02-11 16:31:30 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 11 |
+
2014-02-11 16:31:30 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 12 |
+
2014-02-11 16:31:33 - response return (code 00000)
|
| 13 |
+
2014-02-11 16:31:33 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 14 |
+
2014-02-11 16:31:35 - response return (code 00000)
|
| 15 |
+
2014-02-11 16:38:50 - ----------------------------------------------------------
|
| 16 |
+
2014-02-11 16:38:50 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 17 |
+
2014-02-11 16:38:50 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 18 |
+
2014-02-11 16:38:53 - response return (code 02500)
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-17.log
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-02-17 8:43:18 - ----------------------------------------------------------
|
| 2 |
+
2014-02-17 8:43:18 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-02-17 8:43:18 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-02-17 8:43:19 - response return (code 02500)
|
| 5 |
+
2014-02-17 9:07:02 - ----------------------------------------------------------
|
| 6 |
+
2014-02-17 9:07:02 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2014-02-17 9:07:02 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 8 |
+
2014-02-17 9:07:04 - response return (code 02500)
|
| 9 |
+
2014-02-17 9:47:50 - ----------------------------------------------------------
|
| 10 |
+
2014-02-17 9:47:50 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 11 |
+
2014-02-17 9:47:50 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 12 |
+
2014-02-17 9:47:51 - response return (code 02500)
|
| 13 |
+
2014-02-17 10:05:10 - ----------------------------------------------------------
|
| 14 |
+
2014-02-17 10:05:10 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 15 |
+
2014-02-17 10:05:10 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 16 |
+
2014-02-17 10:05:11 - response return (code 00000)
|
| 17 |
+
2014-02-17 10:05:11 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 18 |
+
2014-02-17 10:05:12 - response return (code 00000)
|
| 19 |
+
2014-02-17 10:07:36 - ----------------------------------------------------------
|
| 20 |
+
2014-02-17 10:07:36 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 21 |
+
2014-02-17 10:07:36 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 22 |
+
2014-02-17 10:07:38 - response return (code 00000)
|
| 23 |
+
2014-02-17 10:07:38 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 24 |
+
2014-02-17 10:07:41 - response return (code 00000)
|
| 25 |
+
2014-02-17 12:58:00 - ----------------------------------------------------------
|
| 26 |
+
2014-02-17 12:58:00 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 27 |
+
2014-02-17 12:58:00 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 28 |
+
2014-02-17 12:58:01 - response return (code 02500)
|
| 29 |
+
2014-02-17 14:39:30 - ----------------------------------------------------------
|
| 30 |
+
2014-02-17 14:39:30 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 31 |
+
2014-02-17 14:39:30 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 32 |
+
2014-02-17 14:39:31 - response return (code 02500)
|
| 33 |
+
2014-02-17 14:40:02 - ----------------------------------------------------------
|
| 34 |
+
2014-02-17 14:40:02 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 35 |
+
2014-02-17 14:40:02 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 36 |
+
2014-02-17 14:40:02 - response return (code 02500)
|
| 37 |
+
2014-02-17 15:50:36 - ----------------------------------------------------------
|
| 38 |
+
2014-02-17 15:50:36 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 39 |
+
2014-02-17 15:50:36 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 40 |
+
2014-02-17 15:50:37 - response return (code 02500)
|
app/code/community/Monext/Payline/PaylinePHPKit/logs/2014-02-25.log
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
2014-02-25 14:27:17 - ----------------------------------------------------------
|
| 2 |
+
2014-02-25 14:27:17 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 3 |
+
2014-02-25 14:27:17 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 4 |
+
2014-02-25 14:27:18 - response return (code 02500)
|
| 5 |
+
2014-02-25 14:27:41 - ----------------------------------------------------------
|
| 6 |
+
2014-02-25 14:27:41 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 7 |
+
2014-02-25 14:27:41 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 8 |
+
2014-02-25 14:27:42 - response return (code 00000)
|
| 9 |
+
2014-02-25 14:27:42 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 10 |
+
2014-02-25 14:27:43 - response return (code 00000)
|
| 11 |
+
2014-02-25 14:29:04 - ----------------------------------------------------------
|
| 12 |
+
2014-02-25 14:29:04 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 13 |
+
2014-02-25 14:29:04 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 14 |
+
2014-02-25 14:29:05 - response return (code 00000)
|
| 15 |
+
2014-02-25 14:29:05 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 16 |
+
2014-02-25 14:29:06 - response return (code 00000)
|
| 17 |
+
2014-02-25 15:37:26 - ----------------------------------------------------------
|
| 18 |
+
2014-02-25 15:37:26 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 19 |
+
2014-02-25 15:37:26 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 20 |
+
2014-02-25 15:37:27 - response return (code 02500)
|
| 21 |
+
2014-02-25 15:41:34 - ----------------------------------------------------------
|
| 22 |
+
2014-02-25 15:41:34 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 23 |
+
2014-02-25 15:41:34 - webServiceRequest(getWallet) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 24 |
+
2014-02-25 15:41:34 - response return (code 02500)
|
| 25 |
+
2014-02-25 15:44:49 - ----------------------------------------------------------
|
| 26 |
+
2014-02-25 15:44:49 - paylineSDK::__construct(36472284953602, Ka****************ot, , , , , 0)
|
| 27 |
+
2014-02-25 15:44:49 - webServiceRequest(doImmediateWalletPayment) - Location : https://homologation.payline.com/V4/services/DirectPaymentAPI
|
| 28 |
+
2014-02-25 15:44:50 - response return (code 00000)
|
| 29 |
+
2014-02-25 15:44:50 - webServiceRequest(getTransactionDetails) - Location : https://homologation.payline.com/V4/services/ExtendedAPI
|
| 30 |
+
2014-02-25 15:44:51 - response return (code 00000)
|
app/code/community/Monext/Payline/controllers/CheckoutonepageController.php
CHANGED
|
@@ -15,18 +15,18 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 15 |
}
|
| 16 |
//INIT
|
| 17 |
$customer=Mage::getSingleton('customer/session')->getCustomer();
|
| 18 |
-
|
| 19 |
//Customer has wallet?
|
| 20 |
if (!(Mage::getSingleton('customer/session')->isLoggedIn())){
|
| 21 |
$this->_redirect('customer/account/login');
|
| 22 |
return;
|
| 23 |
}
|
| 24 |
-
|
| 25 |
if (!($walletId=$customer->getWalletId())){
|
| 26 |
$this->_redirect('checkout/onepage');
|
| 27 |
return;
|
| 28 |
}
|
| 29 |
-
|
| 30 |
if (!Mage::helper('checkout')->canOnepageCheckout()) {
|
| 31 |
Mage::getSingleton('checkout/session')->addError($this->__('The onepage checkout is disabled.'));
|
| 32 |
$this->_redirect('checkout/cart');
|
|
@@ -45,7 +45,7 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 45 |
$this->_redirect('checkout/cart');
|
| 46 |
return;
|
| 47 |
}
|
| 48 |
-
|
| 49 |
//Check if the wallet payment is available
|
| 50 |
/* @var $walletPaymentMethod Monext_Payline_Model_Wallet */
|
| 51 |
$walletPaymentMethod=Mage::getModel('payline/wallet');
|
|
@@ -55,7 +55,7 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 55 |
$error.='<a href="'.Mage::getUrl('payline/wallet/manage').'">'.
|
| 56 |
$this->__('Update your wallet information').'</a>'.
|
| 57 |
$this->__(' or process your order below.');
|
| 58 |
-
Mage::getSingleton('checkout/session')->addError($error);
|
| 59 |
$this->_redirect('checkout/cart');
|
| 60 |
return;
|
| 61 |
}elseif(!$walletPaymentMethod->isAvailable()){
|
|
@@ -64,11 +64,11 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 64 |
$this->_redirect('checkout/cart');
|
| 65 |
return;
|
| 66 |
}
|
| 67 |
-
|
| 68 |
Mage::getSingleton('checkout/session')->setCartWasUpdated(false);
|
| 69 |
Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*', array('_secure'=>true)));
|
| 70 |
//Init customer quote, isMultiShipping false
|
| 71 |
-
$onepage->initCheckout();
|
| 72 |
|
| 73 |
//Checkout enabled?
|
| 74 |
if (!Mage::helper('checkout')->canOnepageCheckout()) {
|
|
@@ -81,12 +81,12 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 81 |
$onepage->saveCheckoutMethod(Mage_Checkout_Model_Type_Onepage::METHOD_CUSTOMER);
|
| 82 |
}
|
| 83 |
|
| 84 |
-
|
| 85 |
//Get rid of a few problems if order not completed
|
| 86 |
//$onepage->getQuote()->re//moveAllAddresses();
|
| 87 |
$shippingAddressId = $this->getRequest()->getPost('shipping_address_id', false);
|
| 88 |
$billingAddressId = $this->getRequest()->getPost('billing_address_id', false);
|
| 89 |
-
/* PATCH for 1clic btn on checkout/cart */
|
| 90 |
if (empty($shippingAddressId)){
|
| 91 |
if($customer->getPrimaryShippingAddress()){
|
| 92 |
$shippingAddressId = $customer->getPrimaryShippingAddress()->getId();
|
|
@@ -105,7 +105,7 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 105 |
return;
|
| 106 |
}
|
| 107 |
}
|
| 108 |
-
/* PATCH end */
|
| 109 |
$billingAddress=Mage::getModel('customer/address')->load($billingAddressId)->getData();
|
| 110 |
$shippingAddress=Mage::getModel('customer/address')->load($shippingAddressId)->getData();
|
| 111 |
$billingAddressForCheckout=array(
|
|
@@ -114,9 +114,9 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 114 |
$shippingAddressForCheckout=array(
|
| 115 |
'address_id' => $shippingAddress['entity_id'],
|
| 116 |
);
|
| 117 |
-
|
| 118 |
$onepage->saveBilling($billingAddressForCheckout, $billingAddressId);
|
| 119 |
-
|
| 120 |
$onepage->saveShipping($shippingAddressForCheckout, $shippingAddressId);
|
| 121 |
|
| 122 |
// Get available shipping rates; if one is available by default then use it, otherwise ask customer
|
|
@@ -124,24 +124,31 @@ class Monext_Payline_CheckoutonepageController extends Mage_Checkout_OnepageCont
|
|
| 124 |
//Needed to get shipping methods
|
| 125 |
$onepage->getQuote()->getShippingAddress()->collectShippingRates()->save();
|
| 126 |
$array=$onepage->saveShippingMethod($methodCode);
|
| 127 |
-
|
| 128 |
Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method', array('request'=>$this->getRequest(), 'quote'=>$quote));
|
| 129 |
}
|
| 130 |
$shippingMethod=$onepage->getQuote()->getShippingAddress()->getShippingMethod();
|
| 131 |
-
|
| 132 |
$data=array('method'=>'PaylineWALLET');
|
| 133 |
$array=$onepage->savePayment($data);
|
| 134 |
$this->loadLayout();
|
| 135 |
$this->_initLayoutMessages('customer/session');
|
| 136 |
$this->_getChargeProgress();
|
| 137 |
-
|
| 138 |
$gotoSection = 'review';
|
| 139 |
-
//If the shipping method is not configured, or the shipping address doesn't fit,
|
| 140 |
//the shipping method template is different : when the form is validated, the payment method will be validated as well
|
| 141 |
if (!isset($shippingMethod) || empty($shippingMethod)){
|
| 142 |
$this->getLayout()->getBlock('checkout.onepage.shipping_method')->setTemplate('payline/checkout/onepage/shipping-method.phtml');
|
| 143 |
$gotoSection = 'shipping_method';
|
| 144 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
Mage::register('payline-goto-section', $gotoSection);
|
| 146 |
$this->getLayout()->getBlock('head')->setTitle($this->__('Checkout'));
|
| 147 |
$this->renderLayout();
|
| 15 |
}
|
| 16 |
//INIT
|
| 17 |
$customer=Mage::getSingleton('customer/session')->getCustomer();
|
| 18 |
+
|
| 19 |
//Customer has wallet?
|
| 20 |
if (!(Mage::getSingleton('customer/session')->isLoggedIn())){
|
| 21 |
$this->_redirect('customer/account/login');
|
| 22 |
return;
|
| 23 |
}
|
| 24 |
+
|
| 25 |
if (!($walletId=$customer->getWalletId())){
|
| 26 |
$this->_redirect('checkout/onepage');
|
| 27 |
return;
|
| 28 |
}
|
| 29 |
+
|
| 30 |
if (!Mage::helper('checkout')->canOnepageCheckout()) {
|
| 31 |
Mage::getSingleton('checkout/session')->addError($this->__('The onepage checkout is disabled.'));
|
| 32 |
$this->_redirect('checkout/cart');
|
| 45 |
$this->_redirect('checkout/cart');
|
| 46 |
return;
|
| 47 |
}
|
| 48 |
+
|
| 49 |
//Check if the wallet payment is available
|
| 50 |
/* @var $walletPaymentMethod Monext_Payline_Model_Wallet */
|
| 51 |
$walletPaymentMethod=Mage::getModel('payline/wallet');
|
| 55 |
$error.='<a href="'.Mage::getUrl('payline/wallet/manage').'">'.
|
| 56 |
$this->__('Update your wallet information').'</a>'.
|
| 57 |
$this->__(' or process your order below.');
|
| 58 |
+
Mage::getSingleton('checkout/session')->addError($error);
|
| 59 |
$this->_redirect('checkout/cart');
|
| 60 |
return;
|
| 61 |
}elseif(!$walletPaymentMethod->isAvailable()){
|
| 64 |
$this->_redirect('checkout/cart');
|
| 65 |
return;
|
| 66 |
}
|
| 67 |
+
|
| 68 |
Mage::getSingleton('checkout/session')->setCartWasUpdated(false);
|
| 69 |
Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*', array('_secure'=>true)));
|
| 70 |
//Init customer quote, isMultiShipping false
|
| 71 |
+
$onepage->initCheckout();
|
| 72 |
|
| 73 |
//Checkout enabled?
|
| 74 |
if (!Mage::helper('checkout')->canOnepageCheckout()) {
|
| 81 |
$onepage->saveCheckoutMethod(Mage_Checkout_Model_Type_Onepage::METHOD_CUSTOMER);
|
| 82 |
}
|
| 83 |
|
| 84 |
+
|
| 85 |
//Get rid of a few problems if order not completed
|
| 86 |
//$onepage->getQuote()->re//moveAllAddresses();
|
| 87 |
$shippingAddressId = $this->getRequest()->getPost('shipping_address_id', false);
|
| 88 |
$billingAddressId = $this->getRequest()->getPost('billing_address_id', false);
|
| 89 |
+
/* PATCH for 1clic btn on checkout/cart */
|
| 90 |
if (empty($shippingAddressId)){
|
| 91 |
if($customer->getPrimaryShippingAddress()){
|
| 92 |
$shippingAddressId = $customer->getPrimaryShippingAddress()->getId();
|
| 105 |
return;
|
| 106 |
}
|
| 107 |
}
|
| 108 |
+
/* PATCH end */
|
| 109 |
$billingAddress=Mage::getModel('customer/address')->load($billingAddressId)->getData();
|
| 110 |
$shippingAddress=Mage::getModel('customer/address')->load($shippingAddressId)->getData();
|
| 111 |
$billingAddressForCheckout=array(
|
| 114 |
$shippingAddressForCheckout=array(
|
| 115 |
'address_id' => $shippingAddress['entity_id'],
|
| 116 |
);
|
| 117 |
+
|
| 118 |
$onepage->saveBilling($billingAddressForCheckout, $billingAddressId);
|
| 119 |
+
|
| 120 |
$onepage->saveShipping($shippingAddressForCheckout, $shippingAddressId);
|
| 121 |
|
| 122 |
// Get available shipping rates; if one is available by default then use it, otherwise ask customer
|
| 124 |
//Needed to get shipping methods
|
| 125 |
$onepage->getQuote()->getShippingAddress()->collectShippingRates()->save();
|
| 126 |
$array=$onepage->saveShippingMethod($methodCode);
|
| 127 |
+
|
| 128 |
Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method', array('request'=>$this->getRequest(), 'quote'=>$quote));
|
| 129 |
}
|
| 130 |
$shippingMethod=$onepage->getQuote()->getShippingAddress()->getShippingMethod();
|
| 131 |
+
|
| 132 |
$data=array('method'=>'PaylineWALLET');
|
| 133 |
$array=$onepage->savePayment($data);
|
| 134 |
$this->loadLayout();
|
| 135 |
$this->_initLayoutMessages('customer/session');
|
| 136 |
$this->_getChargeProgress();
|
| 137 |
+
|
| 138 |
$gotoSection = 'review';
|
| 139 |
+
//If the shipping method is not configured, or the shipping address doesn't fit,
|
| 140 |
//the shipping method template is different : when the form is validated, the payment method will be validated as well
|
| 141 |
if (!isset($shippingMethod) || empty($shippingMethod)){
|
| 142 |
$this->getLayout()->getBlock('checkout.onepage.shipping_method')->setTemplate('payline/checkout/onepage/shipping-method.phtml');
|
| 143 |
$gotoSection = 'shipping_method';
|
| 144 |
}
|
| 145 |
+
|
| 146 |
+
if (version_compare(Mage::getVersion(), '1.8', 'ge')) {
|
| 147 |
+
$this->getLayout()->getBlock('checkout.onepage.shipping_method')->setTemplate('payline/checkout/onepage/shipping-method.phtml');
|
| 148 |
+
$this->getLayout()->getBlock('checkout.payment.methods')->setTemplate('payline/checkout/onepage/payment/methods.phtml');
|
| 149 |
+
Mage::register('payline-magento-version', 1.8);
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
Mage::register('payline-goto-section', $gotoSection);
|
| 153 |
$this->getLayout()->getBlock('head')->setTitle($this->__('Checkout'));
|
| 154 |
$this->renderLayout();
|
app/code/community/Monext/Payline/controllers/IndexController.php
CHANGED
|
@@ -1,1168 +1,1168 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
/**
|
| 4 |
-
* This controller manage all payline payment
|
| 5 |
-
* cptAction, directAction, nxAction & walletAction are called just after the checkout validation
|
| 6 |
-
* the return/notify/cancel are the urls called by Payline
|
| 7 |
-
* An exception for notifyAction : it's not directly called by Payline, since it couldn't work in a local environment; it's then called by the returnAction.
|
| 8 |
-
* @author fague
|
| 9 |
-
*
|
| 10 |
-
*/
|
| 11 |
-
class Monext_Payline_IndexController extends Mage_Core_Controller_Front_Action
|
| 12 |
-
{
|
| 13 |
-
/* @var $order Mage_Sales_Model_Order */
|
| 14 |
-
private $order;
|
| 15 |
-
|
| 16 |
-
protected function _getCustomerSession()
|
| 17 |
-
{
|
| 18 |
-
return Mage::getSingleton('customer/session');
|
| 19 |
-
}
|
| 20 |
-
|
| 21 |
-
/**
|
| 22 |
-
* Add a transaction to the current order, depending on the payment type (Auth or Auth+Capture)
|
| 23 |
-
* @param string $transactionId
|
| 24 |
-
* @param string $paymentAction
|
| 25 |
-
* @return null
|
| 26 |
-
*/
|
| 27 |
-
private function addTransaction($transactionId,$paymentAction){
|
| 28 |
-
if (version_compare(Mage::getVersion(), '1.4', 'ge')){
|
| 29 |
-
/* @var $payment Mage_Payment_Model_Method_Abstract */
|
| 30 |
-
$payment=$this->order->getPayment();
|
| 31 |
-
if(!$payment->getTransaction($transactionId)){ // if transaction isn't saved yet
|
| 32 |
-
$transaction = Mage::getModel('sales/order_payment_transaction');
|
| 33 |
-
$transaction->setTxnId($transactionId);
|
| 34 |
-
$transaction->setOrderPaymentObject($this->order->getPayment());
|
| 35 |
-
if($paymentAction == '100'){
|
| 36 |
-
|
| 37 |
-
}else if ($paymentAction == '101'){
|
| 38 |
-
$transaction->setTxnType(Mage_Sales_Model_Order_Payment_Transaction::TYPE_PAYMENT);
|
| 39 |
-
}
|
| 40 |
-
$transaction->save();
|
| 41 |
-
$this->order->sendNewOrderEmail();
|
| 42 |
-
}
|
| 43 |
-
}else{
|
| 44 |
-
$this->order->getPayment()->setLastTransId($transactionId);
|
| 45 |
-
$this->order->sendNewOrderEmail();
|
| 46 |
-
}
|
| 47 |
-
}
|
| 48 |
-
|
| 49 |
-
/**
|
| 50 |
-
*
|
| 51 |
-
* Set the order's status to the provided status (must be part of the cancelled state)
|
| 52 |
-
* Reinit stocks & redirect to checkout
|
| 53 |
-
* @param string $cancelStatus
|
| 54 |
-
*/
|
| 55 |
-
private function cancelOrder($cancelStatus, $resCode = '',$message = ''){
|
| 56 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$cancelStatus,$message,false);
|
| 57 |
-
$this->updateStock();
|
| 58 |
-
$this->order->save();
|
| 59 |
-
|
| 60 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 61 |
-
}
|
| 62 |
-
|
| 63 |
-
/**
|
| 64 |
-
* Check if the customer is logged, and if it has a wallet
|
| 65 |
-
* If not & if there is a walletId in the result from Payline, we save it
|
| 66 |
-
*/
|
| 67 |
-
public function saveWallet($walletId){
|
| 68 |
-
if (!Mage::getStoreConfig('payment/payline_common/automate_wallet_subscription')){
|
| 69 |
-
return;
|
| 70 |
-
}
|
| 71 |
-
$customer=Mage::getSingleton('customer/session');
|
| 72 |
-
if ($customer->isLoggedIn()){
|
| 73 |
-
$customer=Mage::getModel('customer/customer')->load($customer->getId());
|
| 74 |
-
if (!$customer->getWalletId()){
|
| 75 |
-
$customer->setWalletId($walletId);
|
| 76 |
-
$customer->save();
|
| 77 |
-
}
|
| 78 |
-
}
|
| 79 |
-
}
|
| 80 |
-
|
| 81 |
-
/**
|
| 82 |
-
*
|
| 83 |
-
* Initialise the requests param array
|
| 84 |
-
* @return array
|
| 85 |
-
*/
|
| 86 |
-
private function init(){
|
| 87 |
-
$array = array();
|
| 88 |
-
|
| 89 |
-
$_session = Mage::getSingleton('checkout/session');
|
| 90 |
-
|
| 91 |
-
$this->order = Mage::getModel('sales/order')->loadByIncrementId($_session->getLastRealOrderId());
|
| 92 |
-
$_numericCurrencyCode = Mage::helper('payline')->getNumericCurrencyCode($this->order->getBaseCurrencyCode());
|
| 93 |
-
|
| 94 |
-
// PAYMENT
|
| 95 |
-
$array['payment']['amount'] = round($this->order->getBaseGrandTotal()*100);
|
| 96 |
-
$array['payment']['currency'] = $_numericCurrencyCode;
|
| 97 |
-
|
| 98 |
-
// ORDER
|
| 99 |
-
//
|
| 100 |
-
$array['order']['ref'] = substr($this->order->getRealOrderId(),0,50);
|
| 101 |
-
$array['order']['amount'] = $array['payment']['amount'];
|
| 102 |
-
$array['order']['currency'] = $_numericCurrencyCode;
|
| 103 |
-
|
| 104 |
-
$billingAddress = $this->order->getBillingAddress();
|
| 105 |
-
|
| 106 |
-
// BUYER
|
| 107 |
-
$buyerLastName = substr($this->order->getCustomerLastname(),0,50);
|
| 108 |
-
if($buyerLastName == null || $buyerLastName == ''){
|
| 109 |
-
$buyerLastName = substr($billingAddress->getLastname(),0,50);
|
| 110 |
-
}
|
| 111 |
-
$buyerFirstName = substr($this->order->getCustomerFirstname(),0,50);
|
| 112 |
-
if($buyerFirstName == null || $buyerFirstName == ''){
|
| 113 |
-
$buyerFirstName = substr($billingAddress->getFirstname(),0,50);
|
| 114 |
-
}
|
| 115 |
-
$array['buyer']['lastName'] = Mage::helper('payline')->encodeString($buyerLastName);
|
| 116 |
-
$array['buyer']['firstName'] = Mage::helper('payline')->encodeString($buyerFirstName);
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
$email=$this->order->getCustomerEmail();
|
| 120 |
-
$pattern = '/\+/i';
|
| 121 |
-
$charPlusExist = preg_match($pattern, $email);
|
| 122 |
-
if (strlen($email)<=50 && Zend_Validate::is($email, 'EmailAddress') && !$charPlusExist) {
|
| 123 |
-
$array['buyer']['email']=Mage::helper('payline')->encodeString($email);
|
| 124 |
-
}else{
|
| 125 |
-
$array['buyer']['email'] = '';
|
| 126 |
-
}
|
| 127 |
-
$array['buyer']['customerId'] = Mage::helper('payline')->encodeString($email);
|
| 128 |
-
|
| 129 |
-
// ADDRESS : !!!WARNING!!! PaylineSDK v4.33 reverse billingAddress & shippingAdress.
|
| 130 |
-
// Take this : https://www.youtube.com/watch?v=MA6kXUgZ7lE&list=PLpyrjJvJ7GJ7bM5GjzwHvZIqe6c5l3iF6
|
| 131 |
-
$array['shippingAddress']['name'] = Mage::helper('payline')->encodeString(substr($billingAddress->getName(),0,100));
|
| 132 |
-
$array['shippingAddress']['street1'] = Mage::helper('payline')->encodeString(substr($billingAddress->getStreet1(),0,100));
|
| 133 |
-
$array['shippingAddress']['street2'] = Mage::helper('payline')->encodeString(substr($billingAddress->getStreet2(),0,100));
|
| 134 |
-
$array['shippingAddress']['cityName'] = Mage::helper('payline')->encodeString(substr($billingAddress->getCity(),0,40));
|
| 135 |
-
$array['shippingAddress']['zipCode'] = substr($billingAddress->getPostcode(),0,12);
|
| 136 |
-
//The $billing->getCountry() returns a 2 letter ISO2, should be fine
|
| 137 |
-
$array['shippingAddress']['country'] = $billingAddress->getCountry();
|
| 138 |
-
$forbidenCars = array(' ','.','(',')','-');
|
| 139 |
-
$phone = str_replace($forbidenCars,'',$billingAddress->getTelephone());
|
| 140 |
-
$regexpTel='/^\+?[0-9]{1,14}$/';
|
| 141 |
-
if (preg_match($regexpTel, $phone)){
|
| 142 |
-
$array['shippingAddress']['phone']=$phone;
|
| 143 |
-
}else{
|
| 144 |
-
$array['shippingAddress']['phone']='';
|
| 145 |
-
}
|
| 146 |
-
$array['billingAddress'] = null;
|
| 147 |
-
return $array;
|
| 148 |
-
}
|
| 149 |
-
|
| 150 |
-
/**
|
| 151 |
-
* Add payment transaction to the order, reinit stocks if needed
|
| 152 |
-
* @param $res array result of a request
|
| 153 |
-
* @param $transactionId
|
| 154 |
-
* @return boolean (true=>valid payment, false => invalid payment)
|
| 155 |
-
*/
|
| 156 |
-
private function updateOrder($res,$transactionId, $paymentType='CPT'){
|
| 157 |
-
Mage::helper('payline/logger')->log("[updateOrder] Mise à jour commande ".$this->order->getIncrementId()." (mode $paymentType) avec la transaction $transactionId");
|
| 158 |
-
$orderOk = false;
|
| 159 |
-
if( $res['result']['code'] ) {
|
| 160 |
-
$resultCode = $res['result']['code'];
|
| 161 |
-
$acceptedCodes = array('00000','02500','02501','04003');
|
| 162 |
-
if( in_array( $resultCode, $acceptedCodes ) ) { // transaction OK
|
| 163 |
-
$orderOk = true;
|
| 164 |
-
if($paymentType == 'NX') {
|
| 165 |
-
Mage::helper('payline/logger')->log("[updateOrder] Cas du paiement NX");
|
| 166 |
-
if (isset($res['billingRecordList']['billingRecord'][0])) {
|
| 167 |
-
$code_echeance = $res['billingRecordList']['billingRecord'][0]->result->code;
|
| 168 |
-
if($code_echeance == '00000' || $code_echeance == '02501'){
|
| 169 |
-
Mage::helper('payline/logger')->log("[updateOrder] première échéance paiement NX OK");
|
| 170 |
-
$orderOk = true;
|
| 171 |
-
}else{
|
| 172 |
-
Mage::helper('payline/logger')->log("[updateOrder] première échéance paiement NX refusée, code ".$code_echeance);
|
| 173 |
-
$orderOk = false;
|
| 174 |
-
}
|
| 175 |
-
}else{
|
| 176 |
-
Mage::helper('payline/logger')->log("[updateOrder] La première échéance de paiement est à venir");
|
| 177 |
-
}
|
| 178 |
-
}
|
| 179 |
-
|
| 180 |
-
$this->order->getPayment()->setCcTransId($transactionId);
|
| 181 |
-
if (isset($res['payment']) && isset($res['payment']['action'])){
|
| 182 |
-
$paymentAction=$res['payment']['action'];
|
| 183 |
-
}else{
|
| 184 |
-
$paymentAction= Mage::getStoreConfig('payment/Payline'.$paymentType.'/payline_payment_action');
|
| 185 |
-
}
|
| 186 |
-
$this->addTransaction($transactionId, $paymentAction);
|
| 187 |
-
}else{
|
| 188 |
-
$this->updateStock();
|
| 189 |
-
}
|
| 190 |
-
}
|
| 191 |
-
$this->order->save();
|
| 192 |
-
return $orderOk;
|
| 193 |
-
}
|
| 194 |
-
|
| 195 |
-
/**
|
| 196 |
-
* Reinit stocks
|
| 197 |
-
*/
|
| 198 |
-
private function updateStock(){
|
| 199 |
-
if(Mage::getStoreConfig(Mage_CatalogInventory_Model_Stock_Item::XML_PATH_CAN_SUBTRACT) == 1){ // le stock a été décrémenté à la commande
|
| 200 |
-
// ré-incrémentation du stock
|
| 201 |
-
$items = $this->order->getAllItems();
|
| 202 |
-
if ($items) {
|
| 203 |
-
foreach($items as $item) {
|
| 204 |
-
$quantity = $item->getQtyOrdered(); // get Qty ordered
|
| 205 |
-
$product_id = $item->getProductId(); // get its ID
|
| 206 |
-
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id); // Load the stock for this product
|
| 207 |
-
$stock->setQty($stock->getQty()+$quantity); // Set to new Qty
|
| 208 |
-
//if qtty = 0 after order and order fails, set stock status is_in_stock to true
|
| 209 |
-
if ( $stock->getQty() > $stock->getMinQty() && !$stock->getIsInStock() ) {
|
| 210 |
-
$stock->setIsInStock( 1 );
|
| 211 |
-
}
|
| 212 |
-
$stock->save(); // Save
|
| 213 |
-
continue;
|
| 214 |
-
}
|
| 215 |
-
}
|
| 216 |
-
}
|
| 217 |
-
}
|
| 218 |
-
|
| 219 |
-
/**
|
| 220 |
-
* Force this action code of some payment methods to the given action code
|
| 221 |
-
* @param $paymentMethod {string}
|
| 222 |
-
* @param $array {array} conf array. $array is a reference, so no need to return it.
|
| 223 |
-
* @param $actionCode {string} forced action code set in $array
|
| 224 |
-
*/
|
| 225 |
-
private function forcePaymentActionTo($paymentMethod, &$array, $actionCode)
|
| 226 |
-
{
|
| 227 |
-
switch( $paymentMethod ) {
|
| 228 |
-
case 'UKASH':
|
| 229 |
-
case 'MONEYCLIC':
|
| 230 |
-
case 'TICKETSURF':
|
| 231 |
-
case 'SKRILL(MONEYBOOKERS)':
|
| 232 |
-
case 'LEETCHI':
|
| 233 |
-
Mage::helper('payline/logger')->log('[cptAction] order '.$array['order']['ref'].' - '.$paymentMethod.' selected => payment action is forced to '.$actionCode);
|
| 234 |
-
$array['payment']['action'] = $actionCode;
|
| 235 |
-
break;
|
| 236 |
-
default: break;
|
| 237 |
-
}
|
| 238 |
-
}
|
| 239 |
-
|
| 240 |
-
/**
|
| 241 |
-
* Initialize the cpt payment request
|
| 242 |
-
*/
|
| 243 |
-
public function cptAction(){
|
| 244 |
-
//Check if wallet is sendable
|
| 245 |
-
//Must be done before call to Payline helper initialisation
|
| 246 |
-
$expiredWalletId=false;
|
| 247 |
-
if(Mage::getSingleton('customer/session')->isLoggedIn()){
|
| 248 |
-
$customer=Mage::getSingleton('customer/session')->getCustomer();
|
| 249 |
-
$customer=Mage::getModel('customer/customer')->load($customer->getId());
|
| 250 |
-
if ($customer->getWalletId() && !Mage::getModel('payline/wallet')->checkExpirationDate()){
|
| 251 |
-
$expiredWalletId=true;
|
| 252 |
-
}
|
| 253 |
-
}
|
| 254 |
-
|
| 255 |
-
$array = $this->init();
|
| 256 |
-
/* @var $paylineSDK PaylineSDK */
|
| 257 |
-
$helperPayline = Mage::helper('payline');
|
| 258 |
-
$paylineSDK = $helperPayline->initPayline('CPT',$array['payment']['currency']);
|
| 259 |
-
$paymentMethod = $this->order->getPayment()->getCcType();
|
| 260 |
-
$array['payment']['action'] = Mage::getStoreConfig('payment/PaylineCPT/payline_payment_action');
|
| 261 |
-
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 262 |
-
if($paymentMethod) {
|
| 263 |
-
// debut ajout FSZ 15/11/2012
|
| 264 |
-
Mage::helper('payline/logger')->log('[cptAction] order '.$array['order']['ref'].' - customer selected contract '.$paymentMethod);
|
| 265 |
-
|
| 266 |
-
$contractCPT = Mage::getModel('payline/contract')
|
| 267 |
-
->getCollection()
|
| 268 |
-
->addFieldToFilter( 'number', $paymentMethod )
|
| 269 |
-
->getFirstItem();
|
| 270 |
-
|
| 271 |
-
// $paymentMethod = contract number. Filter must be on contract type
|
| 272 |
-
$this->forcePaymentActionTo( $contractCPT->getContractType(), $array, '101' );
|
| 273 |
-
|
| 274 |
-
// fin ajout FSZ 15/11/2012
|
| 275 |
-
$array['payment']['contractNumber'] = $paymentMethod;
|
| 276 |
-
$array['contracts'] = array($paymentMethod);
|
| 277 |
-
} else {
|
| 278 |
-
$array['payment']['contractNumber'] = $helperPayline->contractNumber;
|
| 279 |
-
}
|
| 280 |
-
$array['payment']['mode'] = 'CPT';
|
| 281 |
-
|
| 282 |
-
//second contracts
|
| 283 |
-
$array['secondContracts'] = explode(';',$helperPayline->secondaryContractNumberList);
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
//If wallet isn't sendable...
|
| 287 |
-
if ($expiredWalletId){
|
| 288 |
-
$helperPayline->walletId=null;
|
| 289 |
-
}
|
| 290 |
-
|
| 291 |
-
// PRIVATE DATA
|
| 292 |
-
$privateData = array();
|
| 293 |
-
$privateData['key'] = "orderRef";
|
| 294 |
-
$privateData['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 295 |
-
$paylineSDK->setPrivate($privateData);
|
| 296 |
-
|
| 297 |
-
//ORDER DETAILS (optional)
|
| 298 |
-
$items = $this->order->getAllItems();
|
| 299 |
-
if ($items) {
|
| 300 |
-
if(count($items)>100) $items=array_slice($items,0,100);
|
| 301 |
-
foreach($items as $item) {
|
| 302 |
-
$itemPrice = round($item->getPrice()*100);
|
| 303 |
-
if($itemPrice > 0){
|
| 304 |
-
$product = array();
|
| 305 |
-
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 306 |
-
$product['price'] = round($item->getPrice()*100);
|
| 307 |
-
$product['quantity'] = round($item->getQtyOrdered());
|
| 308 |
-
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 309 |
-
$paylineSDK->setItem($product);
|
| 310 |
-
}
|
| 311 |
-
continue;
|
| 312 |
-
}
|
| 313 |
-
}
|
| 314 |
-
|
| 315 |
-
//WALLET
|
| 316 |
-
if(Mage::getStoreConfig('payment/PaylineCPT/send_wallet_id')) {
|
| 317 |
-
if (!isset($array['buyer']['walletId'])) {
|
| 318 |
-
if (isset($helperPayline->walletId)) {
|
| 319 |
-
$array['buyer']['walletId'] = $helperPayline->walletId;
|
| 320 |
-
}
|
| 321 |
-
}
|
| 322 |
-
if ($helperPayline->canSubscribeWallet()) {
|
| 323 |
-
//If the wallet is new (registered during payment), we must save it in the private data since it's not sent back by default
|
| 324 |
-
if ($helperPayline->isNewWallet) {
|
| 325 |
-
if ($helperPayline->walletId) {
|
| 326 |
-
$paylineSDK->setPrivate(array('key'=>'newWalletId','value'=>$helperPayline->walletId));
|
| 327 |
-
}
|
| 328 |
-
}
|
| 329 |
-
}
|
| 330 |
-
}
|
| 331 |
-
|
| 332 |
-
// ADD CONTRACT WALLET ARRAY TO $array
|
| 333 |
-
$array['walletContracts'] = Mage::helper('payline')->buildContractNumberWalletList();
|
| 334 |
-
|
| 335 |
-
// EXECUTE
|
| 336 |
-
try{
|
| 337 |
-
$result = $paylineSDK->doWebPayment($array);
|
| 338 |
-
}catch(Exception $e){
|
| 339 |
-
Mage::logException($e);
|
| 340 |
-
$this->updateStock();
|
| 341 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 342 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 343 |
-
$msgLog='Unknown PAYLINE ERROR (payline unreachable?)';
|
| 344 |
-
Mage::helper('payline/logger')->log('[cptAction] ' .$this->order->getIncrementId().' '. $msgLog);
|
| 345 |
-
$this->_redirect('checkout/onepage');
|
| 346 |
-
return;
|
| 347 |
-
}
|
| 348 |
-
// RESPONSE
|
| 349 |
-
$initStatus = Mage::getStoreConfig('payment/payline_common/init_order_status');
|
| 350 |
-
if(isset($result) && is_array($result) && $result['result']['code'] == '00000'){
|
| 351 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,'',false);
|
| 352 |
-
$this->order->save();
|
| 353 |
-
header("location:".$result['redirectURL']);
|
| 354 |
-
exit();
|
| 355 |
-
}else {//Payline error
|
| 356 |
-
$this->updateStock();
|
| 357 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 358 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 359 |
-
if (isset($result) && is_array($result)){
|
| 360 |
-
$msgLog='PAYLINE ERROR : '.$result['result']['code']. ' ' . $result['result']['shortMessage'] . ' ('.$result['result']['longMessage'] . ')';
|
| 361 |
-
} elseif (isset($result) && is_string($result)){
|
| 362 |
-
$msgLog='PAYLINE ERROR : '.$result;
|
| 363 |
-
} else{
|
| 364 |
-
$msgLog='Unknown PAYLINE ERROR';
|
| 365 |
-
}
|
| 366 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,$msgLog,false);
|
| 367 |
-
$this->order->save();
|
| 368 |
-
Mage::helper('payline/logger')->log('[cptAction] ' .$this->order->getIncrementId().' '.$msgLog);
|
| 369 |
-
$this->_redirect('checkout/onepage');
|
| 370 |
-
return;
|
| 371 |
-
}
|
| 372 |
-
}
|
| 373 |
-
|
| 374 |
-
/**
|
| 375 |
-
* Initialize & process the direct payment request
|
| 376 |
-
*/
|
| 377 |
-
public function directAction(){
|
| 378 |
-
$array = $this->init();
|
| 379 |
-
$paylineSDK = Mage::helper('payline')->initPayline('DIRECT',$array['payment']['currency']);
|
| 380 |
-
|
| 381 |
-
//PAYMENT
|
| 382 |
-
$array['payment']['action'] = Mage::getStoreConfig('payment/PaylineDIRECT/payline_payment_action');
|
| 383 |
-
$array['payment']['mode'] = 'CPT';
|
| 384 |
-
|
| 385 |
-
$contract = Mage::getModel('payline/contract')->load($_SESSION['payline_ccdata']->cc_type);
|
| 386 |
-
$array['payment']['contractNumber'] = $contract->getNumber();
|
| 387 |
-
|
| 388 |
-
//ORDER
|
| 389 |
-
$array['order']['date'] = date("d/m/Y H:i");
|
| 390 |
-
|
| 391 |
-
//PRIVATE DATA
|
| 392 |
-
$privateData1 = array();
|
| 393 |
-
$privateData1['key'] = 'orderRef';
|
| 394 |
-
$privateData1['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 395 |
-
$paylineSDK->setPrivate($privateData1);
|
| 396 |
-
|
| 397 |
-
//ORDER DETAILS (optional)
|
| 398 |
-
$items = $this->order->getAllItems();
|
| 399 |
-
if ($items) {
|
| 400 |
-
if(count($items)>100) $items=array_slice($items,0,100);
|
| 401 |
-
foreach($items as $item) {
|
| 402 |
-
$itemPrice = round($item->getPrice()*100);
|
| 403 |
-
if($itemPrice > 0){
|
| 404 |
-
$product = array();
|
| 405 |
-
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 406 |
-
$product['price'] = round($item->getPrice()*100);
|
| 407 |
-
$product['quantity'] = round($item->getQtyOrdered());
|
| 408 |
-
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 409 |
-
$paylineSDK->setItem($product);
|
| 410 |
-
}
|
| 411 |
-
continue;
|
| 412 |
-
}
|
| 413 |
-
}
|
| 414 |
-
// CARD INFO
|
| 415 |
-
$array['card']['number'] = $_SESSION['payline_ccdata']->cc_number;
|
| 416 |
-
$array['card']['cardholder'] = $_SESSION['payline_ccdata']->cc_owner;
|
| 417 |
-
$array['card']['type'] = $contract->getContractType();
|
| 418 |
-
$array['card']['expirationDate'] = $_SESSION['payline_ccdata']->cc_exp_month.$_SESSION['payline_ccdata']->cc_exp_year;
|
| 419 |
-
$array['card']['cvx'] = $_SESSION['payline_ccdata']->cc_cid;
|
| 420 |
-
|
| 421 |
-
// Customer IP
|
| 422 |
-
$array['buyer']['ip'] = Mage::helper('core/http')->getRemoteAddr();
|
| 423 |
-
|
| 424 |
-
//3D secure
|
| 425 |
-
$array['3DSecure'] = array();
|
| 426 |
-
|
| 427 |
-
//BANK ACCOUNT DATA
|
| 428 |
-
$array['BankAccountData'] = array();
|
| 429 |
-
|
| 430 |
-
//version
|
| 431 |
-
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 432 |
-
// OWNER
|
| 433 |
-
$array['owner']['lastName'] = Mage::helper('payline')->encodeString($_SESSION['payline_ccdata']->cc_owner);
|
| 434 |
-
|
| 435 |
-
try{
|
| 436 |
-
$author_result = $paylineSDK->doAuthorization($array);
|
| 437 |
-
}catch(Exception $e){
|
| 438 |
-
Mage::logException($e);
|
| 439 |
-
$this->updateStock();
|
| 440 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 441 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 442 |
-
$msgLog='Unknown PAYLINE ERROR (payline unreachable?)';
|
| 443 |
-
Mage::helper('payline/logger')->log('[directAction] ' .$this->order->getIncrementId().$msgLog);
|
| 444 |
-
$this->_redirect('checkout/onepage');
|
| 445 |
-
return;
|
| 446 |
-
}
|
| 447 |
-
// RESPONSE
|
| 448 |
-
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 449 |
-
if(isset($author_result) && is_array($author_result) && $author_result['result']['code'] == '00000'){
|
| 450 |
-
$array_details = array();
|
| 451 |
-
$array_details['orderRef'] = $this->order->getRealOrderId();
|
| 452 |
-
$array_details['transactionId'] = $author_result['transaction']['id'];
|
| 453 |
-
$array_details['startDate'] = '';
|
| 454 |
-
$array_details['endDate'] = '';
|
| 455 |
-
$array_details['transactionHistory']= '';
|
| 456 |
-
$array_details['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 457 |
-
$array_details['archiveSearch'] = '';
|
| 458 |
-
$detail_result = $paylineSDK->getTransactionDetails($array_details);
|
| 459 |
-
|
| 460 |
-
if($this->updateOrder($detail_result,$detail_result['transaction']['id'], 'DIRECT')){
|
| 461 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 462 |
-
if($detail_result['result']['code'] == '04003') {
|
| 463 |
-
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 464 |
-
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 465 |
-
} else {
|
| 466 |
-
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 467 |
-
$this->order, $array['payment']['action'] );
|
| 468 |
-
}
|
| 469 |
-
|
| 470 |
-
$array['wallet']['lastName'] = $array['buyer']['lastName'];
|
| 471 |
-
$array['wallet']['firstName'] = $array['buyer']['firstName'];
|
| 472 |
-
$array['wallet']['email'] = $array['buyer']['email'];
|
| 473 |
-
// remember, the Beast is not so far
|
| 474 |
-
$array['address'] = $array['shippingAddress'];
|
| 475 |
-
$array['ownerAddress'] = null;
|
| 476 |
-
|
| 477 |
-
Mage::helper('payline')->createWalletForCurrentCustomer($paylineSDK, $array);
|
| 478 |
-
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('DIRECT', $this->order);
|
| 479 |
-
$this->order->save();
|
| 480 |
-
Mage_Core_Controller_Varien_Action::_redirectSuccess($redirectUrl);
|
| 481 |
-
}else{
|
| 482 |
-
$msgLog='Error during order update (#'.$this->order->getIncrementId().')'."\n";
|
| 483 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 484 |
-
$this->order->save();
|
| 485 |
-
|
| 486 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 487 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 488 |
-
Mage::helper('payline/logger')->log('[directAction] ' .$this->order->getIncrementId().$msgLog);
|
| 489 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 490 |
-
return;
|
| 491 |
-
}
|
| 492 |
-
}else {
|
| 493 |
-
if(isset($author_result) && is_array($author_result)){
|
| 494 |
-
$msgLog='PAYLINE ERROR : '.$author_result['result']['code']. ' ' . $author_result['result']['shortMessage'] . ' ('.$author_result['result']['longMessage'].')';
|
| 495 |
-
} elseif(isset($author_result) && is_string($author_result)){
|
| 496 |
-
$msgLog='PAYLINE ERROR : '. $author_result;
|
| 497 |
-
} else{
|
| 498 |
-
$msgLog='Unknown PAYLINE ERROR';
|
| 499 |
-
}
|
| 500 |
-
|
| 501 |
-
$this->updateStock();
|
| 502 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 503 |
-
$this->order->save();
|
| 504 |
-
|
| 505 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 506 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 507 |
-
Mage::helper('payline/logger')->log('[directAction] ' .$this->order->getIncrementId().$msgLog);
|
| 508 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 509 |
-
return;
|
| 510 |
-
}
|
| 511 |
-
}
|
| 512 |
-
|
| 513 |
-
/** Initialisize a WALLET payment request
|
| 514 |
-
*
|
| 515 |
-
*/
|
| 516 |
-
/**
|
| 517 |
-
* Initialize & process a wallet direct payment request
|
| 518 |
-
*/
|
| 519 |
-
public function walletAction(){
|
| 520 |
-
$array = $this->init();
|
| 521 |
-
$paylineSDK = Mage::helper('payline')->initPayline('WALLET',$array['payment']['currency']);
|
| 522 |
-
|
| 523 |
-
//PAYMENT
|
| 524 |
-
$array['payment']['action'] = Mage::getStoreConfig('payment/PaylineWALLET/payline_payment_action');
|
| 525 |
-
$array['payment']['mode'] = 'CPT';
|
| 526 |
-
|
| 527 |
-
//Get the wallet contract number from card type
|
| 528 |
-
$wallet=Mage::getModel('payline/wallet')->getWalletData();
|
| 529 |
-
$contract = Mage::getModel('payline/contract')
|
| 530 |
-
->getCollection()
|
| 531 |
-
->addFilterStatus(true,Mage::app()->getStore()->getId())
|
| 532 |
-
->addFieldToFilter('contract_type',$wallet['card']['type'])
|
| 533 |
-
->getFirstItem();
|
| 534 |
-
|
| 535 |
-
$array['payment']['contractNumber']= $contract->getNumber();
|
| 536 |
-
|
| 537 |
-
//ORDER
|
| 538 |
-
$array['order']['date'] = date("d/m/Y H:i");
|
| 539 |
-
|
| 540 |
-
//PRIVATE DATA
|
| 541 |
-
$privateData1 = array();
|
| 542 |
-
$privateData1['key'] = 'orderRef';
|
| 543 |
-
$privateData1['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 544 |
-
$paylineSDK->setPrivate($privateData1);
|
| 545 |
-
|
| 546 |
-
//ORDER DETAILS (optional)
|
| 547 |
-
$items = $this->order->getAllItems();
|
| 548 |
-
if ($items) {
|
| 549 |
-
if(count($items)>100) $items=array_slice($items,0,100);
|
| 550 |
-
foreach($items as $item) {
|
| 551 |
-
$itemPrice = round($item->getPrice()*100);
|
| 552 |
-
if($itemPrice > 0){
|
| 553 |
-
$product = array();
|
| 554 |
-
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 555 |
-
$product['price'] = round($item->getPrice()*100);
|
| 556 |
-
$product['quantity'] = round($item->getQtyOrdered());
|
| 557 |
-
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 558 |
-
$paylineSDK->setItem($product);
|
| 559 |
-
}
|
| 560 |
-
continue;
|
| 561 |
-
}
|
| 562 |
-
}
|
| 563 |
-
|
| 564 |
-
$customerId=Mage::getSingleton('customer/session')->getId();
|
| 565 |
-
$customer=Mage::getModel('customer/customer')->load($customerId);
|
| 566 |
-
$walletId=$customer->getWalletId();
|
| 567 |
-
$array['walletId']=$walletId;
|
| 568 |
-
$array['cardInd'] = '';
|
| 569 |
-
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 570 |
-
|
| 571 |
-
try{
|
| 572 |
-
$author_result = $paylineSDK->doImmediateWalletPayment($array);
|
| 573 |
-
}catch(Exception $e){
|
| 574 |
-
Mage::logException($e);
|
| 575 |
-
$this->updateStock();
|
| 576 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 577 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 578 |
-
$msgLog='Unknown PAYLINE ERROR (payline unreachable?) during wallet payment';
|
| 579 |
-
Mage::helper('payline/logger')->log('[walletAction] ' .$this->order->getIncrementId().$msgLog);
|
| 580 |
-
$this->_redirect('checkout/onepage');
|
| 581 |
-
return;
|
| 582 |
-
}
|
| 583 |
-
// RESPONSE
|
| 584 |
-
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 585 |
-
if(isset($author_result) && is_array($author_result) && $author_result['result']['code'] == '00000'){
|
| 586 |
-
$array_details = array();
|
| 587 |
-
$array_details['orderRef'] = $this->order->getRealOrderId();
|
| 588 |
-
$array_details['transactionId'] = $author_result['transaction']['id'];
|
| 589 |
-
$array_details['startDate'] = '';
|
| 590 |
-
$array_details['endDate'] = '';
|
| 591 |
-
$array_details['transactionHistory']= '';
|
| 592 |
-
$array_details['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 593 |
-
$array_details['archiveSearch'] = '';
|
| 594 |
-
$detail_result = $paylineSDK->getTransactionDetails($array_details);
|
| 595 |
-
|
| 596 |
-
if(is_array($detail_result) && $this->updateOrder($detail_result,$detail_result['transaction']['id'], 'WALLET')){
|
| 597 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 598 |
-
if($detail_result['result']['code'] == '04003') {
|
| 599 |
-
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 600 |
-
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 601 |
-
} else {
|
| 602 |
-
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 603 |
-
$this->order, $array['payment']['action'] );
|
| 604 |
-
}
|
| 605 |
-
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('WALLET', $this->order);
|
| 606 |
-
$this->order->save();
|
| 607 |
-
Mage_Core_Controller_Varien_Action::_redirectSuccess($redirectUrl);
|
| 608 |
-
}else{
|
| 609 |
-
$msgLog='Error during order update (#'.$this->order->getIncrementId().')';
|
| 610 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 611 |
-
$this->order->save();
|
| 612 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 613 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 614 |
-
Mage::helper('payline/logger')->log('[walletAction] ' .$this->order->getIncrementId().$msgLog);
|
| 615 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 616 |
-
return;
|
| 617 |
-
}
|
| 618 |
-
|
| 619 |
-
}else {
|
| 620 |
-
$this->updateStock();
|
| 621 |
-
if(isset($author_result) && is_array($author_result)){
|
| 622 |
-
$msgLog='PAYLINE ERROR during doImmediateWalletPayment: '.$author_result['result']['code']. ' ' . $author_result['result']['shortMessage'] . ' ('.$author_result['result']['longMessage'].')';
|
| 623 |
-
}elseif(isset($author_result) && is_string($author_result)){
|
| 624 |
-
$msgLog='PAYLINE ERROR during doImmediateWalletPayment: '.$author_result;
|
| 625 |
-
} else {
|
| 626 |
-
$msgLog='Unknown PAYLINE ERROR during doImmediateWalletPayment';
|
| 627 |
-
}
|
| 628 |
-
|
| 629 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 630 |
-
$this->order->save();
|
| 631 |
-
|
| 632 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 633 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 634 |
-
Mage::helper('payline/logger')->log('[walletAction] ' .$this->order->getIncrementId().$msgLog);
|
| 635 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 636 |
-
return;
|
| 637 |
-
}
|
| 638 |
-
}
|
| 639 |
-
/**
|
| 640 |
-
* Initialize the NX payment request
|
| 641 |
-
*/
|
| 642 |
-
public function nxAction(){
|
| 643 |
-
//Check if wallet is sendable
|
| 644 |
-
//Must be done before call to Payline helper initialisation
|
| 645 |
-
$expiredWalletId=false;
|
| 646 |
-
if(Mage::getSingleton('customer/session')->isLoggedIn()){
|
| 647 |
-
$customer=Mage::getSingleton('customer/session')->getCustomer();
|
| 648 |
-
$customer=Mage::getModel('customer/customer')->load($customer->getId());
|
| 649 |
-
if ($customer->getWalletId() && !Mage::getModel('payline/wallet')->checkExpirationDate()){
|
| 650 |
-
$expiredWalletId=true;
|
| 651 |
-
}
|
| 652 |
-
}
|
| 653 |
-
|
| 654 |
-
$array = $this->init();
|
| 655 |
-
$helperPayline = Mage::helper('payline');
|
| 656 |
-
$paylineSDK = $helperPayline->initPayline('NX',$array['payment']['currency']);
|
| 657 |
-
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 658 |
-
|
| 659 |
-
//If wallet isn't sendable...
|
| 660 |
-
if ($expiredWalletId){
|
| 661 |
-
Mage::helper('payline')->walletId=null;
|
| 662 |
-
}
|
| 663 |
-
|
| 664 |
-
$nx = Mage::getStoreConfig('payment/PaylineNX/billing_occurrences');
|
| 665 |
-
$array['payment']['mode'] = 'NX';
|
| 666 |
-
$array['payment']['action'] = 101;
|
| 667 |
-
$array['payment']['contractNumber'] = $helperPayline->contractNumber;
|
| 668 |
-
$array['recurring']['amount'] = round($array['payment']['amount']/$nx);
|
| 669 |
-
$array['recurring']['firstAmount'] = $array['payment']['amount']-($array['recurring']['amount']*($nx-1));
|
| 670 |
-
$array['recurring']['billingCycle'] = Mage::getStoreConfig('payment/PaylineNX/billing_cycle');
|
| 671 |
-
$array['recurring']['billingLeft'] = $nx;
|
| 672 |
-
$array['recurring']['billingDay'] = '';
|
| 673 |
-
$array['recurring']['startDate'] = '';
|
| 674 |
-
|
| 675 |
-
//second contracts
|
| 676 |
-
$array['secondContracts'] = explode(';',$helperPayline->secondaryContractNumberList);
|
| 677 |
-
|
| 678 |
-
// PRIVATE DATA
|
| 679 |
-
$privateData = array();
|
| 680 |
-
$privateData['key'] = "orderRef";
|
| 681 |
-
$privateData['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 682 |
-
$paylineSDK->setPrivate($privateData);
|
| 683 |
-
|
| 684 |
-
//ORDER DETAILS (optional)
|
| 685 |
-
$items = $this->order->getAllItems();
|
| 686 |
-
if ($items) {
|
| 687 |
-
if(count($items)>100) $items=array_slice($items,0,100);
|
| 688 |
-
foreach($items as $item) {
|
| 689 |
-
$itemPrice = round($item->getPrice()*100);
|
| 690 |
-
if($itemPrice > 0){
|
| 691 |
-
$product = array();
|
| 692 |
-
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 693 |
-
$product['price'] = round($item->getPrice()*100);
|
| 694 |
-
$product['quantity'] = round($item->getQtyOrdered());
|
| 695 |
-
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 696 |
-
$paylineSDK->setItem($product);
|
| 697 |
-
}
|
| 698 |
-
continue;
|
| 699 |
-
}
|
| 700 |
-
}
|
| 701 |
-
|
| 702 |
-
//WALLET
|
| 703 |
-
if(Mage::getStoreConfig('payment/PaylineCPT/send_wallet_id')) {
|
| 704 |
-
if (!isset($array['buyer']['walletId'])) {
|
| 705 |
-
if (isset($helperPayline->walletId)) {
|
| 706 |
-
$array['buyer']['walletId'] = $helperPayline->walletId;
|
| 707 |
-
}
|
| 708 |
-
}
|
| 709 |
-
if ($helperPayline->canSubscribeWallet()) {
|
| 710 |
-
//If the wallet is new (registered during payment), we must save it in the private data since it's not sent back by default
|
| 711 |
-
if ($helperPayline->isNewWallet) {
|
| 712 |
-
if ($helperPayline->walletId) {
|
| 713 |
-
$paylineSDK->setPrivate(array('key'=>'newWalletId','value'=>$helperPayline->walletId));
|
| 714 |
-
}
|
| 715 |
-
}
|
| 716 |
-
}
|
| 717 |
-
}
|
| 718 |
-
|
| 719 |
-
// ADD CONTRACT WALLET ARRAY TO $array
|
| 720 |
-
$array['walletContracts'] = Mage::helper('payline')->buildContractNumberWalletList();
|
| 721 |
-
|
| 722 |
-
// EXECUTE
|
| 723 |
-
try{
|
| 724 |
-
$result = $paylineSDK->doWebPayment($array);
|
| 725 |
-
}catch(Exception $e){
|
| 726 |
-
Mage::logException($e);
|
| 727 |
-
$this->updateStock();
|
| 728 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 729 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 730 |
-
$msgLog='Unknown PAYLINE ERROR (payline unreachable?)';
|
| 731 |
-
Mage::helper('payline/logger')->log('[nxAction] ' .$this->order->getIncrementId().$msgLog);
|
| 732 |
-
$this->_redirect('checkout/onepage');
|
| 733 |
-
return;
|
| 734 |
-
}
|
| 735 |
-
// RESPONSE
|
| 736 |
-
$initStatus = Mage::getStoreConfig('payment/payline_common/init_order_status');
|
| 737 |
-
if(isset($result) && is_array($result) && $result['result']['code'] == '00000'){
|
| 738 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,'',false);
|
| 739 |
-
$this->order->save();
|
| 740 |
-
header("location:".$result['redirectURL']);
|
| 741 |
-
exit();
|
| 742 |
-
}else {
|
| 743 |
-
$this->updateStock();
|
| 744 |
-
if(isset($result) && is_array($result)){
|
| 745 |
-
$msgLog='PAYLINE ERROR : '.$result['result']['code']. ' ' . $result['result']['shortMessage'] . ' ('.$result['result']['longMessage'].')';
|
| 746 |
-
} elseif(isset($result) && is_string($result)){
|
| 747 |
-
$msgLog='PAYLINE ERROR : '.$result;
|
| 748 |
-
} else{
|
| 749 |
-
$msgLog='Unknown PAYLINE ERROR';
|
| 750 |
-
}
|
| 751 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,$msgLog,false);
|
| 752 |
-
$this->order->save();
|
| 753 |
-
$msg=Mage::helper('payline')->__('Error during payment');
|
| 754 |
-
Mage::helper('payline/logger')->log('[nxAction] ' .$this->order->getIncrementId().$msgLog);
|
| 755 |
-
Mage::getSingleton('core/session')->addError($msg);
|
| 756 |
-
$this->_redirect('checkout/onepage');
|
| 757 |
-
return;
|
| 758 |
-
|
| 759 |
-
}
|
| 760 |
-
}
|
| 761 |
-
|
| 762 |
-
/**
|
| 763 |
-
* Action called on the customer's return form the Payline website.
|
| 764 |
-
*/
|
| 765 |
-
public function cptReturnAction(){
|
| 766 |
-
$res = Mage::helper('payline')->initPayline('CPT')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 767 |
-
|
| 768 |
-
$this->_getCustomerSession()->setWebPaymentDetails($res);
|
| 769 |
-
|
| 770 |
-
if (isset($res['privateDataList']['privateData']['value'])){
|
| 771 |
-
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 772 |
-
}else{
|
| 773 |
-
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 774 |
-
if($privateDataList->key == 'orderRef'){
|
| 775 |
-
$orderRef = $privateDataList->value;
|
| 776 |
-
}
|
| 777 |
-
}
|
| 778 |
-
}
|
| 779 |
-
|
| 780 |
-
if (!isset($orderRef)){
|
| 781 |
-
$msgLog='Couldn\'t find order increment id in cpt payment result';
|
| 782 |
-
Mage::helper('payline/logger')->log('[cptNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 783 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 784 |
-
return;
|
| 785 |
-
}
|
| 786 |
-
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 787 |
-
|
| 788 |
-
//If order is still new, notifAction haven't been called yet
|
| 789 |
-
if ($this->order->getState()==Mage_Sales_Model_Order::STATE_NEW){
|
| 790 |
-
Mage_Core_Controller_Varien_Action::_redirectSuccess($this->cptNotifAction());
|
| 791 |
-
}
|
| 792 |
-
|
| 793 |
-
if($res['result']['code'] == '00000' || $res['result']['code'] == '04003'){
|
| 794 |
-
$this->_redirect('checkout/onepage/success');
|
| 795 |
-
}else{
|
| 796 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 797 |
-
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 798 |
-
}
|
| 799 |
-
}
|
| 800 |
-
|
| 801 |
-
/**
|
| 802 |
-
* Action called on the customer's return form the Payline website.
|
| 803 |
-
*/
|
| 804 |
-
public function nxReturnAction(){
|
| 805 |
-
Mage_Core_Controller_Varien_Action::_redirectSuccess($this->nxNotifAction());
|
| 806 |
-
}
|
| 807 |
-
|
| 808 |
-
/**
|
| 809 |
-
* Save CPT payment result, called by the bank when the transaction is done
|
| 810 |
-
*/
|
| 811 |
-
public function cptNotifAction(){
|
| 812 |
-
$res = $this->_getCustomerSession()->getWebPaymentDetails(true);
|
| 813 |
-
if (empty($res)) {
|
| 814 |
-
$res = Mage::helper('payline')->initPayline('CPT')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 815 |
-
}
|
| 816 |
-
|
| 817 |
-
if (isset($res['privateDataList']['privateData']['value'])){
|
| 818 |
-
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 819 |
-
}else{
|
| 820 |
-
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 821 |
-
if($privateDataList->key == 'orderRef'){
|
| 822 |
-
$orderRef = $privateDataList->value;
|
| 823 |
-
}
|
| 824 |
-
if($privateDataList->key == 'newWalletId'){
|
| 825 |
-
$newWalletId = $privateDataList->value;
|
| 826 |
-
}
|
| 827 |
-
}
|
| 828 |
-
}
|
| 829 |
-
if (!isset($orderRef)){
|
| 830 |
-
$msgLog='Couldn\'t find order increment id in cpt payment result';
|
| 831 |
-
Mage::helper('payline/logger')->log('[cptNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 832 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 833 |
-
}
|
| 834 |
-
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 835 |
-
$payment = $this->order->getPayment();
|
| 836 |
-
if ($payment->getBaseAmountPaid() != $payment->getBaseAmountOrdered()) {
|
| 837 |
-
|
| 838 |
-
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 839 |
-
|
| 840 |
-
if(is_array($res) && $this->updateOrder($res,$res['transaction']['id'], 'CPT')){
|
| 841 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 842 |
-
|
| 843 |
-
if($res['result']['code'] == '04003') {
|
| 844 |
-
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 845 |
-
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 846 |
-
} else {
|
| 847 |
-
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 848 |
-
$this->order, $res['payment']['action'] );
|
| 849 |
-
}
|
| 850 |
-
|
| 851 |
-
if(isset($newWalletId)){
|
| 852 |
-
$this->saveWallet($newWalletId);
|
| 853 |
-
}
|
| 854 |
-
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('CPT', $this->order);
|
| 855 |
-
}else{
|
| 856 |
-
if(isset($res) && is_array($res)){
|
| 857 |
-
$msgLog='PAYLINE ERROR : '.$res['result']['code']. ' ' . $res['result']['shortMessage'] . ' ('.$res['result']['longMessage'].')';
|
| 858 |
-
} elseif(isset($res) && is_string($res)){
|
| 859 |
-
$msgLog='PAYLINE ERROR : '.$res;
|
| 860 |
-
} else{
|
| 861 |
-
$msgLog='Error during order update (#'.$this->order->getIncrementId().')';
|
| 862 |
-
}
|
| 863 |
-
|
| 864 |
-
if (is_array($res) && !($res['result']['code'] == '02306' || $res['result']['code'] == '02533')) {
|
| 865 |
-
if ($res['result']['code'] == '02304' || $res['result']['code'] == '02324' || $res['result']['code'] == '02534') {
|
| 866 |
-
$abandonedStatus = Mage::getStoreConfig('payment/payline_common/resignation_order_status');
|
| 867 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$abandonedStatus,$msgLog,false);
|
| 868 |
-
} else {
|
| 869 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 870 |
-
}
|
| 871 |
-
}
|
| 872 |
-
|
| 873 |
-
Mage::helper('payline/logger')->log('[cptNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 874 |
-
$redirectUrl = $this->_getPaymentRefusedRedirectUrl();
|
| 875 |
-
}
|
| 876 |
-
$this->order->save();
|
| 877 |
-
} else {
|
| 878 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 879 |
-
}
|
| 880 |
-
return $redirectUrl;
|
| 881 |
-
}
|
| 882 |
-
|
| 883 |
-
/**
|
| 884 |
-
* Save NX payment result, called by the bank when the transaction is done
|
| 885 |
-
*/
|
| 886 |
-
public function nxNotifAction(){
|
| 887 |
-
$res = Mage::helper('payline')->initPayline('NX')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 888 |
-
if (isset($res['privateDataList']['privateData']['value'])){
|
| 889 |
-
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 890 |
-
}else{
|
| 891 |
-
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 892 |
-
if($privateDataList->key == 'orderRef'){
|
| 893 |
-
$orderRef = $privateDataList->value;
|
| 894 |
-
}
|
| 895 |
-
}
|
| 896 |
-
}
|
| 897 |
-
if (!isset($orderRef)){
|
| 898 |
-
$msgLog='Référence commande introuvable dans le résultat du paiement Nx';
|
| 899 |
-
Mage::helper('payline/logger')->log('[nxNotifAction] ' .$this->order->getIncrementId().' '.$msgLog);
|
| 900 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 901 |
-
}
|
| 902 |
-
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 903 |
-
|
| 904 |
-
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 905 |
-
|
| 906 |
-
if(isset($res['billingRecordList']['billingRecord'])){
|
| 907 |
-
$size = sizeof($res['billingRecordList']['billingRecord']);
|
| 908 |
-
}else{
|
| 909 |
-
$size = 0;
|
| 910 |
-
}
|
| 911 |
-
$billingRecord = false;
|
| 912 |
-
for($i=0;$i<$size;$i++){
|
| 913 |
-
if($res['billingRecordList']['billingRecord'][$i]->status == 1){
|
| 914 |
-
$txnId = $res['billingRecordList']['billingRecord'][$i]->transaction->id;
|
| 915 |
-
if(!$this->order->getTransaction($txnId)){
|
| 916 |
-
$billingRecord = $res['billingRecordList']['billingRecord'][$i];
|
| 917 |
-
}
|
| 918 |
-
}
|
| 919 |
-
}
|
| 920 |
-
if($billingRecord && $this->updateOrder($res,$billingRecord->transaction->id,'NX')) {
|
| 921 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 922 |
-
|
| 923 |
-
if($res['result']['code'] == '04003') {
|
| 924 |
-
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 925 |
-
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 926 |
-
} else if( $res['result']['code'] == '02501' ) { // credit card (CC) will expire
|
| 927 |
-
$statusScheduleAlert = Mage::getStoreConfig('payment/PaylineNX/status_when_payline_schedule_alert');
|
| 928 |
-
Mage::helper('payline')->setOrderStatus( $this->order, $statusScheduleAlert );
|
| 929 |
-
} else {
|
| 930 |
-
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 931 |
-
$this->order, $res['payment']['action'] );
|
| 932 |
-
}
|
| 933 |
-
|
| 934 |
-
if (isset($res['privateDataList']['privateData'][1]) && $res['privateDataList']['privateData'][1]->key=="newWalletId" && $res['privateDataList']['privateData'][1]->value!=''){
|
| 935 |
-
$this->saveWallet($res['privateDataList']['privateData'][1]->value);
|
| 936 |
-
}
|
| 937 |
-
$payment = $this->order->getPayment();
|
| 938 |
-
if ($payment->getBaseAmountPaid() != $payment->getBaseAmountOrdered()) {
|
| 939 |
-
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('NX', $this->order);
|
| 940 |
-
}
|
| 941 |
-
}else{
|
| 942 |
-
if(isset($res) && is_array($res)){
|
| 943 |
-
$msgLog='PAYLINE ERROR : '.$res['result']['code']. ' ' . $res['result']['shortMessage'] . ' ('.$res['result']['longMessage'].')';
|
| 944 |
-
} elseif(isset($res) && is_string($res)){
|
| 945 |
-
$msgLog='PAYLINE ERROR : '.$res;
|
| 946 |
-
} else{
|
| 947 |
-
$msgLog='Error during order update (#'.$this->order->getIncrementId().')';
|
| 948 |
-
}
|
| 949 |
-
|
| 950 |
-
if (is_array($res) && !($res['result']['code'] == '02306' || $res['result']['code'] == '02533')) {
|
| 951 |
-
if (is_array($res) && ($res['result']['code'] == '02304' || $res['result']['code'] == '02324' || $res['result']['code'] == '02534')) {
|
| 952 |
-
$abandonedStatus = Mage::getStoreConfig('payment/payline_common/resignation_order_status');
|
| 953 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$abandonedStatus,$msgLog,false);
|
| 954 |
-
} else {
|
| 955 |
-
$statusScheduleAlert = Mage::getStoreConfig('payment/PaylineNX/status_when_payline_schedule_alert');
|
| 956 |
-
if( !empty( $statusScheduleAlert ) ) { // if user conf is set
|
| 957 |
-
$failedOrderStatus = $statusScheduleAlert;
|
| 958 |
-
}
|
| 959 |
-
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 960 |
-
}
|
| 961 |
-
}
|
| 962 |
-
|
| 963 |
-
Mage::helper('payline/logger')->log('[nxNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 964 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 965 |
-
$redirectUrl = $this->_getPaymentRefusedRedirectUrl();
|
| 966 |
-
}
|
| 967 |
-
$this->order->save();
|
| 968 |
-
return $redirectUrl;
|
| 969 |
-
}
|
| 970 |
-
|
| 971 |
-
/**
|
| 972 |
-
* Method called by Payline to notify (except first) each term payment.
|
| 973 |
-
* Url to this action must be set in Payline personnal account.
|
| 974 |
-
*/
|
| 975 |
-
public function nxTermNotifAction()
|
| 976 |
-
{
|
| 977 |
-
$statusScheduleAlert = Mage::getStoreConfig('payment/PaylineNX/status_when_payline_schedule_alert');
|
| 978 |
-
$statusCCExpired = Mage::getStoreConfig('payment/PaylineNX/status_when_credit_card_schedule_is_expired');
|
| 979 |
-
if( !empty( $statusScheduleAlert ) || !empty( $statusCCExpired ) ) {
|
| 980 |
-
if( $this->isNxTermParamsOk( $_GET ) ) {
|
| 981 |
-
/* BILL = value required for terms notifications
|
| 982 |
-
WEBTRS = value for cash web payment */
|
| 983 |
-
if( $_GET['notificationType'] == 'BILL' ) { //
|
| 984 |
-
$transactionParams = array();
|
| 985 |
-
$transactionParams['transactionId'] = $_GET['transactionId'];
|
| 986 |
-
$transactionParams['orderRef'] = $_GET['orderRef'];
|
| 987 |
-
$transactionParams['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 988 |
-
$transactionParams['startDate'] = '';
|
| 989 |
-
$transactionParams['endDate'] = '';
|
| 990 |
-
$transactionParams['transactionHistory']= '';
|
| 991 |
-
$transactionParams['archiveSearch'] = '';
|
| 992 |
-
|
| 993 |
-
$res = Mage::helper('payline')->initPayline('NX')->getTransactionDetails( $transactionParams );
|
| 994 |
-
|
| 995 |
-
if( isset( $res )
|
| 996 |
-
&& is_array( $res )
|
| 997 |
-
&& isset( $res['result'] )
|
| 998 |
-
&& isset( $res['result']['code'] ) )
|
| 999 |
-
{
|
| 1000 |
-
$mustSave = true;
|
| 1001 |
-
switch( $res['result']['code'] ) {
|
| 1002 |
-
case '00000':
|
| 1003 |
-
case '02500':
|
| 1004 |
-
case '04003':
|
| 1005 |
-
$mustSave = false;
|
| 1006 |
-
break;
|
| 1007 |
-
case '02501': // payment card will expire
|
| 1008 |
-
if( !empty( $statusScheduleAlert ) ) {
|
| 1009 |
-
$this->order = $this->setOrderStatus( $statusScheduleAlert, $_GET['orderRef'] );
|
| 1010 |
-
break;
|
| 1011 |
-
}
|
| 1012 |
-
default: // if default => error (cc expired or other errors)
|
| 1013 |
-
if( !empty( $statusCCExpired ) ) {
|
| 1014 |
-
$this->order = $this->setOrderStatus( $statusCCExpired, $_GET['orderRef'] );
|
| 1015 |
-
} else {
|
| 1016 |
-
$mustSave = false;
|
| 1017 |
-
}
|
| 1018 |
-
break;
|
| 1019 |
-
}
|
| 1020 |
-
if( $mustSave ) { $this->order->save(); }
|
| 1021 |
-
} // end if ( isset($res) ...
|
| 1022 |
-
} // end if BILL
|
| 1023 |
-
} // end if $this->isNxTermParamsOk
|
| 1024 |
-
} // end if !empty( $statusScheduleAlert ) || !empty( $statusCCExpired )
|
| 1025 |
-
} // end func
|
| 1026 |
-
|
| 1027 |
-
/**
|
| 1028 |
-
* Check if $params contains all the required keys for PaylineSDK#getTransactionDetails()
|
| 1029 |
-
* @param $params {array} array params for PaylineSDK#getTransactionDetails(), should contain all keys required.
|
| 1030 |
-
* @return bool true if $params ok, otherwise false
|
| 1031 |
-
*/
|
| 1032 |
-
private function isNxTermParamsOk($params)
|
| 1033 |
-
{
|
| 1034 |
-
if( !isset( $params['notificationType'] ) ) return false;
|
| 1035 |
-
if( !isset( $params['paymentRecordId'] ) ) return false;
|
| 1036 |
-
if( !isset( $params['walletId'] ) ) return false;
|
| 1037 |
-
if( !isset( $params['transactionId'] ) ) return false;
|
| 1038 |
-
if( !isset( $params['billingRecordDate'] ) ) return false;
|
| 1039 |
-
if( !isset( $params['orderRef'] ) ) return false;
|
| 1040 |
-
return true;
|
| 1041 |
-
}
|
| 1042 |
-
|
| 1043 |
-
/**
|
| 1044 |
-
* Set an order status. If !isset($this->order) process order model from $orderRef
|
| 1045 |
-
* @param $status {string} status order to assign
|
| 1046 |
-
* @param $orderRef {string} entity_id order
|
| 1047 |
-
* @return Mage_Sales_Model_Order Return the order object with new status set
|
| 1048 |
-
*/
|
| 1049 |
-
private function setOrderStatus($status, $orderRef)
|
| 1050 |
-
{
|
| 1051 |
-
if( isset( $this->order ) ) {
|
| 1052 |
-
$order = $this->order;
|
| 1053 |
-
} else {
|
| 1054 |
-
$order = Mage::getModel('sales/order')
|
| 1055 |
-
->getCollection()
|
| 1056 |
-
->addFieldToFilter('increment_id', $orderRef)
|
| 1057 |
-
->getFirstItem();
|
| 1058 |
-
}
|
| 1059 |
-
Mage::helper('payline')->setOrderStatus( $order, $status );
|
| 1060 |
-
return $order;
|
| 1061 |
-
}
|
| 1062 |
-
|
| 1063 |
-
/**
|
| 1064 |
-
* Cancel a CPT payment request /order
|
| 1065 |
-
*/
|
| 1066 |
-
public function cptCancelAction(){
|
| 1067 |
-
$res = Mage::helper('payline')->initPayline('CPT')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 1068 |
-
|
| 1069 |
-
if (isset($res['privateDataList']['privateData']['value'])){
|
| 1070 |
-
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 1071 |
-
}else{
|
| 1072 |
-
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 1073 |
-
if($privateDataList->key == 'orderRef'){
|
| 1074 |
-
$orderRef = $privateDataList->value;
|
| 1075 |
-
}
|
| 1076 |
-
}
|
| 1077 |
-
}
|
| 1078 |
-
if (!isset($orderRef)){
|
| 1079 |
-
$msgLog='Couldn\'t find order increment id in cpt payment cancel result';
|
| 1080 |
-
Mage::helper('payline/logger')->log('[cptCancelAction] ' .$this->order->getIncrementId().$msgLog);
|
| 1081 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 1082 |
-
$this->_redirect($redirectUrl);
|
| 1083 |
-
return;
|
| 1084 |
-
}
|
| 1085 |
-
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 1086 |
-
$msg = '';
|
| 1087 |
-
if(is_string($res)) {
|
| 1088 |
-
$msg='PAYLINE ERROR : '.$res;
|
| 1089 |
-
Mage::helper('payline/logger')->log('[cptCancelAction] ' .$this->order->getIncrementId(). ' ' . $msg);
|
| 1090 |
-
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1091 |
-
} elseif (substr($res['result']['code'], 0, 2)=='01' || substr($res['result']['code'],0,3)=='021'){
|
| 1092 |
-
//Invalid transaction or error during the process on Payline side
|
| 1093 |
-
//No error display, the customer is already told on the Payline side
|
| 1094 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 1095 |
-
$msg='PAYLINE ERROR : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1096 |
-
Mage::helper('payline/logger')->log('[cptCancelAction] ' .$this->order->getIncrementId().$msg);
|
| 1097 |
-
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1098 |
-
}else{
|
| 1099 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is canceled'));
|
| 1100 |
-
$msg='PAYLINE INFO : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1101 |
-
//Transaction cancelled by customer
|
| 1102 |
-
$cancelStatus = Mage::getStoreConfig('payment/payline_common/canceled_order_status');
|
| 1103 |
-
}
|
| 1104 |
-
$this->cancelOrder($cancelStatus, $res['result']['code'], $msg);
|
| 1105 |
-
}
|
| 1106 |
-
|
| 1107 |
-
/**
|
| 1108 |
-
* Cancel a NX payment request /order
|
| 1109 |
-
*/
|
| 1110 |
-
public function nxCancelAction(){
|
| 1111 |
-
$res = Mage::helper('payline')->initPayline('NX')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 1112 |
-
if (isset($res['privateDataList']['privateData']['value'])){
|
| 1113 |
-
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 1114 |
-
}else{
|
| 1115 |
-
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 1116 |
-
if($privateDataList->key == 'orderRef'){
|
| 1117 |
-
$orderRef = $privateDataList->value;
|
| 1118 |
-
}
|
| 1119 |
-
}
|
| 1120 |
-
}
|
| 1121 |
-
if (!isset($orderRef)){
|
| 1122 |
-
$msgLog='Couldn\'t find order increment id in nx payment cancel result';
|
| 1123 |
-
Mage::helper('payline/logger')->log('[nxCancelAction] ' .$this->order->getIncrementId().$msgLog);
|
| 1124 |
-
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 1125 |
-
}
|
| 1126 |
-
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 1127 |
-
|
| 1128 |
-
if (is_string($res)) {
|
| 1129 |
-
$msg='PAYLINE ERROR : '.$res;
|
| 1130 |
-
Mage::helper('payline/logger')->log('[nxCancelAction] ' .$this->order->getIncrementId(). ' ' . $msg);
|
| 1131 |
-
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1132 |
-
} elseif (substr($res['result']['code'], 0, 2)=='01' || substr($res['result']['code'],0,3)=='021'){
|
| 1133 |
-
//Invalid transaction or error during the process on Payline side
|
| 1134 |
-
//No error display, the customer is already told on the Payline side
|
| 1135 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 1136 |
-
$msg='PAYLINE ERROR : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1137 |
-
Mage::helper('payline/logger')->log('[nxCancelAction] ' .$this->order->getIncrementId().$msg);
|
| 1138 |
-
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1139 |
-
}else{
|
| 1140 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is canceled'));
|
| 1141 |
-
$msg='PAYLINE INFO : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1142 |
-
//Transaction cancelled by customer
|
| 1143 |
-
$cancelStatus = Mage::getStoreConfig('payment/payline_common/canceled_order_status');
|
| 1144 |
-
}
|
| 1145 |
-
$this->cancelOrder($cancelStatus, $res['result']['code'],$msg);
|
| 1146 |
-
}
|
| 1147 |
-
|
| 1148 |
-
protected function _getPaymentRefusedRedirectUrl()
|
| 1149 |
-
{
|
| 1150 |
-
$option = Mage::getStoreConfig('payment/payline_common/return_payment_refused');
|
| 1151 |
-
switch($option) {
|
| 1152 |
-
case Monext_Payline_Model_Datasource_Return::CART_EMPTY :
|
| 1153 |
-
$url = Mage::getUrl('checkout/onepage');
|
| 1154 |
-
break;
|
| 1155 |
-
case Monext_Payline_Model_Datasource_Return::HISTORY_ORDERS :
|
| 1156 |
-
$url = Mage::getUrl('sales/order/history');
|
| 1157 |
-
break;
|
| 1158 |
-
case Monext_Payline_Model_Datasource_Return::CART_FULL :
|
| 1159 |
-
$url = Mage::getUrl('sales/order/reorder', array('order_id' => $this->order->getId()));
|
| 1160 |
-
break;
|
| 1161 |
-
default :
|
| 1162 |
-
$url = Mage::getUrl('checkout/onepage');
|
| 1163 |
-
|
| 1164 |
-
}
|
| 1165 |
-
|
| 1166 |
-
return $url;
|
| 1167 |
-
}
|
| 1168 |
-
}
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* This controller manage all payline payment
|
| 5 |
+
* cptAction, directAction, nxAction & walletAction are called just after the checkout validation
|
| 6 |
+
* the return/notify/cancel are the urls called by Payline
|
| 7 |
+
* An exception for notifyAction : it's not directly called by Payline, since it couldn't work in a local environment; it's then called by the returnAction.
|
| 8 |
+
* @author fague
|
| 9 |
+
*
|
| 10 |
+
*/
|
| 11 |
+
class Monext_Payline_IndexController extends Mage_Core_Controller_Front_Action
|
| 12 |
+
{
|
| 13 |
+
/* @var $order Mage_Sales_Model_Order */
|
| 14 |
+
private $order;
|
| 15 |
+
|
| 16 |
+
protected function _getCustomerSession()
|
| 17 |
+
{
|
| 18 |
+
return Mage::getSingleton('customer/session');
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
/**
|
| 22 |
+
* Add a transaction to the current order, depending on the payment type (Auth or Auth+Capture)
|
| 23 |
+
* @param string $transactionId
|
| 24 |
+
* @param string $paymentAction
|
| 25 |
+
* @return null
|
| 26 |
+
*/
|
| 27 |
+
private function addTransaction($transactionId,$paymentAction){
|
| 28 |
+
if (version_compare(Mage::getVersion(), '1.4', 'ge')){
|
| 29 |
+
/* @var $payment Mage_Payment_Model_Method_Abstract */
|
| 30 |
+
$payment=$this->order->getPayment();
|
| 31 |
+
if(!$payment->getTransaction($transactionId)){ // if transaction isn't saved yet
|
| 32 |
+
$transaction = Mage::getModel('sales/order_payment_transaction');
|
| 33 |
+
$transaction->setTxnId($transactionId);
|
| 34 |
+
$transaction->setOrderPaymentObject($this->order->getPayment());
|
| 35 |
+
if($paymentAction == '100'){
|
| 36 |
+
|
| 37 |
+
}else if ($paymentAction == '101'){
|
| 38 |
+
$transaction->setTxnType(Mage_Sales_Model_Order_Payment_Transaction::TYPE_PAYMENT);
|
| 39 |
+
}
|
| 40 |
+
$transaction->save();
|
| 41 |
+
$this->order->sendNewOrderEmail();
|
| 42 |
+
}
|
| 43 |
+
}else{
|
| 44 |
+
$this->order->getPayment()->setLastTransId($transactionId);
|
| 45 |
+
$this->order->sendNewOrderEmail();
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
/**
|
| 50 |
+
*
|
| 51 |
+
* Set the order's status to the provided status (must be part of the cancelled state)
|
| 52 |
+
* Reinit stocks & redirect to checkout
|
| 53 |
+
* @param string $cancelStatus
|
| 54 |
+
*/
|
| 55 |
+
private function cancelOrder($cancelStatus, $resCode = '',$message = ''){
|
| 56 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$cancelStatus,$message,false);
|
| 57 |
+
$this->updateStock();
|
| 58 |
+
$this->order->save();
|
| 59 |
+
|
| 60 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
/**
|
| 64 |
+
* Check if the customer is logged, and if it has a wallet
|
| 65 |
+
* If not & if there is a walletId in the result from Payline, we save it
|
| 66 |
+
*/
|
| 67 |
+
public function saveWallet($walletId){
|
| 68 |
+
if (!Mage::getStoreConfig('payment/payline_common/automate_wallet_subscription')){
|
| 69 |
+
return;
|
| 70 |
+
}
|
| 71 |
+
$customer=Mage::getSingleton('customer/session');
|
| 72 |
+
if ($customer->isLoggedIn()){
|
| 73 |
+
$customer=Mage::getModel('customer/customer')->load($customer->getId());
|
| 74 |
+
if (!$customer->getWalletId()){
|
| 75 |
+
$customer->setWalletId($walletId);
|
| 76 |
+
$customer->save();
|
| 77 |
+
}
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
/**
|
| 82 |
+
*
|
| 83 |
+
* Initialise the requests param array
|
| 84 |
+
* @return array
|
| 85 |
+
*/
|
| 86 |
+
private function init(){
|
| 87 |
+
$array = array();
|
| 88 |
+
|
| 89 |
+
$_session = Mage::getSingleton('checkout/session');
|
| 90 |
+
|
| 91 |
+
$this->order = Mage::getModel('sales/order')->loadByIncrementId($_session->getLastRealOrderId());
|
| 92 |
+
$_numericCurrencyCode = Mage::helper('payline')->getNumericCurrencyCode($this->order->getBaseCurrencyCode());
|
| 93 |
+
|
| 94 |
+
// PAYMENT
|
| 95 |
+
$array['payment']['amount'] = round($this->order->getBaseGrandTotal()*100);
|
| 96 |
+
$array['payment']['currency'] = $_numericCurrencyCode;
|
| 97 |
+
|
| 98 |
+
// ORDER
|
| 99 |
+
//
|
| 100 |
+
$array['order']['ref'] = substr($this->order->getRealOrderId(),0,50);
|
| 101 |
+
$array['order']['amount'] = $array['payment']['amount'];
|
| 102 |
+
$array['order']['currency'] = $_numericCurrencyCode;
|
| 103 |
+
|
| 104 |
+
$billingAddress = $this->order->getBillingAddress();
|
| 105 |
+
|
| 106 |
+
// BUYER
|
| 107 |
+
$buyerLastName = substr($this->order->getCustomerLastname(),0,50);
|
| 108 |
+
if($buyerLastName == null || $buyerLastName == ''){
|
| 109 |
+
$buyerLastName = substr($billingAddress->getLastname(),0,50);
|
| 110 |
+
}
|
| 111 |
+
$buyerFirstName = substr($this->order->getCustomerFirstname(),0,50);
|
| 112 |
+
if($buyerFirstName == null || $buyerFirstName == ''){
|
| 113 |
+
$buyerFirstName = substr($billingAddress->getFirstname(),0,50);
|
| 114 |
+
}
|
| 115 |
+
$array['buyer']['lastName'] = Mage::helper('payline')->encodeString($buyerLastName);
|
| 116 |
+
$array['buyer']['firstName'] = Mage::helper('payline')->encodeString($buyerFirstName);
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
$email=$this->order->getCustomerEmail();
|
| 120 |
+
$pattern = '/\+/i';
|
| 121 |
+
$charPlusExist = preg_match($pattern, $email);
|
| 122 |
+
if (strlen($email)<=50 && Zend_Validate::is($email, 'EmailAddress') && !$charPlusExist) {
|
| 123 |
+
$array['buyer']['email']=Mage::helper('payline')->encodeString($email);
|
| 124 |
+
}else{
|
| 125 |
+
$array['buyer']['email'] = '';
|
| 126 |
+
}
|
| 127 |
+
$array['buyer']['customerId'] = Mage::helper('payline')->encodeString($email);
|
| 128 |
+
|
| 129 |
+
// ADDRESS : !!!WARNING!!! PaylineSDK v4.33 reverse billingAddress & shippingAdress.
|
| 130 |
+
// Take this : https://www.youtube.com/watch?v=MA6kXUgZ7lE&list=PLpyrjJvJ7GJ7bM5GjzwHvZIqe6c5l3iF6
|
| 131 |
+
$array['shippingAddress']['name'] = Mage::helper('payline')->encodeString(substr($billingAddress->getName(),0,100));
|
| 132 |
+
$array['shippingAddress']['street1'] = Mage::helper('payline')->encodeString(substr($billingAddress->getStreet1(),0,100));
|
| 133 |
+
$array['shippingAddress']['street2'] = Mage::helper('payline')->encodeString(substr($billingAddress->getStreet2(),0,100));
|
| 134 |
+
$array['shippingAddress']['cityName'] = Mage::helper('payline')->encodeString(substr($billingAddress->getCity(),0,40));
|
| 135 |
+
$array['shippingAddress']['zipCode'] = substr($billingAddress->getPostcode(),0,12);
|
| 136 |
+
//The $billing->getCountry() returns a 2 letter ISO2, should be fine
|
| 137 |
+
$array['shippingAddress']['country'] = $billingAddress->getCountry();
|
| 138 |
+
$forbidenCars = array(' ','.','(',')','-');
|
| 139 |
+
$phone = str_replace($forbidenCars,'',$billingAddress->getTelephone());
|
| 140 |
+
$regexpTel='/^\+?[0-9]{1,14}$/';
|
| 141 |
+
if (preg_match($regexpTel, $phone)){
|
| 142 |
+
$array['shippingAddress']['phone']=$phone;
|
| 143 |
+
}else{
|
| 144 |
+
$array['shippingAddress']['phone']='';
|
| 145 |
+
}
|
| 146 |
+
$array['billingAddress'] = null;
|
| 147 |
+
return $array;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
/**
|
| 151 |
+
* Add payment transaction to the order, reinit stocks if needed
|
| 152 |
+
* @param $res array result of a request
|
| 153 |
+
* @param $transactionId
|
| 154 |
+
* @return boolean (true=>valid payment, false => invalid payment)
|
| 155 |
+
*/
|
| 156 |
+
private function updateOrder($res,$transactionId, $paymentType='CPT'){
|
| 157 |
+
Mage::helper('payline/logger')->log("[updateOrder] Mise à jour commande ".$this->order->getIncrementId()." (mode $paymentType) avec la transaction $transactionId");
|
| 158 |
+
$orderOk = false;
|
| 159 |
+
if( $res['result']['code'] ) {
|
| 160 |
+
$resultCode = $res['result']['code'];
|
| 161 |
+
$acceptedCodes = array('00000','02500','02501','04003');
|
| 162 |
+
if( in_array( $resultCode, $acceptedCodes ) ) { // transaction OK
|
| 163 |
+
$orderOk = true;
|
| 164 |
+
if($paymentType == 'NX') {
|
| 165 |
+
Mage::helper('payline/logger')->log("[updateOrder] Cas du paiement NX");
|
| 166 |
+
if (isset($res['billingRecordList']['billingRecord'][0])) {
|
| 167 |
+
$code_echeance = $res['billingRecordList']['billingRecord'][0]->result->code;
|
| 168 |
+
if($code_echeance == '00000' || $code_echeance == '02501'){
|
| 169 |
+
Mage::helper('payline/logger')->log("[updateOrder] première échéance paiement NX OK");
|
| 170 |
+
$orderOk = true;
|
| 171 |
+
}else{
|
| 172 |
+
Mage::helper('payline/logger')->log("[updateOrder] première échéance paiement NX refusée, code ".$code_echeance);
|
| 173 |
+
$orderOk = false;
|
| 174 |
+
}
|
| 175 |
+
}else{
|
| 176 |
+
Mage::helper('payline/logger')->log("[updateOrder] La première échéance de paiement est à venir");
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
$this->order->getPayment()->setCcTransId($transactionId);
|
| 181 |
+
if (isset($res['payment']) && isset($res['payment']['action'])){
|
| 182 |
+
$paymentAction=$res['payment']['action'];
|
| 183 |
+
}else{
|
| 184 |
+
$paymentAction= Mage::getStoreConfig('payment/Payline'.$paymentType.'/payline_payment_action');
|
| 185 |
+
}
|
| 186 |
+
$this->addTransaction($transactionId, $paymentAction);
|
| 187 |
+
}else{
|
| 188 |
+
$this->updateStock();
|
| 189 |
+
}
|
| 190 |
+
}
|
| 191 |
+
$this->order->save();
|
| 192 |
+
return $orderOk;
|
| 193 |
+
}
|
| 194 |
+
|
| 195 |
+
/**
|
| 196 |
+
* Reinit stocks
|
| 197 |
+
*/
|
| 198 |
+
private function updateStock(){
|
| 199 |
+
if(Mage::getStoreConfig(Mage_CatalogInventory_Model_Stock_Item::XML_PATH_CAN_SUBTRACT) == 1){ // le stock a été décrémenté à la commande
|
| 200 |
+
// ré-incrémentation du stock
|
| 201 |
+
$items = $this->order->getAllItems();
|
| 202 |
+
if ($items) {
|
| 203 |
+
foreach($items as $item) {
|
| 204 |
+
$quantity = $item->getQtyOrdered(); // get Qty ordered
|
| 205 |
+
$product_id = $item->getProductId(); // get its ID
|
| 206 |
+
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id); // Load the stock for this product
|
| 207 |
+
$stock->setQty($stock->getQty()+$quantity); // Set to new Qty
|
| 208 |
+
//if qtty = 0 after order and order fails, set stock status is_in_stock to true
|
| 209 |
+
if ( $stock->getQty() > $stock->getMinQty() && !$stock->getIsInStock() ) {
|
| 210 |
+
$stock->setIsInStock( 1 );
|
| 211 |
+
}
|
| 212 |
+
$stock->save(); // Save
|
| 213 |
+
continue;
|
| 214 |
+
}
|
| 215 |
+
}
|
| 216 |
+
}
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
/**
|
| 220 |
+
* Force this action code of some payment methods to the given action code
|
| 221 |
+
* @param $paymentMethod {string}
|
| 222 |
+
* @param $array {array} conf array. $array is a reference, so no need to return it.
|
| 223 |
+
* @param $actionCode {string} forced action code set in $array
|
| 224 |
+
*/
|
| 225 |
+
private function forcePaymentActionTo($paymentMethod, &$array, $actionCode)
|
| 226 |
+
{
|
| 227 |
+
switch( $paymentMethod ) {
|
| 228 |
+
case 'UKASH':
|
| 229 |
+
case 'MONEYCLIC':
|
| 230 |
+
case 'TICKETSURF':
|
| 231 |
+
case 'SKRILL(MONEYBOOKERS)':
|
| 232 |
+
case 'LEETCHI':
|
| 233 |
+
Mage::helper('payline/logger')->log('[cptAction] order '.$array['order']['ref'].' - '.$paymentMethod.' selected => payment action is forced to '.$actionCode);
|
| 234 |
+
$array['payment']['action'] = $actionCode;
|
| 235 |
+
break;
|
| 236 |
+
default: break;
|
| 237 |
+
}
|
| 238 |
+
}
|
| 239 |
+
|
| 240 |
+
/**
|
| 241 |
+
* Initialize the cpt payment request
|
| 242 |
+
*/
|
| 243 |
+
public function cptAction(){
|
| 244 |
+
//Check if wallet is sendable
|
| 245 |
+
//Must be done before call to Payline helper initialisation
|
| 246 |
+
$expiredWalletId=false;
|
| 247 |
+
if(Mage::getSingleton('customer/session')->isLoggedIn()){
|
| 248 |
+
$customer=Mage::getSingleton('customer/session')->getCustomer();
|
| 249 |
+
$customer=Mage::getModel('customer/customer')->load($customer->getId());
|
| 250 |
+
if ($customer->getWalletId() && !Mage::getModel('payline/wallet')->checkExpirationDate()){
|
| 251 |
+
$expiredWalletId=true;
|
| 252 |
+
}
|
| 253 |
+
}
|
| 254 |
+
|
| 255 |
+
$array = $this->init();
|
| 256 |
+
/* @var $paylineSDK PaylineSDK */
|
| 257 |
+
$helperPayline = Mage::helper('payline');
|
| 258 |
+
$paylineSDK = $helperPayline->initPayline('CPT',$array['payment']['currency']);
|
| 259 |
+
$paymentMethod = $this->order->getPayment()->getCcType();
|
| 260 |
+
$array['payment']['action'] = Mage::getStoreConfig('payment/PaylineCPT/payline_payment_action');
|
| 261 |
+
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 262 |
+
if($paymentMethod) {
|
| 263 |
+
// debut ajout FSZ 15/11/2012
|
| 264 |
+
Mage::helper('payline/logger')->log('[cptAction] order '.$array['order']['ref'].' - customer selected contract '.$paymentMethod);
|
| 265 |
+
|
| 266 |
+
$contractCPT = Mage::getModel('payline/contract')
|
| 267 |
+
->getCollection()
|
| 268 |
+
->addFieldToFilter( 'number', $paymentMethod )
|
| 269 |
+
->getFirstItem();
|
| 270 |
+
|
| 271 |
+
// $paymentMethod = contract number. Filter must be on contract type
|
| 272 |
+
$this->forcePaymentActionTo( $contractCPT->getContractType(), $array, '101' );
|
| 273 |
+
|
| 274 |
+
// fin ajout FSZ 15/11/2012
|
| 275 |
+
$array['payment']['contractNumber'] = $paymentMethod;
|
| 276 |
+
$array['contracts'] = array($paymentMethod);
|
| 277 |
+
} else {
|
| 278 |
+
$array['payment']['contractNumber'] = $helperPayline->contractNumber;
|
| 279 |
+
}
|
| 280 |
+
$array['payment']['mode'] = 'CPT';
|
| 281 |
+
|
| 282 |
+
//second contracts
|
| 283 |
+
$array['secondContracts'] = explode(';',$helperPayline->secondaryContractNumberList);
|
| 284 |
+
|
| 285 |
+
|
| 286 |
+
//If wallet isn't sendable...
|
| 287 |
+
if ($expiredWalletId){
|
| 288 |
+
$helperPayline->walletId=null;
|
| 289 |
+
}
|
| 290 |
+
|
| 291 |
+
// PRIVATE DATA
|
| 292 |
+
$privateData = array();
|
| 293 |
+
$privateData['key'] = "orderRef";
|
| 294 |
+
$privateData['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 295 |
+
$paylineSDK->setPrivate($privateData);
|
| 296 |
+
|
| 297 |
+
//ORDER DETAILS (optional)
|
| 298 |
+
$items = $this->order->getAllItems();
|
| 299 |
+
if ($items) {
|
| 300 |
+
if(count($items)>100) $items=array_slice($items,0,100);
|
| 301 |
+
foreach($items as $item) {
|
| 302 |
+
$itemPrice = round($item->getPrice()*100);
|
| 303 |
+
if($itemPrice > 0){
|
| 304 |
+
$product = array();
|
| 305 |
+
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 306 |
+
$product['price'] = round($item->getPrice()*100);
|
| 307 |
+
$product['quantity'] = round($item->getQtyOrdered());
|
| 308 |
+
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 309 |
+
$paylineSDK->setItem($product);
|
| 310 |
+
}
|
| 311 |
+
continue;
|
| 312 |
+
}
|
| 313 |
+
}
|
| 314 |
+
|
| 315 |
+
//WALLET
|
| 316 |
+
if(Mage::getStoreConfig('payment/PaylineCPT/send_wallet_id')) {
|
| 317 |
+
if (!isset($array['buyer']['walletId'])) {
|
| 318 |
+
if (isset($helperPayline->walletId)) {
|
| 319 |
+
$array['buyer']['walletId'] = $helperPayline->walletId;
|
| 320 |
+
}
|
| 321 |
+
}
|
| 322 |
+
if ($helperPayline->canSubscribeWallet()) {
|
| 323 |
+
//If the wallet is new (registered during payment), we must save it in the private data since it's not sent back by default
|
| 324 |
+
if ($helperPayline->isNewWallet) {
|
| 325 |
+
if ($helperPayline->walletId) {
|
| 326 |
+
$paylineSDK->setPrivate(array('key'=>'newWalletId','value'=>$helperPayline->walletId));
|
| 327 |
+
}
|
| 328 |
+
}
|
| 329 |
+
}
|
| 330 |
+
}
|
| 331 |
+
|
| 332 |
+
// ADD CONTRACT WALLET ARRAY TO $array
|
| 333 |
+
$array['walletContracts'] = Mage::helper('payline')->buildContractNumberWalletList();
|
| 334 |
+
|
| 335 |
+
// EXECUTE
|
| 336 |
+
try{
|
| 337 |
+
$result = $paylineSDK->doWebPayment($array);
|
| 338 |
+
}catch(Exception $e){
|
| 339 |
+
Mage::logException($e);
|
| 340 |
+
$this->updateStock();
|
| 341 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 342 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 343 |
+
$msgLog='Unknown PAYLINE ERROR (payline unreachable?)';
|
| 344 |
+
Mage::helper('payline/logger')->log('[cptAction] ' .$this->order->getIncrementId().' '. $msgLog);
|
| 345 |
+
$this->_redirect('checkout/onepage');
|
| 346 |
+
return;
|
| 347 |
+
}
|
| 348 |
+
// RESPONSE
|
| 349 |
+
$initStatus = Mage::getStoreConfig('payment/payline_common/init_order_status');
|
| 350 |
+
if(isset($result) && is_array($result) && $result['result']['code'] == '00000'){
|
| 351 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,'',false);
|
| 352 |
+
$this->order->save();
|
| 353 |
+
header("location:".$result['redirectURL']);
|
| 354 |
+
exit();
|
| 355 |
+
}else {//Payline error
|
| 356 |
+
$this->updateStock();
|
| 357 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 358 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 359 |
+
if (isset($result) && is_array($result)){
|
| 360 |
+
$msgLog='PAYLINE ERROR : '.$result['result']['code']. ' ' . $result['result']['shortMessage'] . ' ('.$result['result']['longMessage'] . ')';
|
| 361 |
+
} elseif (isset($result) && is_string($result)){
|
| 362 |
+
$msgLog='PAYLINE ERROR : '.$result;
|
| 363 |
+
} else{
|
| 364 |
+
$msgLog='Unknown PAYLINE ERROR';
|
| 365 |
+
}
|
| 366 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,$msgLog,false);
|
| 367 |
+
$this->order->save();
|
| 368 |
+
Mage::helper('payline/logger')->log('[cptAction] ' .$this->order->getIncrementId().' '.$msgLog);
|
| 369 |
+
$this->_redirect('checkout/onepage');
|
| 370 |
+
return;
|
| 371 |
+
}
|
| 372 |
+
}
|
| 373 |
+
|
| 374 |
+
/**
|
| 375 |
+
* Initialize & process the direct payment request
|
| 376 |
+
*/
|
| 377 |
+
public function directAction(){
|
| 378 |
+
$array = $this->init();
|
| 379 |
+
$paylineSDK = Mage::helper('payline')->initPayline('DIRECT',$array['payment']['currency']);
|
| 380 |
+
|
| 381 |
+
//PAYMENT
|
| 382 |
+
$array['payment']['action'] = Mage::getStoreConfig('payment/PaylineDIRECT/payline_payment_action');
|
| 383 |
+
$array['payment']['mode'] = 'CPT';
|
| 384 |
+
|
| 385 |
+
$contract = Mage::getModel('payline/contract')->load($_SESSION['payline_ccdata']->cc_type);
|
| 386 |
+
$array['payment']['contractNumber'] = $contract->getNumber();
|
| 387 |
+
|
| 388 |
+
//ORDER
|
| 389 |
+
$array['order']['date'] = date("d/m/Y H:i");
|
| 390 |
+
|
| 391 |
+
//PRIVATE DATA
|
| 392 |
+
$privateData1 = array();
|
| 393 |
+
$privateData1['key'] = 'orderRef';
|
| 394 |
+
$privateData1['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 395 |
+
$paylineSDK->setPrivate($privateData1);
|
| 396 |
+
|
| 397 |
+
//ORDER DETAILS (optional)
|
| 398 |
+
$items = $this->order->getAllItems();
|
| 399 |
+
if ($items) {
|
| 400 |
+
if(count($items)>100) $items=array_slice($items,0,100);
|
| 401 |
+
foreach($items as $item) {
|
| 402 |
+
$itemPrice = round($item->getPrice()*100);
|
| 403 |
+
if($itemPrice > 0){
|
| 404 |
+
$product = array();
|
| 405 |
+
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 406 |
+
$product['price'] = round($item->getPrice()*100);
|
| 407 |
+
$product['quantity'] = round($item->getQtyOrdered());
|
| 408 |
+
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 409 |
+
$paylineSDK->setItem($product);
|
| 410 |
+
}
|
| 411 |
+
continue;
|
| 412 |
+
}
|
| 413 |
+
}
|
| 414 |
+
// CARD INFO
|
| 415 |
+
$array['card']['number'] = $_SESSION['payline_ccdata']->cc_number;
|
| 416 |
+
$array['card']['cardholder'] = $_SESSION['payline_ccdata']->cc_owner;
|
| 417 |
+
$array['card']['type'] = $contract->getContractType();
|
| 418 |
+
$array['card']['expirationDate'] = $_SESSION['payline_ccdata']->cc_exp_month.$_SESSION['payline_ccdata']->cc_exp_year;
|
| 419 |
+
$array['card']['cvx'] = $_SESSION['payline_ccdata']->cc_cid;
|
| 420 |
+
|
| 421 |
+
// Customer IP
|
| 422 |
+
$array['buyer']['ip'] = Mage::helper('core/http')->getRemoteAddr();
|
| 423 |
+
|
| 424 |
+
//3D secure
|
| 425 |
+
$array['3DSecure'] = array();
|
| 426 |
+
|
| 427 |
+
//BANK ACCOUNT DATA
|
| 428 |
+
$array['BankAccountData'] = array();
|
| 429 |
+
|
| 430 |
+
//version
|
| 431 |
+
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 432 |
+
// OWNER
|
| 433 |
+
$array['owner']['lastName'] = Mage::helper('payline')->encodeString($_SESSION['payline_ccdata']->cc_owner);
|
| 434 |
+
|
| 435 |
+
try{
|
| 436 |
+
$author_result = $paylineSDK->doAuthorization($array);
|
| 437 |
+
}catch(Exception $e){
|
| 438 |
+
Mage::logException($e);
|
| 439 |
+
$this->updateStock();
|
| 440 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 441 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 442 |
+
$msgLog='Unknown PAYLINE ERROR (payline unreachable?)';
|
| 443 |
+
Mage::helper('payline/logger')->log('[directAction] ' .$this->order->getIncrementId().$msgLog);
|
| 444 |
+
$this->_redirect('checkout/onepage');
|
| 445 |
+
return;
|
| 446 |
+
}
|
| 447 |
+
// RESPONSE
|
| 448 |
+
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 449 |
+
if(isset($author_result) && is_array($author_result) && $author_result['result']['code'] == '00000'){
|
| 450 |
+
$array_details = array();
|
| 451 |
+
$array_details['orderRef'] = $this->order->getRealOrderId();
|
| 452 |
+
$array_details['transactionId'] = $author_result['transaction']['id'];
|
| 453 |
+
$array_details['startDate'] = '';
|
| 454 |
+
$array_details['endDate'] = '';
|
| 455 |
+
$array_details['transactionHistory']= '';
|
| 456 |
+
$array_details['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 457 |
+
$array_details['archiveSearch'] = '';
|
| 458 |
+
$detail_result = $paylineSDK->getTransactionDetails($array_details);
|
| 459 |
+
|
| 460 |
+
if($this->updateOrder($detail_result,$detail_result['transaction']['id'], 'DIRECT')){
|
| 461 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 462 |
+
if($detail_result['result']['code'] == '04003') {
|
| 463 |
+
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 464 |
+
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 465 |
+
} else {
|
| 466 |
+
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 467 |
+
$this->order, $array['payment']['action'] );
|
| 468 |
+
}
|
| 469 |
+
|
| 470 |
+
$array['wallet']['lastName'] = $array['buyer']['lastName'];
|
| 471 |
+
$array['wallet']['firstName'] = $array['buyer']['firstName'];
|
| 472 |
+
$array['wallet']['email'] = $array['buyer']['email'];
|
| 473 |
+
// remember, the Beast is not so far
|
| 474 |
+
$array['address'] = $array['shippingAddress'];
|
| 475 |
+
$array['ownerAddress'] = null;
|
| 476 |
+
|
| 477 |
+
Mage::helper('payline')->createWalletForCurrentCustomer($paylineSDK, $array);
|
| 478 |
+
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('DIRECT', $this->order);
|
| 479 |
+
$this->order->save();
|
| 480 |
+
Mage_Core_Controller_Varien_Action::_redirectSuccess($redirectUrl);
|
| 481 |
+
}else{
|
| 482 |
+
$msgLog='Error during order update (#'.$this->order->getIncrementId().')'."\n";
|
| 483 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 484 |
+
$this->order->save();
|
| 485 |
+
|
| 486 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 487 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 488 |
+
Mage::helper('payline/logger')->log('[directAction] ' .$this->order->getIncrementId().$msgLog);
|
| 489 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 490 |
+
return;
|
| 491 |
+
}
|
| 492 |
+
}else {
|
| 493 |
+
if(isset($author_result) && is_array($author_result)){
|
| 494 |
+
$msgLog='PAYLINE ERROR : '.$author_result['result']['code']. ' ' . $author_result['result']['shortMessage'] . ' ('.$author_result['result']['longMessage'].')';
|
| 495 |
+
} elseif(isset($author_result) && is_string($author_result)){
|
| 496 |
+
$msgLog='PAYLINE ERROR : '. $author_result;
|
| 497 |
+
} else{
|
| 498 |
+
$msgLog='Unknown PAYLINE ERROR';
|
| 499 |
+
}
|
| 500 |
+
|
| 501 |
+
$this->updateStock();
|
| 502 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 503 |
+
$this->order->save();
|
| 504 |
+
|
| 505 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 506 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 507 |
+
Mage::helper('payline/logger')->log('[directAction] ' .$this->order->getIncrementId().$msgLog);
|
| 508 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 509 |
+
return;
|
| 510 |
+
}
|
| 511 |
+
}
|
| 512 |
+
|
| 513 |
+
/** Initialisize a WALLET payment request
|
| 514 |
+
*
|
| 515 |
+
*/
|
| 516 |
+
/**
|
| 517 |
+
* Initialize & process a wallet direct payment request
|
| 518 |
+
*/
|
| 519 |
+
public function walletAction(){
|
| 520 |
+
$array = $this->init();
|
| 521 |
+
$paylineSDK = Mage::helper('payline')->initPayline('WALLET',$array['payment']['currency']);
|
| 522 |
+
|
| 523 |
+
//PAYMENT
|
| 524 |
+
$array['payment']['action'] = Mage::getStoreConfig('payment/PaylineWALLET/payline_payment_action');
|
| 525 |
+
$array['payment']['mode'] = 'CPT';
|
| 526 |
+
|
| 527 |
+
//Get the wallet contract number from card type
|
| 528 |
+
$wallet=Mage::getModel('payline/wallet')->getWalletData();
|
| 529 |
+
$contract = Mage::getModel('payline/contract')
|
| 530 |
+
->getCollection()
|
| 531 |
+
->addFilterStatus(true,Mage::app()->getStore()->getId())
|
| 532 |
+
->addFieldToFilter('contract_type',$wallet['card']['type'])
|
| 533 |
+
->getFirstItem();
|
| 534 |
+
|
| 535 |
+
$array['payment']['contractNumber']= $contract->getNumber();
|
| 536 |
+
|
| 537 |
+
//ORDER
|
| 538 |
+
$array['order']['date'] = date("d/m/Y H:i");
|
| 539 |
+
|
| 540 |
+
//PRIVATE DATA
|
| 541 |
+
$privateData1 = array();
|
| 542 |
+
$privateData1['key'] = 'orderRef';
|
| 543 |
+
$privateData1['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 544 |
+
$paylineSDK->setPrivate($privateData1);
|
| 545 |
+
|
| 546 |
+
//ORDER DETAILS (optional)
|
| 547 |
+
$items = $this->order->getAllItems();
|
| 548 |
+
if ($items) {
|
| 549 |
+
if(count($items)>100) $items=array_slice($items,0,100);
|
| 550 |
+
foreach($items as $item) {
|
| 551 |
+
$itemPrice = round($item->getPrice()*100);
|
| 552 |
+
if($itemPrice > 0){
|
| 553 |
+
$product = array();
|
| 554 |
+
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 555 |
+
$product['price'] = round($item->getPrice()*100);
|
| 556 |
+
$product['quantity'] = round($item->getQtyOrdered());
|
| 557 |
+
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 558 |
+
$paylineSDK->setItem($product);
|
| 559 |
+
}
|
| 560 |
+
continue;
|
| 561 |
+
}
|
| 562 |
+
}
|
| 563 |
+
|
| 564 |
+
$customerId=Mage::getSingleton('customer/session')->getId();
|
| 565 |
+
$customer=Mage::getModel('customer/customer')->load($customerId);
|
| 566 |
+
$walletId=$customer->getWalletId();
|
| 567 |
+
$array['walletId']=$walletId;
|
| 568 |
+
$array['cardInd'] = '';
|
| 569 |
+
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 570 |
+
|
| 571 |
+
try{
|
| 572 |
+
$author_result = $paylineSDK->doImmediateWalletPayment($array);
|
| 573 |
+
}catch(Exception $e){
|
| 574 |
+
Mage::logException($e);
|
| 575 |
+
$this->updateStock();
|
| 576 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 577 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 578 |
+
$msgLog='Unknown PAYLINE ERROR (payline unreachable?) during wallet payment';
|
| 579 |
+
Mage::helper('payline/logger')->log('[walletAction] ' .$this->order->getIncrementId().$msgLog);
|
| 580 |
+
$this->_redirect('checkout/onepage');
|
| 581 |
+
return;
|
| 582 |
+
}
|
| 583 |
+
// RESPONSE
|
| 584 |
+
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 585 |
+
if(isset($author_result) && is_array($author_result) && $author_result['result']['code'] == '00000'){
|
| 586 |
+
$array_details = array();
|
| 587 |
+
$array_details['orderRef'] = $this->order->getRealOrderId();
|
| 588 |
+
$array_details['transactionId'] = $author_result['transaction']['id'];
|
| 589 |
+
$array_details['startDate'] = '';
|
| 590 |
+
$array_details['endDate'] = '';
|
| 591 |
+
$array_details['transactionHistory']= '';
|
| 592 |
+
$array_details['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 593 |
+
$array_details['archiveSearch'] = '';
|
| 594 |
+
$detail_result = $paylineSDK->getTransactionDetails($array_details);
|
| 595 |
+
|
| 596 |
+
if(is_array($detail_result) && $this->updateOrder($detail_result,$detail_result['transaction']['id'], 'WALLET')){
|
| 597 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 598 |
+
if($detail_result['result']['code'] == '04003') {
|
| 599 |
+
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 600 |
+
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 601 |
+
} else {
|
| 602 |
+
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 603 |
+
$this->order, $array['payment']['action'] );
|
| 604 |
+
}
|
| 605 |
+
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('WALLET', $this->order);
|
| 606 |
+
$this->order->save();
|
| 607 |
+
Mage_Core_Controller_Varien_Action::_redirectSuccess($redirectUrl);
|
| 608 |
+
}else{
|
| 609 |
+
$msgLog='Error during order update (#'.$this->order->getIncrementId().')';
|
| 610 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 611 |
+
$this->order->save();
|
| 612 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 613 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 614 |
+
Mage::helper('payline/logger')->log('[walletAction] ' .$this->order->getIncrementId().$msgLog);
|
| 615 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 616 |
+
return;
|
| 617 |
+
}
|
| 618 |
+
|
| 619 |
+
}else {
|
| 620 |
+
$this->updateStock();
|
| 621 |
+
if(isset($author_result) && is_array($author_result)){
|
| 622 |
+
$msgLog='PAYLINE ERROR during doImmediateWalletPayment: '.$author_result['result']['code']. ' ' . $author_result['result']['shortMessage'] . ' ('.$author_result['result']['longMessage'].')';
|
| 623 |
+
}elseif(isset($author_result) && is_string($author_result)){
|
| 624 |
+
$msgLog='PAYLINE ERROR during doImmediateWalletPayment: '.$author_result;
|
| 625 |
+
} else {
|
| 626 |
+
$msgLog='Unknown PAYLINE ERROR during doImmediateWalletPayment';
|
| 627 |
+
}
|
| 628 |
+
|
| 629 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 630 |
+
$this->order->save();
|
| 631 |
+
|
| 632 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 633 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 634 |
+
Mage::helper('payline/logger')->log('[walletAction] ' .$this->order->getIncrementId().$msgLog);
|
| 635 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 636 |
+
return;
|
| 637 |
+
}
|
| 638 |
+
}
|
| 639 |
+
/**
|
| 640 |
+
* Initialize the NX payment request
|
| 641 |
+
*/
|
| 642 |
+
public function nxAction(){
|
| 643 |
+
//Check if wallet is sendable
|
| 644 |
+
//Must be done before call to Payline helper initialisation
|
| 645 |
+
$expiredWalletId=false;
|
| 646 |
+
if(Mage::getSingleton('customer/session')->isLoggedIn()){
|
| 647 |
+
$customer=Mage::getSingleton('customer/session')->getCustomer();
|
| 648 |
+
$customer=Mage::getModel('customer/customer')->load($customer->getId());
|
| 649 |
+
if ($customer->getWalletId() && !Mage::getModel('payline/wallet')->checkExpirationDate()){
|
| 650 |
+
$expiredWalletId=true;
|
| 651 |
+
}
|
| 652 |
+
}
|
| 653 |
+
|
| 654 |
+
$array = $this->init();
|
| 655 |
+
$helperPayline = Mage::helper('payline');
|
| 656 |
+
$paylineSDK = $helperPayline->initPayline('NX',$array['payment']['currency']);
|
| 657 |
+
$array['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 658 |
+
|
| 659 |
+
//If wallet isn't sendable...
|
| 660 |
+
if ($expiredWalletId){
|
| 661 |
+
Mage::helper('payline')->walletId=null;
|
| 662 |
+
}
|
| 663 |
+
|
| 664 |
+
$nx = Mage::getStoreConfig('payment/PaylineNX/billing_occurrences');
|
| 665 |
+
$array['payment']['mode'] = 'NX';
|
| 666 |
+
$array['payment']['action'] = 101;
|
| 667 |
+
$array['payment']['contractNumber'] = $helperPayline->contractNumber;
|
| 668 |
+
$array['recurring']['amount'] = round($array['payment']['amount']/$nx);
|
| 669 |
+
$array['recurring']['firstAmount'] = $array['payment']['amount']-($array['recurring']['amount']*($nx-1));
|
| 670 |
+
$array['recurring']['billingCycle'] = Mage::getStoreConfig('payment/PaylineNX/billing_cycle');
|
| 671 |
+
$array['recurring']['billingLeft'] = $nx;
|
| 672 |
+
$array['recurring']['billingDay'] = '';
|
| 673 |
+
$array['recurring']['startDate'] = '';
|
| 674 |
+
|
| 675 |
+
//second contracts
|
| 676 |
+
$array['secondContracts'] = explode(';',$helperPayline->secondaryContractNumberList);
|
| 677 |
+
|
| 678 |
+
// PRIVATE DATA
|
| 679 |
+
$privateData = array();
|
| 680 |
+
$privateData['key'] = "orderRef";
|
| 681 |
+
$privateData['value'] = substr(str_replace(array("\r","\n","\t"), array('','',''),$array['order']['ref']), 0,255);
|
| 682 |
+
$paylineSDK->setPrivate($privateData);
|
| 683 |
+
|
| 684 |
+
//ORDER DETAILS (optional)
|
| 685 |
+
$items = $this->order->getAllItems();
|
| 686 |
+
if ($items) {
|
| 687 |
+
if(count($items)>100) $items=array_slice($items,0,100);
|
| 688 |
+
foreach($items as $item) {
|
| 689 |
+
$itemPrice = round($item->getPrice()*100);
|
| 690 |
+
if($itemPrice > 0){
|
| 691 |
+
$product = array();
|
| 692 |
+
$product['ref'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getName()),0,50));
|
| 693 |
+
$product['price'] = round($item->getPrice()*100);
|
| 694 |
+
$product['quantity'] = round($item->getQtyOrdered());
|
| 695 |
+
$product['comment'] = Mage::helper('payline')->encodeString(substr(str_replace(array("\r","\n","\t"), array('','',''),$item->getDescription()), 0,255));
|
| 696 |
+
$paylineSDK->setItem($product);
|
| 697 |
+
}
|
| 698 |
+
continue;
|
| 699 |
+
}
|
| 700 |
+
}
|
| 701 |
+
|
| 702 |
+
//WALLET
|
| 703 |
+
if(Mage::getStoreConfig('payment/PaylineCPT/send_wallet_id')) {
|
| 704 |
+
if (!isset($array['buyer']['walletId'])) {
|
| 705 |
+
if (isset($helperPayline->walletId)) {
|
| 706 |
+
$array['buyer']['walletId'] = $helperPayline->walletId;
|
| 707 |
+
}
|
| 708 |
+
}
|
| 709 |
+
if ($helperPayline->canSubscribeWallet()) {
|
| 710 |
+
//If the wallet is new (registered during payment), we must save it in the private data since it's not sent back by default
|
| 711 |
+
if ($helperPayline->isNewWallet) {
|
| 712 |
+
if ($helperPayline->walletId) {
|
| 713 |
+
$paylineSDK->setPrivate(array('key'=>'newWalletId','value'=>$helperPayline->walletId));
|
| 714 |
+
}
|
| 715 |
+
}
|
| 716 |
+
}
|
| 717 |
+
}
|
| 718 |
+
|
| 719 |
+
// ADD CONTRACT WALLET ARRAY TO $array
|
| 720 |
+
$array['walletContracts'] = Mage::helper('payline')->buildContractNumberWalletList();
|
| 721 |
+
|
| 722 |
+
// EXECUTE
|
| 723 |
+
try{
|
| 724 |
+
$result = $paylineSDK->doWebPayment($array);
|
| 725 |
+
}catch(Exception $e){
|
| 726 |
+
Mage::logException($e);
|
| 727 |
+
$this->updateStock();
|
| 728 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 729 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 730 |
+
$msgLog='Unknown PAYLINE ERROR (payline unreachable?)';
|
| 731 |
+
Mage::helper('payline/logger')->log('[nxAction] ' .$this->order->getIncrementId().$msgLog);
|
| 732 |
+
$this->_redirect('checkout/onepage');
|
| 733 |
+
return;
|
| 734 |
+
}
|
| 735 |
+
// RESPONSE
|
| 736 |
+
$initStatus = Mage::getStoreConfig('payment/payline_common/init_order_status');
|
| 737 |
+
if(isset($result) && is_array($result) && $result['result']['code'] == '00000'){
|
| 738 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,'',false);
|
| 739 |
+
$this->order->save();
|
| 740 |
+
header("location:".$result['redirectURL']);
|
| 741 |
+
exit();
|
| 742 |
+
}else {
|
| 743 |
+
$this->updateStock();
|
| 744 |
+
if(isset($result) && is_array($result)){
|
| 745 |
+
$msgLog='PAYLINE ERROR : '.$result['result']['code']. ' ' . $result['result']['shortMessage'] . ' ('.$result['result']['longMessage'].')';
|
| 746 |
+
} elseif(isset($result) && is_string($result)){
|
| 747 |
+
$msgLog='PAYLINE ERROR : '.$result;
|
| 748 |
+
} else{
|
| 749 |
+
$msgLog='Unknown PAYLINE ERROR';
|
| 750 |
+
}
|
| 751 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_NEW,$initStatus,$msgLog,false);
|
| 752 |
+
$this->order->save();
|
| 753 |
+
$msg=Mage::helper('payline')->__('Error during payment');
|
| 754 |
+
Mage::helper('payline/logger')->log('[nxAction] ' .$this->order->getIncrementId().$msgLog);
|
| 755 |
+
Mage::getSingleton('core/session')->addError($msg);
|
| 756 |
+
$this->_redirect('checkout/onepage');
|
| 757 |
+
return;
|
| 758 |
+
|
| 759 |
+
}
|
| 760 |
+
}
|
| 761 |
+
|
| 762 |
+
/**
|
| 763 |
+
* Action called on the customer's return form the Payline website.
|
| 764 |
+
*/
|
| 765 |
+
public function cptReturnAction(){
|
| 766 |
+
$res = Mage::helper('payline')->initPayline('CPT')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 767 |
+
|
| 768 |
+
$this->_getCustomerSession()->setWebPaymentDetails($res);
|
| 769 |
+
|
| 770 |
+
if (isset($res['privateDataList']['privateData']['value'])){
|
| 771 |
+
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 772 |
+
}else{
|
| 773 |
+
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 774 |
+
if($privateDataList->key == 'orderRef'){
|
| 775 |
+
$orderRef = $privateDataList->value;
|
| 776 |
+
}
|
| 777 |
+
}
|
| 778 |
+
}
|
| 779 |
+
|
| 780 |
+
if (!isset($orderRef)){
|
| 781 |
+
$msgLog='Couldn\'t find order increment id in cpt payment result';
|
| 782 |
+
Mage::helper('payline/logger')->log('[cptNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 783 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 784 |
+
return;
|
| 785 |
+
}
|
| 786 |
+
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 787 |
+
|
| 788 |
+
//If order is still new, notifAction haven't been called yet
|
| 789 |
+
if ($this->order->getState()==Mage_Sales_Model_Order::STATE_NEW){
|
| 790 |
+
Mage_Core_Controller_Varien_Action::_redirectSuccess($this->cptNotifAction());
|
| 791 |
+
}
|
| 792 |
+
|
| 793 |
+
if($res['result']['code'] == '00000' || $res['result']['code'] == '04003'){
|
| 794 |
+
$this->_redirect('checkout/onepage/success');
|
| 795 |
+
}else{
|
| 796 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 797 |
+
$this->_redirectUrl($this->_getPaymentRefusedRedirectUrl());
|
| 798 |
+
}
|
| 799 |
+
}
|
| 800 |
+
|
| 801 |
+
/**
|
| 802 |
+
* Action called on the customer's return form the Payline website.
|
| 803 |
+
*/
|
| 804 |
+
public function nxReturnAction(){
|
| 805 |
+
Mage_Core_Controller_Varien_Action::_redirectSuccess($this->nxNotifAction());
|
| 806 |
+
}
|
| 807 |
+
|
| 808 |
+
/**
|
| 809 |
+
* Save CPT payment result, called by the bank when the transaction is done
|
| 810 |
+
*/
|
| 811 |
+
public function cptNotifAction(){
|
| 812 |
+
$res = $this->_getCustomerSession()->getWebPaymentDetails(true);
|
| 813 |
+
if (empty($res)) {
|
| 814 |
+
$res = Mage::helper('payline')->initPayline('CPT')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 815 |
+
}
|
| 816 |
+
|
| 817 |
+
if (isset($res['privateDataList']['privateData']['value'])){
|
| 818 |
+
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 819 |
+
}else{
|
| 820 |
+
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 821 |
+
if($privateDataList->key == 'orderRef'){
|
| 822 |
+
$orderRef = $privateDataList->value;
|
| 823 |
+
}
|
| 824 |
+
if($privateDataList->key == 'newWalletId'){
|
| 825 |
+
$newWalletId = $privateDataList->value;
|
| 826 |
+
}
|
| 827 |
+
}
|
| 828 |
+
}
|
| 829 |
+
if (!isset($orderRef)){
|
| 830 |
+
$msgLog='Couldn\'t find order increment id in cpt payment result';
|
| 831 |
+
Mage::helper('payline/logger')->log('[cptNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 832 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 833 |
+
}
|
| 834 |
+
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 835 |
+
$payment = $this->order->getPayment();
|
| 836 |
+
if ($payment->getBaseAmountPaid() != $payment->getBaseAmountOrdered()) {
|
| 837 |
+
|
| 838 |
+
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 839 |
+
|
| 840 |
+
if(is_array($res) && $this->updateOrder($res,$res['transaction']['id'], 'CPT')){
|
| 841 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 842 |
+
|
| 843 |
+
if($res['result']['code'] == '04003') {
|
| 844 |
+
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 845 |
+
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 846 |
+
} else {
|
| 847 |
+
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 848 |
+
$this->order, $res['payment']['action'] );
|
| 849 |
+
}
|
| 850 |
+
|
| 851 |
+
if(isset($newWalletId)){
|
| 852 |
+
$this->saveWallet($newWalletId);
|
| 853 |
+
}
|
| 854 |
+
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('CPT', $this->order);
|
| 855 |
+
}else{
|
| 856 |
+
if(isset($res) && is_array($res)){
|
| 857 |
+
$msgLog='PAYLINE ERROR : '.$res['result']['code']. ' ' . $res['result']['shortMessage'] . ' ('.$res['result']['longMessage'].')';
|
| 858 |
+
} elseif(isset($res) && is_string($res)){
|
| 859 |
+
$msgLog='PAYLINE ERROR : '.$res;
|
| 860 |
+
} else{
|
| 861 |
+
$msgLog='Error during order update (#'.$this->order->getIncrementId().')';
|
| 862 |
+
}
|
| 863 |
+
|
| 864 |
+
if (is_array($res) && !($res['result']['code'] == '02306' || $res['result']['code'] == '02533')) {
|
| 865 |
+
if ($res['result']['code'] == '02304' || $res['result']['code'] == '02324' || $res['result']['code'] == '02534') {
|
| 866 |
+
$abandonedStatus = Mage::getStoreConfig('payment/payline_common/resignation_order_status');
|
| 867 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$abandonedStatus,$msgLog,false);
|
| 868 |
+
} else {
|
| 869 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 870 |
+
}
|
| 871 |
+
}
|
| 872 |
+
|
| 873 |
+
Mage::helper('payline/logger')->log('[cptNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 874 |
+
$redirectUrl = $this->_getPaymentRefusedRedirectUrl();
|
| 875 |
+
}
|
| 876 |
+
$this->order->save();
|
| 877 |
+
} else {
|
| 878 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 879 |
+
}
|
| 880 |
+
return $redirectUrl;
|
| 881 |
+
}
|
| 882 |
+
|
| 883 |
+
/**
|
| 884 |
+
* Save NX payment result, called by the bank when the transaction is done
|
| 885 |
+
*/
|
| 886 |
+
public function nxNotifAction(){
|
| 887 |
+
$res = Mage::helper('payline')->initPayline('NX')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 888 |
+
if (isset($res['privateDataList']['privateData']['value'])){
|
| 889 |
+
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 890 |
+
}else{
|
| 891 |
+
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 892 |
+
if($privateDataList->key == 'orderRef'){
|
| 893 |
+
$orderRef = $privateDataList->value;
|
| 894 |
+
}
|
| 895 |
+
}
|
| 896 |
+
}
|
| 897 |
+
if (!isset($orderRef)){
|
| 898 |
+
$msgLog='Référence commande introuvable dans le résultat du paiement Nx';
|
| 899 |
+
Mage::helper('payline/logger')->log('[nxNotifAction] ' .$this->order->getIncrementId().' '.$msgLog);
|
| 900 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 901 |
+
}
|
| 902 |
+
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 903 |
+
|
| 904 |
+
$failedOrderStatus = Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 905 |
+
|
| 906 |
+
if(isset($res['billingRecordList']['billingRecord'])){
|
| 907 |
+
$size = sizeof($res['billingRecordList']['billingRecord']);
|
| 908 |
+
}else{
|
| 909 |
+
$size = 0;
|
| 910 |
+
}
|
| 911 |
+
$billingRecord = false;
|
| 912 |
+
for($i=0;$i<$size;$i++){
|
| 913 |
+
if($res['billingRecordList']['billingRecord'][$i]->status == 1){
|
| 914 |
+
$txnId = $res['billingRecordList']['billingRecord'][$i]->transaction->id;
|
| 915 |
+
if(!$this->order->getTransaction($txnId)){
|
| 916 |
+
$billingRecord = $res['billingRecordList']['billingRecord'][$i];
|
| 917 |
+
}
|
| 918 |
+
}
|
| 919 |
+
}
|
| 920 |
+
if($billingRecord && $this->updateOrder($res,$billingRecord->transaction->id,'NX')) {
|
| 921 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/success/";
|
| 922 |
+
|
| 923 |
+
if($res['result']['code'] == '04003') {
|
| 924 |
+
$newOrderStatus = Mage::getStoreConfig('payment/payline_common/fraud_order_status');
|
| 925 |
+
Mage::helper('payline')->setOrderStatus($this->order, $newOrderStatus);
|
| 926 |
+
} else if( $res['result']['code'] == '02501' ) { // credit card (CC) will expire
|
| 927 |
+
$statusScheduleAlert = Mage::getStoreConfig('payment/PaylineNX/status_when_payline_schedule_alert');
|
| 928 |
+
Mage::helper('payline')->setOrderStatus( $this->order, $statusScheduleAlert );
|
| 929 |
+
} else {
|
| 930 |
+
Mage::helper('payline')->setOrderStatusAccordingToPaymentMode(
|
| 931 |
+
$this->order, $res['payment']['action'] );
|
| 932 |
+
}
|
| 933 |
+
|
| 934 |
+
if (isset($res['privateDataList']['privateData'][1]) && $res['privateDataList']['privateData'][1]->key=="newWalletId" && $res['privateDataList']['privateData'][1]->value!=''){
|
| 935 |
+
$this->saveWallet($res['privateDataList']['privateData'][1]->value);
|
| 936 |
+
}
|
| 937 |
+
$payment = $this->order->getPayment();
|
| 938 |
+
if ($payment->getBaseAmountPaid() != $payment->getBaseAmountOrdered()) {
|
| 939 |
+
Mage::helper('payline')->automateCreateInvoiceAtShopReturn('NX', $this->order);
|
| 940 |
+
}
|
| 941 |
+
}else{
|
| 942 |
+
if(isset($res) && is_array($res)){
|
| 943 |
+
$msgLog='PAYLINE ERROR : '.$res['result']['code']. ' ' . $res['result']['shortMessage'] . ' ('.$res['result']['longMessage'].')';
|
| 944 |
+
} elseif(isset($res) && is_string($res)){
|
| 945 |
+
$msgLog='PAYLINE ERROR : '.$res;
|
| 946 |
+
} else{
|
| 947 |
+
$msgLog='Error during order update (#'.$this->order->getIncrementId().')';
|
| 948 |
+
}
|
| 949 |
+
|
| 950 |
+
if (is_array($res) && !($res['result']['code'] == '02306' || $res['result']['code'] == '02533')) {
|
| 951 |
+
if (is_array($res) && ($res['result']['code'] == '02304' || $res['result']['code'] == '02324' || $res['result']['code'] == '02534')) {
|
| 952 |
+
$abandonedStatus = Mage::getStoreConfig('payment/payline_common/resignation_order_status');
|
| 953 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$abandonedStatus,$msgLog,false);
|
| 954 |
+
} else {
|
| 955 |
+
$statusScheduleAlert = Mage::getStoreConfig('payment/PaylineNX/status_when_payline_schedule_alert');
|
| 956 |
+
if( !empty( $statusScheduleAlert ) ) { // if user conf is set
|
| 957 |
+
$failedOrderStatus = $statusScheduleAlert;
|
| 958 |
+
}
|
| 959 |
+
$this->order->setState(Mage_Sales_Model_Order::STATE_CANCELED,$failedOrderStatus,$msgLog,false);
|
| 960 |
+
}
|
| 961 |
+
}
|
| 962 |
+
|
| 963 |
+
Mage::helper('payline/logger')->log('[nxNotifAction] ' .$this->order->getIncrementId().$msgLog);
|
| 964 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 965 |
+
$redirectUrl = $this->_getPaymentRefusedRedirectUrl();
|
| 966 |
+
}
|
| 967 |
+
$this->order->save();
|
| 968 |
+
return $redirectUrl;
|
| 969 |
+
}
|
| 970 |
+
|
| 971 |
+
/**
|
| 972 |
+
* Method called by Payline to notify (except first) each term payment.
|
| 973 |
+
* Url to this action must be set in Payline personnal account.
|
| 974 |
+
*/
|
| 975 |
+
public function nxTermNotifAction()
|
| 976 |
+
{
|
| 977 |
+
$statusScheduleAlert = Mage::getStoreConfig('payment/PaylineNX/status_when_payline_schedule_alert');
|
| 978 |
+
$statusCCExpired = Mage::getStoreConfig('payment/PaylineNX/status_when_credit_card_schedule_is_expired');
|
| 979 |
+
if( !empty( $statusScheduleAlert ) || !empty( $statusCCExpired ) ) {
|
| 980 |
+
if( $this->isNxTermParamsOk( $_GET ) ) {
|
| 981 |
+
/* BILL = value required for terms notifications
|
| 982 |
+
WEBTRS = value for cash web payment */
|
| 983 |
+
if( $_GET['notificationType'] == 'BILL' ) { //
|
| 984 |
+
$transactionParams = array();
|
| 985 |
+
$transactionParams['transactionId'] = $_GET['transactionId'];
|
| 986 |
+
$transactionParams['orderRef'] = $_GET['orderRef'];
|
| 987 |
+
$transactionParams['version'] = Monext_Payline_Helper_Data::VERSION;
|
| 988 |
+
$transactionParams['startDate'] = '';
|
| 989 |
+
$transactionParams['endDate'] = '';
|
| 990 |
+
$transactionParams['transactionHistory']= '';
|
| 991 |
+
$transactionParams['archiveSearch'] = '';
|
| 992 |
+
|
| 993 |
+
$res = Mage::helper('payline')->initPayline('NX')->getTransactionDetails( $transactionParams );
|
| 994 |
+
|
| 995 |
+
if( isset( $res )
|
| 996 |
+
&& is_array( $res )
|
| 997 |
+
&& isset( $res['result'] )
|
| 998 |
+
&& isset( $res['result']['code'] ) )
|
| 999 |
+
{
|
| 1000 |
+
$mustSave = true;
|
| 1001 |
+
switch( $res['result']['code'] ) {
|
| 1002 |
+
case '00000':
|
| 1003 |
+
case '02500':
|
| 1004 |
+
case '04003':
|
| 1005 |
+
$mustSave = false;
|
| 1006 |
+
break;
|
| 1007 |
+
case '02501': // payment card will expire
|
| 1008 |
+
if( !empty( $statusScheduleAlert ) ) {
|
| 1009 |
+
$this->order = $this->setOrderStatus( $statusScheduleAlert, $_GET['orderRef'] );
|
| 1010 |
+
break;
|
| 1011 |
+
}
|
| 1012 |
+
default: // if default => error (cc expired or other errors)
|
| 1013 |
+
if( !empty( $statusCCExpired ) ) {
|
| 1014 |
+
$this->order = $this->setOrderStatus( $statusCCExpired, $_GET['orderRef'] );
|
| 1015 |
+
} else {
|
| 1016 |
+
$mustSave = false;
|
| 1017 |
+
}
|
| 1018 |
+
break;
|
| 1019 |
+
}
|
| 1020 |
+
if( $mustSave ) { $this->order->save(); }
|
| 1021 |
+
} // end if ( isset($res) ...
|
| 1022 |
+
} // end if BILL
|
| 1023 |
+
} // end if $this->isNxTermParamsOk
|
| 1024 |
+
} // end if !empty( $statusScheduleAlert ) || !empty( $statusCCExpired )
|
| 1025 |
+
} // end func
|
| 1026 |
+
|
| 1027 |
+
/**
|
| 1028 |
+
* Check if $params contains all the required keys for PaylineSDK#getTransactionDetails()
|
| 1029 |
+
* @param $params {array} array params for PaylineSDK#getTransactionDetails(), should contain all keys required.
|
| 1030 |
+
* @return bool true if $params ok, otherwise false
|
| 1031 |
+
*/
|
| 1032 |
+
private function isNxTermParamsOk($params)
|
| 1033 |
+
{
|
| 1034 |
+
if( !isset( $params['notificationType'] ) ) return false;
|
| 1035 |
+
if( !isset( $params['paymentRecordId'] ) ) return false;
|
| 1036 |
+
if( !isset( $params['walletId'] ) ) return false;
|
| 1037 |
+
if( !isset( $params['transactionId'] ) ) return false;
|
| 1038 |
+
if( !isset( $params['billingRecordDate'] ) ) return false;
|
| 1039 |
+
if( !isset( $params['orderRef'] ) ) return false;
|
| 1040 |
+
return true;
|
| 1041 |
+
}
|
| 1042 |
+
|
| 1043 |
+
/**
|
| 1044 |
+
* Set an order status. If !isset($this->order) process order model from $orderRef
|
| 1045 |
+
* @param $status {string} status order to assign
|
| 1046 |
+
* @param $orderRef {string} entity_id order
|
| 1047 |
+
* @return Mage_Sales_Model_Order Return the order object with new status set
|
| 1048 |
+
*/
|
| 1049 |
+
private function setOrderStatus($status, $orderRef)
|
| 1050 |
+
{
|
| 1051 |
+
if( isset( $this->order ) ) {
|
| 1052 |
+
$order = $this->order;
|
| 1053 |
+
} else {
|
| 1054 |
+
$order = Mage::getModel('sales/order')
|
| 1055 |
+
->getCollection()
|
| 1056 |
+
->addFieldToFilter('increment_id', $orderRef)
|
| 1057 |
+
->getFirstItem();
|
| 1058 |
+
}
|
| 1059 |
+
Mage::helper('payline')->setOrderStatus( $order, $status );
|
| 1060 |
+
return $order;
|
| 1061 |
+
}
|
| 1062 |
+
|
| 1063 |
+
/**
|
| 1064 |
+
* Cancel a CPT payment request /order
|
| 1065 |
+
*/
|
| 1066 |
+
public function cptCancelAction(){
|
| 1067 |
+
$res = Mage::helper('payline')->initPayline('CPT')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 1068 |
+
|
| 1069 |
+
if (isset($res['privateDataList']['privateData']['value'])){
|
| 1070 |
+
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 1071 |
+
}else{
|
| 1072 |
+
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 1073 |
+
if($privateDataList->key == 'orderRef'){
|
| 1074 |
+
$orderRef = $privateDataList->value;
|
| 1075 |
+
}
|
| 1076 |
+
}
|
| 1077 |
+
}
|
| 1078 |
+
if (!isset($orderRef)){
|
| 1079 |
+
$msgLog='Couldn\'t find order increment id in cpt payment cancel result';
|
| 1080 |
+
Mage::helper('payline/logger')->log('[cptCancelAction] ' .$this->order->getIncrementId().$msgLog);
|
| 1081 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 1082 |
+
$this->_redirect($redirectUrl);
|
| 1083 |
+
return;
|
| 1084 |
+
}
|
| 1085 |
+
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 1086 |
+
$msg = '';
|
| 1087 |
+
if(is_string($res)) {
|
| 1088 |
+
$msg='PAYLINE ERROR : '.$res;
|
| 1089 |
+
Mage::helper('payline/logger')->log('[cptCancelAction] ' .$this->order->getIncrementId(). ' ' . $msg);
|
| 1090 |
+
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1091 |
+
} elseif (substr($res['result']['code'], 0, 2)=='01' || substr($res['result']['code'],0,3)=='021'){
|
| 1092 |
+
//Invalid transaction or error during the process on Payline side
|
| 1093 |
+
//No error display, the customer is already told on the Payline side
|
| 1094 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 1095 |
+
$msg='PAYLINE ERROR : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1096 |
+
Mage::helper('payline/logger')->log('[cptCancelAction] ' .$this->order->getIncrementId().$msg);
|
| 1097 |
+
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1098 |
+
}else{
|
| 1099 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is canceled'));
|
| 1100 |
+
$msg='PAYLINE INFO : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1101 |
+
//Transaction cancelled by customer
|
| 1102 |
+
$cancelStatus = Mage::getStoreConfig('payment/payline_common/canceled_order_status');
|
| 1103 |
+
}
|
| 1104 |
+
$this->cancelOrder($cancelStatus, $res['result']['code'], $msg);
|
| 1105 |
+
}
|
| 1106 |
+
|
| 1107 |
+
/**
|
| 1108 |
+
* Cancel a NX payment request /order
|
| 1109 |
+
*/
|
| 1110 |
+
public function nxCancelAction(){
|
| 1111 |
+
$res = Mage::helper('payline')->initPayline('NX')->getWebPaymentDetails(array('token' => $_GET['token'], 'version' => Monext_Payline_Helper_Data::VERSION));
|
| 1112 |
+
if (isset($res['privateDataList']['privateData']['value'])){
|
| 1113 |
+
$orderRef=$res['privateDataList']['privateData']['value'];
|
| 1114 |
+
}else{
|
| 1115 |
+
foreach ($res['privateDataList']['privateData'] as $privateDataList){
|
| 1116 |
+
if($privateDataList->key == 'orderRef'){
|
| 1117 |
+
$orderRef = $privateDataList->value;
|
| 1118 |
+
}
|
| 1119 |
+
}
|
| 1120 |
+
}
|
| 1121 |
+
if (!isset($orderRef)){
|
| 1122 |
+
$msgLog='Couldn\'t find order increment id in nx payment cancel result';
|
| 1123 |
+
Mage::helper('payline/logger')->log('[nxCancelAction] ' .$this->order->getIncrementId().$msgLog);
|
| 1124 |
+
$redirectUrl = Mage::getBaseUrl()."checkout/onepage/";
|
| 1125 |
+
}
|
| 1126 |
+
$this->order = Mage::getModel('sales/order')->loadByIncrementId($orderRef);
|
| 1127 |
+
|
| 1128 |
+
if (is_string($res)) {
|
| 1129 |
+
$msg='PAYLINE ERROR : '.$res;
|
| 1130 |
+
Mage::helper('payline/logger')->log('[nxCancelAction] ' .$this->order->getIncrementId(). ' ' . $msg);
|
| 1131 |
+
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1132 |
+
} elseif (substr($res['result']['code'], 0, 2)=='01' || substr($res['result']['code'],0,3)=='021'){
|
| 1133 |
+
//Invalid transaction or error during the process on Payline side
|
| 1134 |
+
//No error display, the customer is already told on the Payline side
|
| 1135 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is refused'));
|
| 1136 |
+
$msg='PAYLINE ERROR : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1137 |
+
Mage::helper('payline/logger')->log('[nxCancelAction] ' .$this->order->getIncrementId().$msg);
|
| 1138 |
+
$cancelStatus=Mage::getStoreConfig('payment/payline_common/failed_order_status');
|
| 1139 |
+
}else{
|
| 1140 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('payline')->__('Your payment is canceled'));
|
| 1141 |
+
$msg='PAYLINE INFO : '.$res['result']['code']. ' '.$res['result']['shortMessage'] . ' (' . $res['result']['longMessage'].')';
|
| 1142 |
+
//Transaction cancelled by customer
|
| 1143 |
+
$cancelStatus = Mage::getStoreConfig('payment/payline_common/canceled_order_status');
|
| 1144 |
+
}
|
| 1145 |
+
$this->cancelOrder($cancelStatus, $res['result']['code'],$msg);
|
| 1146 |
+
}
|
| 1147 |
+
|
| 1148 |
+
protected function _getPaymentRefusedRedirectUrl()
|
| 1149 |
+
{
|
| 1150 |
+
$option = Mage::getStoreConfig('payment/payline_common/return_payment_refused');
|
| 1151 |
+
switch($option) {
|
| 1152 |
+
case Monext_Payline_Model_Datasource_Return::CART_EMPTY :
|
| 1153 |
+
$url = Mage::getUrl('checkout/onepage');
|
| 1154 |
+
break;
|
| 1155 |
+
case Monext_Payline_Model_Datasource_Return::HISTORY_ORDERS :
|
| 1156 |
+
$url = Mage::getUrl('sales/order/history');
|
| 1157 |
+
break;
|
| 1158 |
+
case Monext_Payline_Model_Datasource_Return::CART_FULL :
|
| 1159 |
+
$url = Mage::getUrl('sales/order/reorder', array('order_id' => $this->order->getId()));
|
| 1160 |
+
break;
|
| 1161 |
+
default :
|
| 1162 |
+
$url = Mage::getUrl('checkout/onepage');
|
| 1163 |
+
|
| 1164 |
+
}
|
| 1165 |
+
|
| 1166 |
+
return $url;
|
| 1167 |
+
}
|
| 1168 |
+
}
|
app/code/community/Monext/Payline/etc/config.xml
CHANGED
|
@@ -1,272 +1,272 @@
|
|
| 1 |
-
<?xml version="1.0"?>
|
| 2 |
-
<config>
|
| 3 |
-
<modules>
|
| 4 |
-
<Monext_Payline>
|
| 5 |
-
<version>1.7.
|
| 6 |
-
</Monext_Payline>
|
| 7 |
-
</modules>
|
| 8 |
-
<global>
|
| 9 |
-
<blocks>
|
| 10 |
-
<payline>
|
| 11 |
-
<class>Monext_Payline_Block</class>
|
| 12 |
-
</payline>
|
| 13 |
-
<adminhtml>
|
| 14 |
-
<!-- Needed for Magento Enterprise 1.9 -->
|
| 15 |
-
<rewrite>
|
| 16 |
-
<sales_order_creditmemo_create_items>Monext_Payline_Block_Adminhtml_Sales_Order_Creditmemo_Create_Items</sales_order_creditmemo_create_items>
|
| 17 |
-
<customer_grid>Monext_Payline_Block_Adminhtml_Customer_Grid</customer_grid>
|
| 18 |
-
</rewrite>
|
| 19 |
-
</adminhtml>
|
| 20 |
-
</blocks>
|
| 21 |
-
<models>
|
| 22 |
-
<payline>
|
| 23 |
-
<class>Monext_Payline_Model</class>
|
| 24 |
-
<resourceModel>payline_mysql4</resourceModel>
|
| 25 |
-
</payline>
|
| 26 |
-
|
| 27 |
-
<payline_mysql4>
|
| 28 |
-
<class>Monext_Payline_Model_Mysql4</class>
|
| 29 |
-
<entities>
|
| 30 |
-
<contract>
|
| 31 |
-
<table>payline_contract</table>
|
| 32 |
-
</contract>
|
| 33 |
-
<contract_status>
|
| 34 |
-
<table>payline_contract_status</table>
|
| 35 |
-
</contract_status>
|
| 36 |
-
<fees>
|
| 37 |
-
<table>payline_nx_fees</table>
|
| 38 |
-
</fees>
|
| 39 |
-
</entities>
|
| 40 |
-
</payline_mysql4>
|
| 41 |
-
|
| 42 |
-
<sales>
|
| 43 |
-
<rewrite>
|
| 44 |
-
<order_invoice>Monext_Payline_Model_Order_Invoice</order_invoice>
|
| 45 |
-
<order_payment>Monext_Payline_Model_Order_Payment</order_payment>
|
| 46 |
-
</rewrite>
|
| 47 |
-
</sales>
|
| 48 |
-
</models>
|
| 49 |
-
<helpers>
|
| 50 |
-
<payline>
|
| 51 |
-
<class>Monext_Payline_Helper</class>
|
| 52 |
-
</payline>
|
| 53 |
-
</helpers>
|
| 54 |
-
|
| 55 |
-
<resources>
|
| 56 |
-
<payline_setup>
|
| 57 |
-
<setup>
|
| 58 |
-
<module>Monext_Payline</module>
|
| 59 |
-
<class>Monext_Payline_Model_Resource_Eav_Mysql4_Setup</class>
|
| 60 |
-
</setup>
|
| 61 |
-
<connection>
|
| 62 |
-
<use>core_setup</use>
|
| 63 |
-
</connection>
|
| 64 |
-
</payline_setup>
|
| 65 |
-
<payline_write>
|
| 66 |
-
<connection>
|
| 67 |
-
<use>core_write</use>
|
| 68 |
-
</connection>
|
| 69 |
-
</payline_write>
|
| 70 |
-
<payline_read>
|
| 71 |
-
<connection>
|
| 72 |
-
<use>core_read</use>
|
| 73 |
-
</connection>
|
| 74 |
-
</payline_read>
|
| 75 |
-
</resources>
|
| 76 |
-
<events>
|
| 77 |
-
<sales_order_save_after>
|
| 78 |
-
<observers>
|
| 79 |
-
<payline>
|
| 80 |
-
<class>payline/observer</class>
|
| 81 |
-
<method>createInvoiceWhenStatusChange</method>
|
| 82 |
-
</payline>
|
| 83 |
-
<payline_fees>
|
| 84 |
-
<class>payline/observer</class>
|
| 85 |
-
<method>saveOrderNxFees</method>
|
| 86 |
-
</payline_fees>
|
| 87 |
-
</observers>
|
| 88 |
-
</sales_order_save_after>
|
| 89 |
-
<sales_quote_collect_totals_before>
|
| 90 |
-
<observers>
|
| 91 |
-
<payline>
|
| 92 |
-
<class>payline/observer</class>
|
| 93 |
-
<method>saveQuoteNxFees</method>
|
| 94 |
-
</payline>
|
| 95 |
-
</observers>
|
| 96 |
-
</sales_quote_collect_totals_before>
|
| 97 |
-
<sales_order_invoice_save_after>
|
| 98 |
-
<observers>
|
| 99 |
-
<payline>
|
| 100 |
-
<class>payline/observer</class>
|
| 101 |
-
<method>saveInvoiceNxFees</method>
|
| 102 |
-
</payline>
|
| 103 |
-
</observers>
|
| 104 |
-
</sales_order_invoice_save_after>
|
| 105 |
-
<controller_action_postdispatch_checkout_onepage_saveShippingMethod>
|
| 106 |
-
<observers>
|
| 107 |
-
<payline>
|
| 108 |
-
<class>payline/observer</class>
|
| 109 |
-
<method>afterSaveShippingAction</method>
|
| 110 |
-
</payline>
|
| 111 |
-
</observers>
|
| 112 |
-
</controller_action_postdispatch_checkout_onepage_saveShippingMethod>
|
| 113 |
-
</events>
|
| 114 |
-
|
| 115 |
-
<sales>
|
| 116 |
-
<quote>
|
| 117 |
-
<totals>
|
| 118 |
-
<payline_nx>
|
| 119 |
-
<class>payline/total_nx_quote</class>
|
| 120 |
-
<after>subtotal</after>
|
| 121 |
-
<before>grand_total,tax</before>
|
| 122 |
-
<renderer>payline/checkout_total</renderer>
|
| 123 |
-
</payline_nx>
|
| 124 |
-
</totals>
|
| 125 |
-
</quote>
|
| 126 |
-
<order_invoice>
|
| 127 |
-
<totals>
|
| 128 |
-
<payline_nx>
|
| 129 |
-
<class>payline/total_nx_invoice</class>
|
| 130 |
-
<after>subtotal</after>
|
| 131 |
-
<before>grand_total,tax</before>
|
| 132 |
-
</payline_nx>
|
| 133 |
-
</totals>
|
| 134 |
-
</order_invoice>
|
| 135 |
-
</sales>
|
| 136 |
-
</global>
|
| 137 |
-
<frontend>
|
| 138 |
-
<routers>
|
| 139 |
-
<payline>
|
| 140 |
-
<use>standard</use>
|
| 141 |
-
<args>
|
| 142 |
-
<module>Monext_Payline</module>
|
| 143 |
-
<frontName>payline</frontName>
|
| 144 |
-
</args>
|
| 145 |
-
</payline>
|
| 146 |
-
</routers>
|
| 147 |
-
<translate>
|
| 148 |
-
<modules>
|
| 149 |
-
<Monext_Payline>
|
| 150 |
-
<files>
|
| 151 |
-
<default>Monext_Payline.csv</default>
|
| 152 |
-
</files>
|
| 153 |
-
</Monext_Payline>
|
| 154 |
-
</modules>
|
| 155 |
-
</translate>
|
| 156 |
-
<layout>
|
| 157 |
-
<updates>
|
| 158 |
-
<payline module="Monext_Payline">
|
| 159 |
-
<file>payline.xml</file>
|
| 160 |
-
</payline>
|
| 161 |
-
</updates>
|
| 162 |
-
</layout>
|
| 163 |
-
</frontend>
|
| 164 |
-
<admin>
|
| 165 |
-
<routers>
|
| 166 |
-
<payline>
|
| 167 |
-
<use>admin</use>
|
| 168 |
-
<args>
|
| 169 |
-
<module>Monext_Payline</module>
|
| 170 |
-
<frontName>payline</frontName>
|
| 171 |
-
</args>
|
| 172 |
-
</payline>
|
| 173 |
-
</routers>
|
| 174 |
-
</admin>
|
| 175 |
-
<adminhtml>
|
| 176 |
-
<translate>
|
| 177 |
-
<modules>
|
| 178 |
-
<Monext_Payline>
|
| 179 |
-
<files>
|
| 180 |
-
<default>Monext_Payline.csv</default>
|
| 181 |
-
</files>
|
| 182 |
-
</Monext_Payline>
|
| 183 |
-
</modules>
|
| 184 |
-
</translate>
|
| 185 |
-
<layout>
|
| 186 |
-
<updates>
|
| 187 |
-
<payline module="Monext_Payline">
|
| 188 |
-
<file>payline.xml</file>
|
| 189 |
-
</payline>
|
| 190 |
-
</updates>
|
| 191 |
-
</layout>
|
| 192 |
-
<menu>
|
| 193 |
-
<system>
|
| 194 |
-
<children>
|
| 195 |
-
<payline translate="title" module="payline">
|
| 196 |
-
<title>Manage Payline Contracts</title>
|
| 197 |
-
<sort_order>10</sort_order>
|
| 198 |
-
<action>payline/adminhtml_managecontracts</action>
|
| 199 |
-
</payline>
|
| 200 |
-
</children>
|
| 201 |
-
</system>
|
| 202 |
-
</menu>
|
| 203 |
-
<acl>
|
| 204 |
-
<resources>
|
| 205 |
-
<admin>
|
| 206 |
-
<children>
|
| 207 |
-
<system>
|
| 208 |
-
<children>
|
| 209 |
-
<payline>
|
| 210 |
-
<title>Manage Payline Contracts</title>
|
| 211 |
-
<sort_order>10</sort_order>
|
| 212 |
-
</payline>
|
| 213 |
-
</children>
|
| 214 |
-
</system>
|
| 215 |
-
</children>
|
| 216 |
-
</admin>
|
| 217 |
-
</resources>
|
| 218 |
-
</acl>
|
| 219 |
-
</adminhtml>
|
| 220 |
-
<default>
|
| 221 |
-
<payment>
|
| 222 |
-
<payline_common>
|
| 223 |
-
<title>Common settings</title>
|
| 224 |
-
<failed_order_status>holded</failed_order_status>
|
| 225 |
-
<canceled_order_status>canceled</canceled_order_status>
|
| 226 |
-
<new_order_status>processing</new_order_status>
|
| 227 |
-
<init_order_status>pending</init_order_status>
|
| 228 |
-
<fraud_order_status>pending</fraud_order_status>
|
| 229 |
-
<automate_wallet_subscription>1</automate_wallet_subscription>
|
| 230 |
-
<primary_max_fail_retry>1</primary_max_fail_retry>
|
| 231 |
-
<primary_call_timeout>15</primary_call_timeout>
|
| 232 |
-
<primary_replay_timer>15</primary_replay_timer>
|
| 233 |
-
<secondary_max_fail_retry>2</secondary_max_fail_retry>
|
| 234 |
-
<secondary_call_timeout>15</secondary_call_timeout>
|
| 235 |
-
<secondary_replay_timer>15</secondary_replay_timer>
|
| 236 |
-
<switch_back_timer>600</switch_back_timer>
|
| 237 |
-
<payline_ws_switch_enable></payline_ws_switch_enable>
|
| 238 |
-
<payline_err_code>02101,02102,02103</payline_err_code>
|
| 239 |
-
<payline_err_token>02317,02318</payline_err_token>
|
| 240 |
-
<primary_token_prefix>1</primary_token_prefix>
|
| 241 |
-
<secondary_token_prefix>2</secondary_token_prefix>
|
| 242 |
-
<return_payment_refused>0</return_payment_refused>
|
| 243 |
-
</payline_common>
|
| 244 |
-
<PaylineCPT>
|
| 245 |
-
<model>payline/cpt</model>
|
| 246 |
-
<!-- Auth+Capture, 100 is capture only -->
|
| 247 |
-
<payline_payment_action>101</payline_payment_action>
|
| 248 |
-
<send_wallet_id>1</send_wallet_id>
|
| 249 |
-
</PaylineCPT>
|
| 250 |
-
<PaylineNX>
|
| 251 |
-
<model>payline/nx</model>
|
| 252 |
-
<send_wallet_id>1</send_wallet_id>
|
| 253 |
-
</PaylineNX>
|
| 254 |
-
<PaylineDIRECT>
|
| 255 |
-
<model>payline/direct</model>
|
| 256 |
-
<!-- Auth+Capture, 100 is capture only -->
|
| 257 |
-
<payline_payment_action>101</payline_payment_action>
|
| 258 |
-
<send_wallet_id>1</send_wallet_id>
|
| 259 |
-
</PaylineDIRECT>
|
| 260 |
-
<PaylineWALLET>
|
| 261 |
-
<model>payline/wallet</model>
|
| 262 |
-
<payline_register-oneclick_customeraccount>payline_register-oneclick_customeraccount</payline_register-oneclick_customeraccount>
|
| 263 |
-
<payline_register-oneclick_catalog>payline_register-oneclick_catalog</payline_register-oneclick_catalog>
|
| 264 |
-
<update_payment_details>1</update_payment_details>
|
| 265 |
-
<update_personal_details>0</update_personal_details>
|
| 266 |
-
<one_clic_block_title>One Click Checkout</one_clic_block_title>
|
| 267 |
-
<!-- Auth+Capture, 100 is capture only -->
|
| 268 |
-
<payline_payment_action>101</payline_payment_action>
|
| 269 |
-
</PaylineWALLET>
|
| 270 |
-
</payment>
|
| 271 |
-
</default>
|
| 272 |
-
</config>
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Monext_Payline>
|
| 5 |
+
<version>1.7.8</version>
|
| 6 |
+
</Monext_Payline>
|
| 7 |
+
</modules>
|
| 8 |
+
<global>
|
| 9 |
+
<blocks>
|
| 10 |
+
<payline>
|
| 11 |
+
<class>Monext_Payline_Block</class>
|
| 12 |
+
</payline>
|
| 13 |
+
<adminhtml>
|
| 14 |
+
<!-- Needed for Magento Enterprise 1.9 -->
|
| 15 |
+
<rewrite>
|
| 16 |
+
<sales_order_creditmemo_create_items>Monext_Payline_Block_Adminhtml_Sales_Order_Creditmemo_Create_Items</sales_order_creditmemo_create_items>
|
| 17 |
+
<customer_grid>Monext_Payline_Block_Adminhtml_Customer_Grid</customer_grid>
|
| 18 |
+
</rewrite>
|
| 19 |
+
</adminhtml>
|
| 20 |
+
</blocks>
|
| 21 |
+
<models>
|
| 22 |
+
<payline>
|
| 23 |
+
<class>Monext_Payline_Model</class>
|
| 24 |
+
<resourceModel>payline_mysql4</resourceModel>
|
| 25 |
+
</payline>
|
| 26 |
+
|
| 27 |
+
<payline_mysql4>
|
| 28 |
+
<class>Monext_Payline_Model_Mysql4</class>
|
| 29 |
+
<entities>
|
| 30 |
+
<contract>
|
| 31 |
+
<table>payline_contract</table>
|
| 32 |
+
</contract>
|
| 33 |
+
<contract_status>
|
| 34 |
+
<table>payline_contract_status</table>
|
| 35 |
+
</contract_status>
|
| 36 |
+
<fees>
|
| 37 |
+
<table>payline_nx_fees</table>
|
| 38 |
+
</fees>
|
| 39 |
+
</entities>
|
| 40 |
+
</payline_mysql4>
|
| 41 |
+
|
| 42 |
+
<sales>
|
| 43 |
+
<rewrite>
|
| 44 |
+
<order_invoice>Monext_Payline_Model_Order_Invoice</order_invoice>
|
| 45 |
+
<order_payment>Monext_Payline_Model_Order_Payment</order_payment>
|
| 46 |
+
</rewrite>
|
| 47 |
+
</sales>
|
| 48 |
+
</models>
|
| 49 |
+
<helpers>
|
| 50 |
+
<payline>
|
| 51 |
+
<class>Monext_Payline_Helper</class>
|
| 52 |
+
</payline>
|
| 53 |
+
</helpers>
|
| 54 |
+
|
| 55 |
+
<resources>
|
| 56 |
+
<payline_setup>
|
| 57 |
+
<setup>
|
| 58 |
+
<module>Monext_Payline</module>
|
| 59 |
+
<class>Monext_Payline_Model_Resource_Eav_Mysql4_Setup</class>
|
| 60 |
+
</setup>
|
| 61 |
+
<connection>
|
| 62 |
+
<use>core_setup</use>
|
| 63 |
+
</connection>
|
| 64 |
+
</payline_setup>
|
| 65 |
+
<payline_write>
|
| 66 |
+
<connection>
|
| 67 |
+
<use>core_write</use>
|
| 68 |
+
</connection>
|
| 69 |
+
</payline_write>
|
| 70 |
+
<payline_read>
|
| 71 |
+
<connection>
|
| 72 |
+
<use>core_read</use>
|
| 73 |
+
</connection>
|
| 74 |
+
</payline_read>
|
| 75 |
+
</resources>
|
| 76 |
+
<events>
|
| 77 |
+
<sales_order_save_after>
|
| 78 |
+
<observers>
|
| 79 |
+
<payline>
|
| 80 |
+
<class>payline/observer</class>
|
| 81 |
+
<method>createInvoiceWhenStatusChange</method>
|
| 82 |
+
</payline>
|
| 83 |
+
<payline_fees>
|
| 84 |
+
<class>payline/observer</class>
|
| 85 |
+
<method>saveOrderNxFees</method>
|
| 86 |
+
</payline_fees>
|
| 87 |
+
</observers>
|
| 88 |
+
</sales_order_save_after>
|
| 89 |
+
<sales_quote_collect_totals_before>
|
| 90 |
+
<observers>
|
| 91 |
+
<payline>
|
| 92 |
+
<class>payline/observer</class>
|
| 93 |
+
<method>saveQuoteNxFees</method>
|
| 94 |
+
</payline>
|
| 95 |
+
</observers>
|
| 96 |
+
</sales_quote_collect_totals_before>
|
| 97 |
+
<sales_order_invoice_save_after>
|
| 98 |
+
<observers>
|
| 99 |
+
<payline>
|
| 100 |
+
<class>payline/observer</class>
|
| 101 |
+
<method>saveInvoiceNxFees</method>
|
| 102 |
+
</payline>
|
| 103 |
+
</observers>
|
| 104 |
+
</sales_order_invoice_save_after>
|
| 105 |
+
<controller_action_postdispatch_checkout_onepage_saveShippingMethod>
|
| 106 |
+
<observers>
|
| 107 |
+
<payline>
|
| 108 |
+
<class>payline/observer</class>
|
| 109 |
+
<method>afterSaveShippingAction</method>
|
| 110 |
+
</payline>
|
| 111 |
+
</observers>
|
| 112 |
+
</controller_action_postdispatch_checkout_onepage_saveShippingMethod>
|
| 113 |
+
</events>
|
| 114 |
+
|
| 115 |
+
<sales>
|
| 116 |
+
<quote>
|
| 117 |
+
<totals>
|
| 118 |
+
<payline_nx>
|
| 119 |
+
<class>payline/total_nx_quote</class>
|
| 120 |
+
<after>subtotal</after>
|
| 121 |
+
<before>grand_total,tax</before>
|
| 122 |
+
<renderer>payline/checkout_total</renderer>
|
| 123 |
+
</payline_nx>
|
| 124 |
+
</totals>
|
| 125 |
+
</quote>
|
| 126 |
+
<order_invoice>
|
| 127 |
+
<totals>
|
| 128 |
+
<payline_nx>
|
| 129 |
+
<class>payline/total_nx_invoice</class>
|
| 130 |
+
<after>subtotal</after>
|
| 131 |
+
<before>grand_total,tax</before>
|
| 132 |
+
</payline_nx>
|
| 133 |
+
</totals>
|
| 134 |
+
</order_invoice>
|
| 135 |
+
</sales>
|
| 136 |
+
</global>
|
| 137 |
+
<frontend>
|
| 138 |
+
<routers>
|
| 139 |
+
<payline>
|
| 140 |
+
<use>standard</use>
|
| 141 |
+
<args>
|
| 142 |
+
<module>Monext_Payline</module>
|
| 143 |
+
<frontName>payline</frontName>
|
| 144 |
+
</args>
|
| 145 |
+
</payline>
|
| 146 |
+
</routers>
|
| 147 |
+
<translate>
|
| 148 |
+
<modules>
|
| 149 |
+
<Monext_Payline>
|
| 150 |
+
<files>
|
| 151 |
+
<default>Monext_Payline.csv</default>
|
| 152 |
+
</files>
|
| 153 |
+
</Monext_Payline>
|
| 154 |
+
</modules>
|
| 155 |
+
</translate>
|
| 156 |
+
<layout>
|
| 157 |
+
<updates>
|
| 158 |
+
<payline module="Monext_Payline">
|
| 159 |
+
<file>payline.xml</file>
|
| 160 |
+
</payline>
|
| 161 |
+
</updates>
|
| 162 |
+
</layout>
|
| 163 |
+
</frontend>
|
| 164 |
+
<admin>
|
| 165 |
+
<routers>
|
| 166 |
+
<payline>
|
| 167 |
+
<use>admin</use>
|
| 168 |
+
<args>
|
| 169 |
+
<module>Monext_Payline</module>
|
| 170 |
+
<frontName>payline</frontName>
|
| 171 |
+
</args>
|
| 172 |
+
</payline>
|
| 173 |
+
</routers>
|
| 174 |
+
</admin>
|
| 175 |
+
<adminhtml>
|
| 176 |
+
<translate>
|
| 177 |
+
<modules>
|
| 178 |
+
<Monext_Payline>
|
| 179 |
+
<files>
|
| 180 |
+
<default>Monext_Payline.csv</default>
|
| 181 |
+
</files>
|
| 182 |
+
</Monext_Payline>
|
| 183 |
+
</modules>
|
| 184 |
+
</translate>
|
| 185 |
+
<layout>
|
| 186 |
+
<updates>
|
| 187 |
+
<payline module="Monext_Payline">
|
| 188 |
+
<file>payline.xml</file>
|
| 189 |
+
</payline>
|
| 190 |
+
</updates>
|
| 191 |
+
</layout>
|
| 192 |
+
<menu>
|
| 193 |
+
<system>
|
| 194 |
+
<children>
|
| 195 |
+
<payline translate="title" module="payline">
|
| 196 |
+
<title>Manage Payline Contracts</title>
|
| 197 |
+
<sort_order>10</sort_order>
|
| 198 |
+
<action>payline/adminhtml_managecontracts</action>
|
| 199 |
+
</payline>
|
| 200 |
+
</children>
|
| 201 |
+
</system>
|
| 202 |
+
</menu>
|
| 203 |
+
<acl>
|
| 204 |
+
<resources>
|
| 205 |
+
<admin>
|
| 206 |
+
<children>
|
| 207 |
+
<system>
|
| 208 |
+
<children>
|
| 209 |
+
<payline>
|
| 210 |
+
<title>Manage Payline Contracts</title>
|
| 211 |
+
<sort_order>10</sort_order>
|
| 212 |
+
</payline>
|
| 213 |
+
</children>
|
| 214 |
+
</system>
|
| 215 |
+
</children>
|
| 216 |
+
</admin>
|
| 217 |
+
</resources>
|
| 218 |
+
</acl>
|
| 219 |
+
</adminhtml>
|
| 220 |
+
<default>
|
| 221 |
+
<payment>
|
| 222 |
+
<payline_common>
|
| 223 |
+
<title>Common settings</title>
|
| 224 |
+
<failed_order_status>holded</failed_order_status>
|
| 225 |
+
<canceled_order_status>canceled</canceled_order_status>
|
| 226 |
+
<new_order_status>processing</new_order_status>
|
| 227 |
+
<init_order_status>pending</init_order_status>
|
| 228 |
+
<fraud_order_status>pending</fraud_order_status>
|
| 229 |
+
<automate_wallet_subscription>1</automate_wallet_subscription>
|
| 230 |
+
<primary_max_fail_retry>1</primary_max_fail_retry>
|
| 231 |
+
<primary_call_timeout>15</primary_call_timeout>
|
| 232 |
+
<primary_replay_timer>15</primary_replay_timer>
|
| 233 |
+
<secondary_max_fail_retry>2</secondary_max_fail_retry>
|
| 234 |
+
<secondary_call_timeout>15</secondary_call_timeout>
|
| 235 |
+
<secondary_replay_timer>15</secondary_replay_timer>
|
| 236 |
+
<switch_back_timer>600</switch_back_timer>
|
| 237 |
+
<payline_ws_switch_enable></payline_ws_switch_enable>
|
| 238 |
+
<payline_err_code>02101,02102,02103</payline_err_code>
|
| 239 |
+
<payline_err_token>02317,02318</payline_err_token>
|
| 240 |
+
<primary_token_prefix>1</primary_token_prefix>
|
| 241 |
+
<secondary_token_prefix>2</secondary_token_prefix>
|
| 242 |
+
<return_payment_refused>0</return_payment_refused>
|
| 243 |
+
</payline_common>
|
| 244 |
+
<PaylineCPT>
|
| 245 |
+
<model>payline/cpt</model>
|
| 246 |
+
<!-- Auth+Capture, 100 is capture only -->
|
| 247 |
+
<payline_payment_action>101</payline_payment_action>
|
| 248 |
+
<send_wallet_id>1</send_wallet_id>
|
| 249 |
+
</PaylineCPT>
|
| 250 |
+
<PaylineNX>
|
| 251 |
+
<model>payline/nx</model>
|
| 252 |
+
<send_wallet_id>1</send_wallet_id>
|
| 253 |
+
</PaylineNX>
|
| 254 |
+
<PaylineDIRECT>
|
| 255 |
+
<model>payline/direct</model>
|
| 256 |
+
<!-- Auth+Capture, 100 is capture only -->
|
| 257 |
+
<payline_payment_action>101</payline_payment_action>
|
| 258 |
+
<send_wallet_id>1</send_wallet_id>
|
| 259 |
+
</PaylineDIRECT>
|
| 260 |
+
<PaylineWALLET>
|
| 261 |
+
<model>payline/wallet</model>
|
| 262 |
+
<payline_register-oneclick_customeraccount>payline_register-oneclick_customeraccount</payline_register-oneclick_customeraccount>
|
| 263 |
+
<payline_register-oneclick_catalog>payline_register-oneclick_catalog</payline_register-oneclick_catalog>
|
| 264 |
+
<update_payment_details>1</update_payment_details>
|
| 265 |
+
<update_personal_details>0</update_personal_details>
|
| 266 |
+
<one_clic_block_title>One Click Checkout</one_clic_block_title>
|
| 267 |
+
<!-- Auth+Capture, 100 is capture only -->
|
| 268 |
+
<payline_payment_action>101</payline_payment_action>
|
| 269 |
+
</PaylineWALLET>
|
| 270 |
+
</payment>
|
| 271 |
+
</default>
|
| 272 |
+
</config>
|
app/design/frontend/default/default/layout/payline.xml
CHANGED
|
@@ -30,6 +30,7 @@
|
|
| 30 |
</reference>
|
| 31 |
</cms_index_index>
|
| 32 |
|
|
|
|
| 33 |
<checkout_onepage_progress>
|
| 34 |
<reference name="payment_info">
|
| 35 |
<action method="setInfoTemplate"><method>PaylineCPT</method><template>payline/checkout/onepage/info/default.phtml</template></action>
|
|
@@ -39,6 +40,16 @@
|
|
| 39 |
</reference>
|
| 40 |
</checkout_onepage_progress>
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
<customer_account>
|
| 43 |
<reference name="customer_account_navigation">
|
| 44 |
<action method="addLink" translate="label" module="payline" ifconfig="payment/PaylineWALLET/active"><name>payline</name><path>payline/wallet/manage</path><label>Wallet management</label></action>
|
| 30 |
</reference>
|
| 31 |
</cms_index_index>
|
| 32 |
|
| 33 |
+
<!-- magento CE 1.5 -->
|
| 34 |
<checkout_onepage_progress>
|
| 35 |
<reference name="payment_info">
|
| 36 |
<action method="setInfoTemplate"><method>PaylineCPT</method><template>payline/checkout/onepage/info/default.phtml</template></action>
|
| 40 |
</reference>
|
| 41 |
</checkout_onepage_progress>
|
| 42 |
|
| 43 |
+
<!-- magento CE 1.8 + EE 1.13 -->
|
| 44 |
+
<checkout_onepage_progress_payment>
|
| 45 |
+
<reference name="payment_info">
|
| 46 |
+
<action method="setInfoTemplate"><method>PaylineCPT</method><template>payline/checkout/onepage/info/default.phtml</template></action>
|
| 47 |
+
<action method="setInfoTemplate"><method>PaylineDIRECT</method><template>payline/checkout/onepage/info/default.phtml</template></action>
|
| 48 |
+
<action method="setInfoTemplate"><method>PaylineNX</method><template>payline/checkout/onepage/info/default.phtml</template></action>
|
| 49 |
+
<action method="setInfoTemplate"><method>PaylineWALLET</method><template>payline/checkout/onepage/info/default.phtml</template></action>
|
| 50 |
+
</reference>
|
| 51 |
+
</checkout_onepage_progress_payment>
|
| 52 |
+
|
| 53 |
<customer_account>
|
| 54 |
<reference name="customer_account_navigation">
|
| 55 |
<action method="addLink" translate="label" module="payline" ifconfig="payment/PaylineWALLET/active"><name>payline</name><path>payline/wallet/manage</path><label>Wallet management</label></action>
|
app/design/frontend/default/default/template/payline/Direct.phtml
CHANGED
|
@@ -1,60 +1,62 @@
|
|
| 1 |
<?php $_code=$this->getMethodCode() ?>
|
| 2 |
-
<
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
|
|
|
|
|
| 1 |
<?php $_code=$this->getMethodCode() ?>
|
| 2 |
+
<fieldset class="form-list" >
|
| 3 |
+
<ul id="payment_form_<?php echo $_code ?>" style="display:none;">
|
| 4 |
+
<li>
|
| 5 |
+
<label for="<?php echo $_code ?>_cc_owner" class="required"><em>*</em><?php echo $this->__('Name on Card') ?></label>
|
| 6 |
+
<div class="input-box">
|
| 7 |
+
<input type="text" title="<?php echo $this->__('Name on Card') ?>" class="input-text required-entry" id="<?php echo $_code ?>_cc_owner" name="payment[cc_owner]" value="<?php echo $this->htmlEscape($this->getInfoData('cc_owner')) ?>" />
|
| 8 |
+
</div>
|
| 9 |
+
</li>
|
| 10 |
+
<li>
|
| 11 |
+
<label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
|
| 12 |
+
<div class="input-box">
|
| 13 |
+
<select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" title="<?php echo $this->__('Credit Card Type') ?>" class="required-entry">
|
| 14 |
+
<option value=""><?php echo $this->__('--Please Select--') ?></option>
|
| 15 |
+
<?php $_ccType = $this->getInfoData('cc_type') ?>
|
| 16 |
+
<?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
|
| 17 |
+
<option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
| 18 |
+
<?php endforeach ?>
|
| 19 |
+
</select>
|
| 20 |
+
</div>
|
| 21 |
+
</li>
|
| 22 |
+
<li>
|
| 23 |
+
<label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
|
| 24 |
+
<div class="input-box">
|
| 25 |
+
<input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text required-entry" value="" />
|
| 26 |
+
</div>
|
| 27 |
+
</li>
|
| 28 |
+
<li>
|
| 29 |
+
<label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
|
| 30 |
+
<div class="input-box">
|
| 31 |
+
<div class="v-fix">
|
| 32 |
+
<select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
|
| 33 |
+
<?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
|
| 34 |
+
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
| 35 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
| 36 |
+
<?php endforeach ?>
|
| 37 |
+
</select>
|
| 38 |
+
</div>
|
| 39 |
+
<div class="v-fix">
|
| 40 |
+
<?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
|
| 41 |
+
<select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
|
| 42 |
+
<?php foreach ($this->getCcYears() as $k=>$v): ?>
|
| 43 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
| 44 |
+
<?php endforeach ?>
|
| 45 |
+
</select>
|
| 46 |
+
</div>
|
| 47 |
+
</div>
|
| 48 |
+
</li>
|
| 49 |
+
<?php echo $this->getChildHtml() ?>
|
| 50 |
+
<?php if($this->hasVerification()): ?>
|
| 51 |
+
<li>
|
| 52 |
+
<label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
|
| 53 |
+
<div class="input-box">
|
| 54 |
+
<div class="v-fix">
|
| 55 |
+
<input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
|
| 56 |
+
</div>
|
| 57 |
+
<a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
|
| 58 |
+
</div>
|
| 59 |
+
</li>
|
| 60 |
+
<?php endif; ?>
|
| 61 |
+
</ul>
|
| 62 |
+
</fieldset>
|
app/design/frontend/default/default/template/payline/checkout/onepage.phtml
CHANGED
|
@@ -4,7 +4,10 @@
|
|
| 4 |
</span>
|
| 5 |
<script type="text/javascript">
|
| 6 |
//<![CDATA[
|
| 7 |
-
<?php
|
|
|
|
|
|
|
|
|
|
| 8 |
checkout.gotoSection('<?php echo $gotoSection?>');
|
| 9 |
var updater = new Ajax.Updater(
|
| 10 |
'checkout-review-load',
|
|
@@ -17,7 +20,12 @@
|
|
| 17 |
}
|
| 18 |
}
|
| 19 |
);
|
| 20 |
-
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
//]]>
|
| 23 |
</script>
|
| 4 |
</span>
|
| 5 |
<script type="text/javascript">
|
| 6 |
//<![CDATA[
|
| 7 |
+
<?php
|
| 8 |
+
$gotoSection = Mage::registry('payline-goto-section');
|
| 9 |
+
$filter = Mage::registry('payline-magento-version');
|
| 10 |
+
?>
|
| 11 |
checkout.gotoSection('<?php echo $gotoSection?>');
|
| 12 |
var updater = new Ajax.Updater(
|
| 13 |
'checkout-review-load',
|
| 20 |
}
|
| 21 |
}
|
| 22 |
);
|
| 23 |
+
|
| 24 |
+
<?php if( $filter && $filter >= 1.8 ) : ?>
|
| 25 |
+
checkout.reloadStep('payment');
|
| 26 |
+
<?php else: ?>
|
| 27 |
+
checkout.reloadProgressBlock();
|
| 28 |
+
<?php endif; ?>
|
| 29 |
+
|
| 30 |
//]]>
|
| 31 |
</script>
|
app/design/frontend/default/default/template/payline/checkout/onepage/payment/methods.phtml
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* One page checkout payment methods
|
| 30 |
+
*
|
| 31 |
+
* @var $this Mage_Checkout_Block_Onepage_Payment_Methods
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<dl class="sp-methods" id="checkout-payment-method-load">
|
| 35 |
+
<?php
|
| 36 |
+
$methods = $this->getMethods();
|
| 37 |
+
$oneMethod = count($methods) <= 1;
|
| 38 |
+
?>
|
| 39 |
+
<?php if (empty($methods)): ?>
|
| 40 |
+
<dt>
|
| 41 |
+
<?php echo $this->__('No Payment Methods') ?>
|
| 42 |
+
</dt>
|
| 43 |
+
<?php else:
|
| 44 |
+
foreach ($methods as $_method):
|
| 45 |
+
$_code = $_method->getCode();
|
| 46 |
+
?>
|
| 47 |
+
<dt>
|
| 48 |
+
<?php if(!$oneMethod): ?>
|
| 49 |
+
<input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->escapeHtml($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
|
| 50 |
+
<?php else: ?>
|
| 51 |
+
<span class="no-display"><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" class="radio" /></span>
|
| 52 |
+
<?php $oneMethod = $_code; ?>
|
| 53 |
+
<?php endif; ?>
|
| 54 |
+
<label for="p_method_<?php echo $_code ?>"><?php echo $this->escapeHtml($this->getMethodTitle($_method)) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
|
| 55 |
+
</dt>
|
| 56 |
+
<?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
|
| 57 |
+
<dd>
|
| 58 |
+
<?php echo $html; ?>
|
| 59 |
+
</dd>
|
| 60 |
+
<?php endif; ?>
|
| 61 |
+
<?php endforeach;
|
| 62 |
+
endif;
|
| 63 |
+
?>
|
| 64 |
+
<?php echo $this->getChildChildHtml('additional'); ?>
|
| 65 |
+
<script type="text/javascript">
|
| 66 |
+
//<![CDATA[
|
| 67 |
+
<?php echo $this->getChildChildHtml('scripts'); ?>
|
| 68 |
+
payment.init();
|
| 69 |
+
<?php if (is_string($oneMethod)): ?>
|
| 70 |
+
payment.switchMethod('<?php echo $oneMethod ?>');
|
| 71 |
+
<?php endif; ?>
|
| 72 |
+
//]]>
|
| 73 |
+
</script>
|
| 74 |
+
</dl>
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Payline</name>
|
| 4 |
-
<version>1.7.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -10,12 +10,11 @@
|
|
| 10 |
<description>Profitez dès à présent de l’essor du marché de la vente à distance en proposant à vos clients une solution de paiement totalement sécurisée. Grâce à Payline vous permettez à vos clients de régler avec leur moyen de paiement habituel, quel que soit votre canal de vente. Vous leur proposez une interface de paiement facile à utiliser, en mesure de vous accompagner dans votre développement à l’international, en toute simplicité.
|
| 11 |

|
| 12 |
Fonctionnalités : autorisation, autorisation + validation, paiement en n fois, paiement par portefeuille et en 1 clic, validation et remboursement partiels, multi-boutique...</description>
|
| 13 |
-
<notes>
|
| 14 |
-
</notes>
|
| 15 |
<authors><author><name>Payline</name><user>Payline</user><email>support@payline.com</email></author></authors>
|
| 16 |
-
<date>2014-
|
| 17 |
-
<time>
|
| 18 |
-
<contents><target name="magecommunity"><dir name="Monext"><dir name="Payline"><dir name="Block"><dir name="Adminhtml"><dir name="Customer"><file name="Grid.php" hash="13b7c449e07ef729fbac8caa708decd1"/></dir><dir name="Managecontracts"><dir name="Edit"><file name="Form.php" hash="05040427f41fb110db974ff5a3eb6ba9"/></dir><file name="Edit.php" hash="7f026d56bfd7a7b03e9e1ad9263a008e"/><file name="Grid.php" hash="de14d88f9c299895168e5d1a214e267f"/></dir><file name="Managecontracts.php" hash="343434dde00ba5d5ba35ed255c44a98e"/><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="Create"><file name="Items.php" hash="c7cd82866d8788ff32d42df8fcdc11f8"/></dir></dir><dir name="Total"><file name="Nxfees.php" hash="cd28c26f717481421bfab12c55ab5378"/></dir></dir></dir></dir><dir name="Checkout"><file name="Total.php" hash="df9fd2acea6ca2be213bfd5e335cedd6"/></dir><file name="Cpt.php" hash="85df4f91ef5ca13f14ca3c15a6ff29e3"/><file name="Direct.php" hash="a176d97fe09a830fbb82d517a71c7049"/><dir name="Info"><file name="Default.php" hash="028809c8e83cd97df32d3fe15833e609"/><file name="Direct.php" hash="f3a87e79429f581e2c896cc99f169aed"/></dir><file name="Logo.php" hash="2b7784f040f04489448fbc13b05ffe74"/><file name="Nx.php" hash="e4fd920c944abe9963f76e111e90ba48"/><dir name="Wallet"><file name="Checkoutbtn.php" hash="bbd8b30f2a37e83ce295295f0fe10ebf"/><file name="Details.php" hash="03cb96bd76d2265b842677b2a6825303"/><file name="Infos.php" hash="ae673ceafb630efbf0308657f766a816"/><file name="Sidebar.php" hash="db70b60be9aa20316f91b3fa3a23a2b9"/></dir><file name="Wallet.php" hash="6326c9e76c84777597f30a89d718ccb4"/></dir><dir name="Helper"><file name="Data.php" hash="4edd6778b8a3342cdbeae5b1493bb649"/><file name="Logger.php" hash="6b7cf036fdf2e6df2cb7fa645c8912b9"/></dir><dir name="Model"><dir name="Contract"><file name="Status.php" hash="67919f148f5d50a266b92e8a32e833f1"/></dir><file name="Contract.php" hash="75ac4b82964f0b87f7b30c4fb0f6b638"/><file name="Cpt.php" hash="94254eb4113dc8a0a6cc1d4c8521a602"/><dir name="Datasource"><file name="Actions.php" hash="2152344a8bd5fbf7dbe711c58f97356c"/><file name="Billingcycles.php" hash="bef244e6d9e744fbbc3afed9cc2050f9"/><file name="Billingoccurrences.php" hash="581ce23ec626ed71791b13c7b11fe6db"/><file name="Capturepaymentoptions.php" hash="8095a47418aa5d7f0cea91718de2323f"/><dir name="Cms"><file name="Block.php" hash="eee43f517c9e29e51f0ca21fdc7b74ed"/></dir><file name="Costs.php" hash="ac09cf06fbe9a1fabddb2a4727dd696f"/><file name="Languages.php" hash="17053eec4880c5c5b1f233a3ca9f0bda"/><file name="Paymentactions.php" hash="6c4aae3b1b4e8b987a4da7393a3a92eb"/><file name="Paymentactionsreauth.php" hash="ef87674b1742240f9c2af17eb38fd994"/><file name="Return.php" hash="d8fac75b41a931a4714ed8acf846d9a2"/><file name="Securitymodes.php" hash="06c55b65e9254d96fa87595322839932"/><file name="Shippingmethods.php" hash="1c67f2af87583aae049c86cb4dcdf881"/><dir name="Status"><file name="Canceled.php" hash="c4e799efcb052536081339520c7b72c2"/><file name="Invoice.php" hash="b2cbeeaf4e78ec4545f6d45faba1922e"/></dir><file name="Status.php" hash="893648bdaa413d2ec2e5243a2f63c9d8"/><file name="Statusrowempty.php" hash="5d342031d511a204b15d2d9c8c852162"/></dir><file name="Direct.php" hash="d7bde5b06b400fb9362a527d556287c2"/><file name="Fees.php" hash="d51c983f019b43e70516b71e163e9a28"/><dir name="Mysql4"><dir name="Contract"><file name="Collection.php" hash="7d71121cac131f11dc012375b4412d85"/><dir name="Status"><file name="Collection.php" hash="3a76926bcab21729191a4045fa9662f7"/></dir><file name="Status.php" hash="3deb3f63a199b110a3fa581ff777172f"/></dir><file name="Contract.php" hash="33cbc24553f2d90ba164363172e2f4c7"/><dir name="Fees"><file name="Collection.php" hash="b00bb0ec3e0a75a2435f6c55d3eea02c"/></dir><file name="Fees.php" hash="c398d9290276806d03af8631a09eac63"/></dir><file name="Nx.php" hash="830433cc06e92665fd554fe0030070f0"/><file name="Observer.php" hash="94824604b2ea364b1bed23bbaa01033b"/><dir name="Order"><file name="Invoice.php" hash="4b1a7d53444ad7069479ac617d7396b6"/><file name="Payment.php" hash="c8207b103d284bde7e511c57d9a5399c"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="f0cb886cd65e23ec397e651d7913ea9e"/></dir></dir></dir><dir name="Total"><dir name="Nx"><file name="Invoice.php" hash="6ead6df53b6169709797d6c08cd4d16c"/><file name="Quote.php" hash="8e7ab3cc36d180c600bb28192193567b"/></dir></dir><file name="Wallet.php" hash="b114d566bd102eb6e25c3070be79303f"/></dir><dir name="PaylinePHPKit"><dir name="configuration"><file name="HighDefinition.ini" hash="689dc8f1ba03e0c04ae6a8758df38f1b"/></dir><dir name="lib"><file name="Payline.wsdl" hash="b22b4ddfb2751c886e25d7202731c686"/><file name="jIniFileModifier.php" hash="f7d309bd1fb8f408528151b0555b188c"/><file name="lib_debug.php" hash="9cec1fd5e55fd625b98b03ca336214d1"/><file name="paylineSDK.php" hash="83cf41dbebef28d215c31b0061f0ef29"/></dir><dir name="logs"><file name="empty.log" hash=""/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ManagecontractsController.php" hash="f5c8ac2227e34766baed1e3e0af4bf87"/></dir><file name="CheckoutonepageController.php" hash="da35bdb14ac62a258479b44011dacc01"/><file name="IndexController.php" hash="0a25a5e88c7cfd760795e49c94f93939"/><file name="UnloggedwalletController.php" hash="90af5be8a8fa8dd1b2e29a442c0b7aab"/><file name="WalletController.php" hash="9bedfe037d2d845d4b1fe2acbbf69033"/></dir><dir name="etc"><file name="config.xml" hash="9b429b0a1d4c5428996127164ce63bc2"/><file name="system.xml" hash="0d83d9a3b18a03bbc71191da32c22bc2"/></dir><dir name="sql"><dir name="payline_setup"><file name="mysql4-install-1.6.0.php" hash="ed5013f743ba36a7b2884fc432f97e16"/><file name="mysql4-upgrade-1.7.2-1.7.3.php" hash="7eeb0f5cfc6c379d8300428a5ec39c46"/><file name="mysql4-upgrade-1.7.5-1.7.6.php" hash="0ebfd38e90a8139c67087fc1e16f1aba"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><file name="payline.css" hash="414432db8dc1d0682f4988917bd8dd6f"/></dir><dir name="images"><dir name="payline_moyens_paiement"><file name="1euro.png" hash="8d5e4917497ba61120090e166014886d"/><file name="3xcb.png" hash="c76c834e238d3a8e3b3b4a2c116f189c"/><file name="amex.png" hash="a47d6bfc7eb4e06f3e3acb8a55cfd3c9"/><file name="amexoneclick.png" hash="a47d6bfc7eb4e06f3e3acb8a55cfd3c9"/><file name="aurore.png" hash="e2be3e130bd1212d9375a3bdb354cb78"/><file name="buyster.png" hash="8ec0f280dccd1c18c84cfbd368c6f579"/><file name="casino.png" hash="ce5b159bc98c7f71e8149e1d8b256dbd"/><file name="cb.png" hash="a5d9178bc831cbc78238dff27f79a48b"/><file name="cofinoga.png" hash="1dd7025dd22ac998aa968b38693a6a71"/><file name="cyrillus.png" hash="f762ad007f552bf409f5baa610f6746a"/><file name="default.png" hash="26c2dff177e1f8a94994352f6a7cec88"/><file name="diners.png" hash="6c907b8f0233b035ec4c27c2e9542406"/><file name="elv.png" hash="d0bd93c59ef64709b9a5cd81ff557e28"/><file name="fnac.png" hash="c0a7aa595b18fb52105d9337fda3eb1c"/><file name="ideal.png" hash="e0594aed23073daab150d8288a81103c"/><file name="internetplus.png" hash="fe1bc34531cfd6fd3dab6a6614e7ca3f"/><file name="jcb.png" hash="9801aeed2550ffccbdc3fe88b5292a60"/><file name="kangourou.png" hash="5fac97aa8f70380ec3b601ff32fdc012"/><file name="leetchi.png" hash="ecf6612b0228b889c723498f476c4309"/><file name="maestro.png" hash="19d331ae4783d590dba694cbcbb26da9"/><file name="mandarine.png" hash="745a8999468f60753c9c51a0052c527a"/><file name="mastercard.png" hash="cb7aa4a6f3870145295c4ce16a602d1e"/><file name="maxicheque.png" hash="fc3e2988c9944467fc8d4e44b4118a32"/><file name="mcvisa.png" hash="ba6349155be595d6da5ee584241c2946"/><file name="moneo.png" hash="283cf98332a5c05521229282875a158d"/><file name="neosurf.png" hash="9a747833ce3d9cbb3c26d4a11d7e4b4b"/><file name="okshopping.png" hash="8498bd45cf87124d12c4bfbf81272f14"/><file name="pass.png" hash="adb923e16cd9419960a51d0d41f26f97"/><file name="passvisa.png" hash="bd88d99714e9a3ba5000f881a0289f58"/><file name="payfair.png" hash="82f5dc87ea6f43f386b0e4887f33e5e8"/><file name="paypal.png" hash="2e9a634ffb111e1ce20b5e9017a35b29"/><file name="paysafecard.png" hash="a6776e5140ad443596587e3de12cd6a2"/><file name="printemps.png" hash="072cde23d8600c39457cf02a983b6d7f"/><file name="privilege.png" hash="883c70c0ce1c5bac23865397b0b63c5c"/><file name="skrill.png" hash="5d77ac7b63309a8691c27628aad9f60a"/><file name="sofinco.png" hash="93081c5cb7ce8ba216bbc42019cde8d3"/><file name="surcouf.png" hash="d8633f7d4b47460faac4e8657ce42f4d"/><file name="switch.png" hash="e2924bb36ad3de3d3ee61fa4dc3ffa8b"/><file name="ticketpremium.png" hash="5146987c213691e20a5461d7eed59f09"/><file name="ticketsurf.png" hash="bcd9aeb8b2784ea6a06e80cc2b2393ec"/><file name="visa.png" hash="bd8890f0147d451bf1a488d4e268332c"/><file name="wexpay.png" hash="1f3bb2ec092f283a8b27c66e2c32f22f"/></dir><file name="payline-logo.png" hash="553b387e92d95aef92a35f332e75cac4"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="payline.xml" hash="0488c4cfab8321f91ec7a9adaf482837"/></dir><dir name="template"><dir name="payline"><file name="contracts.phtml" hash="6d398a529e799880533d954f53f6df96"/><dir name="customer"><dir name="tab"><file name="view.phtml" hash="1c3d9c842c802967bc867ff2be008504"/></dir></dir><dir name="payment"><dir name="info"><file name="monext.phtml" hash="6daa4bb0bc10c81fcf2a099dd789903d"/></dir></dir><file name="switcher.phtml" hash="ced863f3f520e271497c0a6bcc4b38e4"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="payline.xml" hash="d23c6df56d32a39b55a9780245036d75"/></dir><dir name="template"><dir name="payline"><file name="Cpt.phtml" hash="d5a78eb6488ad0985a4fd62bd10e05e3"/><file name="Direct.phtml" hash="08167b333ce1380879ebaea26c1362ca"/><file name="Payline.phtml" hash="dc264172e5a6c5ae627b697208dff65d"/><dir name="checkout"><dir name="onepage"><file name="addjs.phtml" hash="8baee7d7d804635a6062bbb41ad4f162"/><dir name="info"><file name="default.phtml" hash="4689f891bab252ff10bb789d37e9bc2b"/></dir><file name="shipping-method.phtml" hash="a81a9f308f15008842bfd9ba69852aa9"/></dir><file name="onepage.phtml" hash="1f19d5af1a65cd7b5f4debf785bba49a"/><file name="total.phtml" hash="24170fbb2b43da6fc3d4a51db4b80d7a"/></dir><file name="iframe.phtml" hash="4a841413fa569be79b31464fc8f9a88a"/><file name="iframeleaver.phtml" hash="b617751653aa68ada738385a3959e863"/><file name="logo.phtml" hash="b850cc0f8b99d4486dedebc7c913d363"/><dir name="page"><file name="empty.phtml" hash="02134361869217c7445f46af028a050a"/></dir><dir name="payment"><dir name="info"><file name="monext.phtml" hash="ce3c565c9cdae42debacb267e2c9a9ea"/></dir></dir><dir name="wallet"><file name="checkoutbtn.phtml" hash="612617f342e05a34f6a2a618e3bf9162"/><file name="details.phtml" hash="b8d7e336b994261f66f1a9af5841661e"/><file name="form.phtml" hash="7358f21e31266c65982afb15239e659f"/><file name="manage.phtml" hash="994c98abd9b4f2f68f76eefe20c637d1"/><dir name="sidebar"><file name="form.phtml" hash="b7662b515f5195faada2736cf38b01aa"/><file name="notlogged.phtml" hash="169ccfe11034a47c74a9a78e0eac6046"/></dir><file name="sidebar.phtml" hash="2113b8dba864cd94b241dc7ecd6dff0a"/><file name="subscribe.phtml" hash="a737e95240e262e91ec01a02e2ce97a2"/><file name="update.phtml" hash="1b7048c9a839b0b0994beaf5e72b755c"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Monext_Payline.csv" hash="b972d5544df49c367f96e7fecc2ec3eb"/></dir><dir name="fr_FR"><file name="Monext_Payline.csv" hash="f32aeede40718e91cc4ff927f05f93e1"/></dir></target><target name="mageetc"><dir name="modules"><file name="Monext_Payline.xml" hash="d6ff98113ab17d2b19ee89d7a80cf7e9"/></dir></target></contents>
|
| 19 |
<compatible/>
|
| 20 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
| 21 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Payline</name>
|
| 4 |
+
<version>1.7.8</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 10 |
<description>Profitez dès à présent de l’essor du marché de la vente à distance en proposant à vos clients une solution de paiement totalement sécurisée. Grâce à Payline vous permettez à vos clients de régler avec leur moyen de paiement habituel, quel que soit votre canal de vente. Vous leur proposez une interface de paiement facile à utiliser, en mesure de vous accompagner dans votre développement à l’international, en toute simplicité.
|
| 11 |

|
| 12 |
Fonctionnalités : autorisation, autorisation + validation, paiement en n fois, paiement par portefeuille et en 1 clic, validation et remboursement partiels, multi-boutique...</description>
|
| 13 |
+
<notes>Ajout du support Magento CE 1.8 et Magento EE 1.13</notes>
|
|
|
|
| 14 |
<authors><author><name>Payline</name><user>Payline</user><email>support@payline.com</email></author></authors>
|
| 15 |
+
<date>2014-02-27</date>
|
| 16 |
+
<time>13:46:01</time>
|
| 17 |
+
<contents><target name="magecommunity"><dir name="Monext"><dir name="Payline"><dir name="Block"><dir name="Adminhtml"><dir name="Customer"><file name="Grid.php" hash="13b7c449e07ef729fbac8caa708decd1"/></dir><dir name="Managecontracts"><dir name="Edit"><file name="Form.php" hash="05040427f41fb110db974ff5a3eb6ba9"/></dir><file name="Edit.php" hash="7f026d56bfd7a7b03e9e1ad9263a008e"/><file name="Grid.php" hash="de14d88f9c299895168e5d1a214e267f"/></dir><file name="Managecontracts.php" hash="343434dde00ba5d5ba35ed255c44a98e"/><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="Create"><file name="Items.php" hash="c7cd82866d8788ff32d42df8fcdc11f8"/></dir></dir><dir name="Total"><file name="Nxfees.php" hash="cd28c26f717481421bfab12c55ab5378"/></dir></dir></dir></dir><dir name="Checkout"><file name="Total.php" hash="df9fd2acea6ca2be213bfd5e335cedd6"/></dir><file name="Cpt.php" hash="85df4f91ef5ca13f14ca3c15a6ff29e3"/><file name="Direct.php" hash="a176d97fe09a830fbb82d517a71c7049"/><dir name="Info"><file name="Default.php" hash="028809c8e83cd97df32d3fe15833e609"/><file name="Direct.php" hash="f3a87e79429f581e2c896cc99f169aed"/></dir><file name="Logo.php" hash="2b7784f040f04489448fbc13b05ffe74"/><file name="Nx.php" hash="e4fd920c944abe9963f76e111e90ba48"/><dir name="Wallet"><file name="Checkoutbtn.php" hash="bbd8b30f2a37e83ce295295f0fe10ebf"/><file name="Details.php" hash="03cb96bd76d2265b842677b2a6825303"/><file name="Infos.php" hash="ae673ceafb630efbf0308657f766a816"/><file name="Sidebar.php" hash="db70b60be9aa20316f91b3fa3a23a2b9"/></dir><file name="Wallet.php" hash="6326c9e76c84777597f30a89d718ccb4"/></dir><dir name="Helper"><file name="Data.php" hash="4edd6778b8a3342cdbeae5b1493bb649"/><file name="Logger.php" hash="6b7cf036fdf2e6df2cb7fa645c8912b9"/></dir><dir name="Model"><dir name="Contract"><file name="Status.php" hash="67919f148f5d50a266b92e8a32e833f1"/></dir><file name="Contract.php" hash="75ac4b82964f0b87f7b30c4fb0f6b638"/><file name="Cpt.php" hash="94254eb4113dc8a0a6cc1d4c8521a602"/><dir name="Datasource"><file name="Actions.php" hash="2152344a8bd5fbf7dbe711c58f97356c"/><file name="Billingcycles.php" hash="bef244e6d9e744fbbc3afed9cc2050f9"/><file name="Billingoccurrences.php" hash="581ce23ec626ed71791b13c7b11fe6db"/><file name="Capturepaymentoptions.php" hash="8095a47418aa5d7f0cea91718de2323f"/><dir name="Cms"><file name="Block.php" hash="eee43f517c9e29e51f0ca21fdc7b74ed"/></dir><file name="Costs.php" hash="ac09cf06fbe9a1fabddb2a4727dd696f"/><file name="Languages.php" hash="17053eec4880c5c5b1f233a3ca9f0bda"/><file name="Paymentactions.php" hash="6c4aae3b1b4e8b987a4da7393a3a92eb"/><file name="Paymentactionsreauth.php" hash="ef87674b1742240f9c2af17eb38fd994"/><file name="Return.php" hash="d8fac75b41a931a4714ed8acf846d9a2"/><file name="Securitymodes.php" hash="06c55b65e9254d96fa87595322839932"/><file name="Shippingmethods.php" hash="1c67f2af87583aae049c86cb4dcdf881"/><dir name="Status"><file name="Canceled.php" hash="c4e799efcb052536081339520c7b72c2"/><file name="Invoice.php" hash="b2cbeeaf4e78ec4545f6d45faba1922e"/></dir><file name="Status.php" hash="ec9086907481960aa7c669de0db470c3"/><file name="Statusrowempty.php" hash="94532e5d65ff502ccfaf995f2993ad10"/></dir><file name="Direct.php" hash="d7bde5b06b400fb9362a527d556287c2"/><file name="Fees.php" hash="d51c983f019b43e70516b71e163e9a28"/><dir name="Mysql4"><dir name="Contract"><file name="Collection.php" hash="7d71121cac131f11dc012375b4412d85"/><dir name="Status"><file name="Collection.php" hash="3a76926bcab21729191a4045fa9662f7"/></dir><file name="Status.php" hash="3deb3f63a199b110a3fa581ff777172f"/></dir><file name="Contract.php" hash="33cbc24553f2d90ba164363172e2f4c7"/><dir name="Fees"><file name="Collection.php" hash="b00bb0ec3e0a75a2435f6c55d3eea02c"/></dir><file name="Fees.php" hash="c398d9290276806d03af8631a09eac63"/></dir><file name="Nx.php" hash="830433cc06e92665fd554fe0030070f0"/><file name="Observer.php" hash="94824604b2ea364b1bed23bbaa01033b"/><dir name="Order"><file name="Invoice.php" hash="4b1a7d53444ad7069479ac617d7396b6"/><file name="Payment.php" hash="c8207b103d284bde7e511c57d9a5399c"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="f0cb886cd65e23ec397e651d7913ea9e"/></dir></dir></dir><dir name="Total"><dir name="Nx"><file name="Invoice.php" hash="6ead6df53b6169709797d6c08cd4d16c"/><file name="Quote.php" hash="8e7ab3cc36d180c600bb28192193567b"/></dir></dir><file name="Wallet.php" hash="b114d566bd102eb6e25c3070be79303f"/></dir><dir name="PaylinePHPKit"><dir name="configuration"><file name="HighDefinition.ini" hash="689dc8f1ba03e0c04ae6a8758df38f1b"/></dir><dir name="lib"><file name="Payline.wsdl" hash="b22b4ddfb2751c886e25d7202731c686"/><file name="jIniFileModifier.php" hash="f7d309bd1fb8f408528151b0555b188c"/><file name="lib_debug.php" hash="9cec1fd5e55fd625b98b03ca336214d1"/><file name="paylineSDK.php" hash="ad351f993cad972269e320ece22d9231"/></dir><dir name="logs"><file name="2013-07-10.log" hash="43313ee0a50423965a813c2d890c522a"/><file name="2014-01-21.log" hash="e5981e2520850eaa20e5a2dae4b70bf2"/><file name="2014-01-28.log" hash="7dab9bb2d068931a6505da6203c56e62"/><file name="2014-02-03.log" hash="d4089bef110ef9ec7ab212728a290084"/><file name="2014-02-10.log" hash="3f5b62bc33538c9b0faf6770fd3ad5a8"/><file name="2014-02-11.log" hash="5abc8163ccda393902a81c28376f0ec7"/><file name="2014-02-17.log" hash="352c1e1e2552defa39a75b4c8be85d2b"/><file name="2014-02-25.log" hash="217eb08611a1c95b9f6995ee49dc57d7"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ManagecontractsController.php" hash="f5c8ac2227e34766baed1e3e0af4bf87"/></dir><file name="CheckoutonepageController.php" hash="77772924163d5b5a2bc90f1b1ead6020"/><file name="IndexController.php" hash="2304134c659d77cd7a4d31d15cda4ea2"/><file name="UnloggedwalletController.php" hash="90af5be8a8fa8dd1b2e29a442c0b7aab"/><file name="WalletController.php" hash="9bedfe037d2d845d4b1fe2acbbf69033"/></dir><dir name="etc"><file name="config.xml" hash="c19f127b3e4926628495888d22f63a7f"/><file name="system.xml" hash="0d83d9a3b18a03bbc71191da32c22bc2"/></dir><dir name="sql"><dir name="payline_setup"><file name="mysql4-install-1.6.0.php" hash="ed5013f743ba36a7b2884fc432f97e16"/><file name="mysql4-upgrade-1.7.2-1.7.3.php" hash="7eeb0f5cfc6c379d8300428a5ec39c46"/><file name="mysql4-upgrade-1.7.5-1.7.6.php" hash="0ebfd38e90a8139c67087fc1e16f1aba"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><file name="payline.css" hash="414432db8dc1d0682f4988917bd8dd6f"/></dir><dir name="images"><dir name="payline_moyens_paiement"><file name="1euro.png" hash="8d5e4917497ba61120090e166014886d"/><file name="3xcb.png" hash="c76c834e238d3a8e3b3b4a2c116f189c"/><file name="amex.png" hash="a47d6bfc7eb4e06f3e3acb8a55cfd3c9"/><file name="amexoneclick.png" hash="a47d6bfc7eb4e06f3e3acb8a55cfd3c9"/><file name="aurore.png" hash="e2be3e130bd1212d9375a3bdb354cb78"/><file name="buyster.png" hash="8ec0f280dccd1c18c84cfbd368c6f579"/><file name="casino.png" hash="ce5b159bc98c7f71e8149e1d8b256dbd"/><file name="cb.png" hash="a5d9178bc831cbc78238dff27f79a48b"/><file name="cofinoga.png" hash="1dd7025dd22ac998aa968b38693a6a71"/><file name="cyrillus.png" hash="f762ad007f552bf409f5baa610f6746a"/><file name="default.png" hash="26c2dff177e1f8a94994352f6a7cec88"/><file name="diners.png" hash="6c907b8f0233b035ec4c27c2e9542406"/><file name="elv.png" hash="d0bd93c59ef64709b9a5cd81ff557e28"/><file name="fnac.png" hash="c0a7aa595b18fb52105d9337fda3eb1c"/><file name="ideal.png" hash="e0594aed23073daab150d8288a81103c"/><file name="internetplus.png" hash="fe1bc34531cfd6fd3dab6a6614e7ca3f"/><file name="jcb.png" hash="9801aeed2550ffccbdc3fe88b5292a60"/><file name="kangourou.png" hash="5fac97aa8f70380ec3b601ff32fdc012"/><file name="leetchi.png" hash="ecf6612b0228b889c723498f476c4309"/><file name="maestro.png" hash="19d331ae4783d590dba694cbcbb26da9"/><file name="mandarine.png" hash="745a8999468f60753c9c51a0052c527a"/><file name="mastercard.png" hash="cb7aa4a6f3870145295c4ce16a602d1e"/><file name="maxicheque.png" hash="fc3e2988c9944467fc8d4e44b4118a32"/><file name="mcvisa.png" hash="ba6349155be595d6da5ee584241c2946"/><file name="moneo.png" hash="283cf98332a5c05521229282875a158d"/><file name="neosurf.png" hash="9a747833ce3d9cbb3c26d4a11d7e4b4b"/><file name="okshopping.png" hash="8498bd45cf87124d12c4bfbf81272f14"/><file name="pass.png" hash="adb923e16cd9419960a51d0d41f26f97"/><file name="passvisa.png" hash="bd88d99714e9a3ba5000f881a0289f58"/><file name="payfair.png" hash="82f5dc87ea6f43f386b0e4887f33e5e8"/><file name="paypal.png" hash="2e9a634ffb111e1ce20b5e9017a35b29"/><file name="paysafecard.png" hash="a6776e5140ad443596587e3de12cd6a2"/><file name="printemps.png" hash="072cde23d8600c39457cf02a983b6d7f"/><file name="privilege.png" hash="883c70c0ce1c5bac23865397b0b63c5c"/><file name="skrill.png" hash="5d77ac7b63309a8691c27628aad9f60a"/><file name="sofinco.png" hash="93081c5cb7ce8ba216bbc42019cde8d3"/><file name="surcouf.png" hash="d8633f7d4b47460faac4e8657ce42f4d"/><file name="switch.png" hash="e2924bb36ad3de3d3ee61fa4dc3ffa8b"/><file name="ticketpremium.png" hash="5146987c213691e20a5461d7eed59f09"/><file name="ticketsurf.png" hash="bcd9aeb8b2784ea6a06e80cc2b2393ec"/><file name="visa.png" hash="bd8890f0147d451bf1a488d4e268332c"/><file name="wexpay.png" hash="1f3bb2ec092f283a8b27c66e2c32f22f"/></dir><file name="payline-logo.png" hash="553b387e92d95aef92a35f332e75cac4"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="payline.xml" hash="0488c4cfab8321f91ec7a9adaf482837"/></dir><dir name="template"><dir name="payline"><file name="contracts.phtml" hash="6d398a529e799880533d954f53f6df96"/><dir name="customer"><dir name="tab"><file name="view.phtml" hash="1c3d9c842c802967bc867ff2be008504"/></dir></dir><dir name="payment"><dir name="info"><file name="monext.phtml" hash="6daa4bb0bc10c81fcf2a099dd789903d"/></dir></dir><file name="switcher.phtml" hash="ced863f3f520e271497c0a6bcc4b38e4"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="payline.xml" hash="7ec509d128fc9e459dd2bc0134500e2e"/></dir><dir name="template"><dir name="payline"><file name="Cpt.phtml" hash="d5a78eb6488ad0985a4fd62bd10e05e3"/><file name="Direct.phtml" hash="714ea31d44c8b6b25246fd97783aaad0"/><file name="Payline.phtml" hash="dc264172e5a6c5ae627b697208dff65d"/><dir name="checkout"><dir name="onepage"><file name="addjs.phtml" hash="8baee7d7d804635a6062bbb41ad4f162"/><dir name="info"><file name="default.phtml" hash="4689f891bab252ff10bb789d37e9bc2b"/></dir><dir name="payment"><file name="methods.phtml" hash="1194131c240a1154e8d0cf1c95a1e74e"/></dir><file name="shipping-method.phtml" hash="a81a9f308f15008842bfd9ba69852aa9"/></dir><file name="onepage.phtml" hash="5f159dfc756fce0ee5f80a211ae4136d"/><file name="total.phtml" hash="24170fbb2b43da6fc3d4a51db4b80d7a"/></dir><file name="iframe.phtml" hash="4a841413fa569be79b31464fc8f9a88a"/><file name="iframeleaver.phtml" hash="b617751653aa68ada738385a3959e863"/><file name="logo.phtml" hash="b850cc0f8b99d4486dedebc7c913d363"/><dir name="page"><file name="empty.phtml" hash="02134361869217c7445f46af028a050a"/></dir><dir name="payment"><dir name="info"><file name="monext.phtml" hash="ce3c565c9cdae42debacb267e2c9a9ea"/></dir></dir><dir name="wallet"><file name="checkoutbtn.phtml" hash="612617f342e05a34f6a2a618e3bf9162"/><file name="details.phtml" hash="b8d7e336b994261f66f1a9af5841661e"/><file name="form.phtml" hash="7358f21e31266c65982afb15239e659f"/><file name="manage.phtml" hash="994c98abd9b4f2f68f76eefe20c637d1"/><dir name="sidebar"><file name="form.phtml" hash="b7662b515f5195faada2736cf38b01aa"/><file name="notlogged.phtml" hash="169ccfe11034a47c74a9a78e0eac6046"/></dir><file name="sidebar.phtml" hash="2113b8dba864cd94b241dc7ecd6dff0a"/><file name="subscribe.phtml" hash="a737e95240e262e91ec01a02e2ce97a2"/><file name="update.phtml" hash="1b7048c9a839b0b0994beaf5e72b755c"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Monext_Payline.csv" hash="b972d5544df49c367f96e7fecc2ec3eb"/></dir><dir name="fr_FR"><file name="Monext_Payline.csv" hash="f32aeede40718e91cc4ff927f05f93e1"/></dir></target><target name="mageetc"><dir name="modules"><file name="Monext_Payline.xml" hash="d6ff98113ab17d2b19ee89d7a80cf7e9"/></dir></target></contents>
|
| 18 |
<compatible/>
|
| 19 |
<dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
|
| 20 |
</package>
|
