Version Notes
* Approved Status and Declined Status are now customizable by the user via Riskified configuration
Download this release
Release Info
Developer | Riskified_Mage |
Extension | riskified_magento |
Version | 1.0.6.6 |
Comparing to | |
See all releases |
Code changes from version 1.0.6.5 to 1.0.6.6
- app/code/community/Riskified/Full/.DS_Store +0 -0
- app/code/community/Riskified/Full/Helper/Data.php +15 -1
- app/code/community/Riskified/Full/Helper/Order.php +47 -1
- app/code/community/Riskified/Full/Helper/Order/Status.php +37 -3
- app/code/community/Riskified/Full/Model/Observer.php +2 -6
- app/code/community/Riskified/Full/Model/System/Config/Source/CanceledStateStatuses.php +13 -0
- app/code/community/Riskified/Full/Model/System/Config/Source/HoldedStateStatuses.php +13 -0
- app/code/community/Riskified/Full/Model/System/Config/Source/ProcessingStateStatuses.php +13 -0
- app/code/community/Riskified/Full/etc/config.xml +8 -3
- app/code/community/Riskified/Full/etc/system.xml +71 -11
- lib/riskified_php_sdk/src/Riskified/.DS_Store +0 -0
- lib/riskified_php_sdk/src/Riskified/OrderWebhook/Model/Address.php +2 -2
- lib/riskified_scripts/riskified_historical_upload.php +0 -69
- package.xml +5 -5
app/code/community/Riskified/Full/.DS_Store
CHANGED
Binary file
|
app/code/community/Riskified/Full/Helper/Data.php
CHANGED
@@ -42,10 +42,24 @@ class Riskified_Full_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
42 |
return Mage::getStoreConfig('fullsection/full/declined_state');
|
43 |
}
|
44 |
|
|
|
|
|
|
|
|
|
|
|
45 |
public function getApprovedState() {
|
46 |
return Mage::getStoreConfig('fullsection/full/approved_state');
|
47 |
}
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
public function getSessionId(){
|
50 |
return Mage::getModel('core/cookie')->get('rCookie');
|
51 |
}
|
42 |
return Mage::getStoreConfig('fullsection/full/declined_state');
|
43 |
}
|
44 |
|
45 |
+
public function getDeclinedStatus() {
|
46 |
+
$state = $this->getDeclinedState();
|
47 |
+
return Mage::getStoreConfig('fullsection/full/declined_status_'.$state);
|
48 |
+
}
|
49 |
+
|
50 |
public function getApprovedState() {
|
51 |
return Mage::getStoreConfig('fullsection/full/approved_state');
|
52 |
}
|
53 |
+
|
54 |
+
public function getApprovedStatus() {
|
55 |
+
$state = $this->getApprovedState();
|
56 |
+
return Mage::getStoreConfig('fullsection/full/approved_status_'.$state);
|
57 |
+
}
|
58 |
+
|
59 |
+
public function isDebugLogsEnabled() {
|
60 |
+
return (bool) Mage::getStoreConfig('fullsection/full/debug_logs');
|
61 |
+
}
|
62 |
+
|
63 |
public function getSessionId(){
|
64 |
return Mage::getModel('core/cookie')->get('rCookie');
|
65 |
}
|
app/code/community/Riskified/Full/Helper/Order.php
CHANGED
@@ -215,6 +215,11 @@ class Riskified_Full_Helper_Order extends Mage_Core_Helper_Abstract {
|
|
215 |
}
|
216 |
|
217 |
private function getOrder($model) {
|
|
|
|
|
|
|
|
|
|
|
218 |
$order_array = array(
|
219 |
'id' => $this->getOrderOrigId($model),
|
220 |
'name' => $model->getIncrementId(),
|
@@ -222,7 +227,7 @@ class Riskified_Full_Helper_Order extends Mage_Core_Helper_Abstract {
|
|
222 |
'created_at' => $this->formatDateAsIso8601($model->getCreatedAt()),
|
223 |
'currency' => $model->getOrderCurrencyCode(), // was getBaseCurrencyCode() before by mistake
|
224 |
'updated_at' => $this->formatDateAsIso8601($model->getUpdatedAt()),
|
225 |
-
'gateway' => $
|
226 |
'browser_ip' => $this->getRemoteIp($model),
|
227 |
'cart_token' => Mage::helper('full')->getSessionId(),
|
228 |
'note' => $model->getCustomerNote(),
|
@@ -310,6 +315,43 @@ class Riskified_Full_Helper_Order extends Mage_Core_Helper_Abstract {
|
|
310 |
return $this->getAddress($mageAddr);
|
311 |
}
|
312 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
private function getPaymentDetails($model) {
|
314 |
$payment = $model->getPayment();
|
315 |
if(!$payment) {
|
@@ -404,6 +446,10 @@ class Riskified_Full_Helper_Order extends Mage_Core_Helper_Abstract {
|
|
404 |
}
|
405 |
$credit_card_bin = $payment->getAdditionalInformation('riskified_cc_bin');
|
406 |
|
|
|
|
|
|
|
|
|
407 |
return new Model\PaymentDetails(array_filter(array(
|
408 |
'authorization_id' => $transactionId,
|
409 |
'avs_result_code' => $avs_result_code,
|
215 |
}
|
216 |
|
217 |
private function getOrder($model) {
|
218 |
+
$gateway = 'unavailable';
|
219 |
+
if ($model->getPayment()) {
|
220 |
+
$gateway = $model->getPayment()->getMethod();
|
221 |
+
}
|
222 |
+
|
223 |
$order_array = array(
|
224 |
'id' => $this->getOrderOrigId($model),
|
225 |
'name' => $model->getIncrementId(),
|
227 |
'created_at' => $this->formatDateAsIso8601($model->getCreatedAt()),
|
228 |
'currency' => $model->getOrderCurrencyCode(), // was getBaseCurrencyCode() before by mistake
|
229 |
'updated_at' => $this->formatDateAsIso8601($model->getUpdatedAt()),
|
230 |
+
'gateway' => $gateway,
|
231 |
'browser_ip' => $this->getRemoteIp($model),
|
232 |
'cart_token' => Mage::helper('full')->getSessionId(),
|
233 |
'note' => $model->getCustomerNote(),
|
315 |
return $this->getAddress($mageAddr);
|
316 |
}
|
317 |
|
318 |
+
private function logPaymentData($model) {
|
319 |
+
Mage::helper('full/log')->log("Payment info debug Logs:");
|
320 |
+
try {
|
321 |
+
$payment = $model->getPayment();
|
322 |
+
$gateway_name = $payment->getMethod();
|
323 |
+
Mage::helper('full/log')->log("Payment Gateway: ".$gateway_name);
|
324 |
+
Mage::helper('full/log')->log("payment->getCcLast4(): ".$payment->getCcLast4());
|
325 |
+
Mage::helper('full/log')->log("payment->getCcType(): ".$payment->getCcType());
|
326 |
+
Mage::helper('full/log')->log("payment->getCcCidStatus(): ".$payment->getCcCidStatus());
|
327 |
+
Mage::helper('full/log')->log("payment->getCcAvsStatus(): ".$payment->getCcAvsStatus());
|
328 |
+
Mage::helper('full/log')->log("payment->getAdditionalInformation(): ".PHP_EOL.var_export($payment->getAdditionalInformation(), 1));
|
329 |
+
# paypal_avs_code,paypal_cvv2_match,paypal_fraud_filters,avs_result,cvv2_check_result,address_verification,
|
330 |
+
# postcode_verification,payment_status,pending_reason,payer_id,payer_status,email,credit_card_cvv2,
|
331 |
+
# cc_avs_status,cc_approval,cc_last4,cc_owner,cc_exp_month,cc_exp_year,
|
332 |
+
$sage = $model->getSagepayInfo();
|
333 |
+
if(is_object($sage)) {
|
334 |
+
#####,postcode_result,avscv2,address_status,payer_status
|
335 |
+
Mage::helper('full/log')->log("sagepay->getLastFourDigits(): ".$sage->getLastFourDigits());
|
336 |
+
Mage::helper('full/log')->log("sagepay->last_four_digits: ".$sage->getData('last_four_digits'));
|
337 |
+
Mage::helper('full/log')->log("sagepay->getCardType(): ".$sage->getCardType());
|
338 |
+
Mage::helper('full/log')->log("sagepay->card_type: ".$sage->getData('card_type'));
|
339 |
+
Mage::helper('full/log')->log("sagepay->getAvsCv2Status: ".$sage->getAvsCv2Status());
|
340 |
+
Mage::helper('full/log')->log("sagepay->address_result: ".$sage->getData('address_result'));
|
341 |
+
Mage::helper('full/log')->log("sagepay->getCv2result: ".$sage->getCv2result());
|
342 |
+
Mage::helper('full/log')->log("sagepay->cv2result: ".$sage->getData('cv2result'));
|
343 |
+
Mage::helper('full/log')->log("sagepay->getAvscv2: ".$sage->getAvscv2());
|
344 |
+
Mage::helper('full/log')->log("sagepay->getAddressResult: ".$sage->getAddressResult());
|
345 |
+
Mage::helper('full/log')->log("sagepay->getPostcodeResult: ".$sage->getPostcodeResult());
|
346 |
+
Mage::helper('full/log')->log("sagepay->getDeclineCode: ".$sage->getDeclineCode());
|
347 |
+
Mage::helper('full/log')->log("sagepay->getBankAuthCode: ".$sage->getBankAuthCode());
|
348 |
+
Mage::helper('full/log')->log("sagepay->getPayerStatus: ".$sage->getPayerStatus());
|
349 |
+
}
|
350 |
+
} catch(Exception $e) {
|
351 |
+
Mage::helper('full/log')->logException($e);
|
352 |
+
}
|
353 |
+
}
|
354 |
+
|
355 |
private function getPaymentDetails($model) {
|
356 |
$payment = $model->getPayment();
|
357 |
if(!$payment) {
|
446 |
}
|
447 |
$credit_card_bin = $payment->getAdditionalInformation('riskified_cc_bin');
|
448 |
|
449 |
+
if(Mage::helper('full')->isDebugLogsEnabled()) {
|
450 |
+
$this->logPaymentData($model);
|
451 |
+
}
|
452 |
+
|
453 |
return new Model\PaymentDetails(array_filter(array(
|
454 |
'authorization_id' => $transactionId,
|
455 |
'avs_result_code' => $avs_result_code,
|
app/code/community/Riskified/Full/Helper/Order/Status.php
CHANGED
@@ -89,7 +89,7 @@ class Riskified_Full_Helper_Order_Status extends Mage_Core_Helper_Abstract
|
|
89 |
*/
|
90 |
public function getSelectedApprovedState()
|
91 |
{
|
92 |
-
$state = Mage::
|
93 |
|
94 |
if (!in_array($state, array(Mage_Sales_Model_Order::STATE_PROCESSING,Mage_Sales_Model_Order::STATE_HOLDED))) {
|
95 |
$state = Mage_Sales_Model_Order::STATE_PROCESSING;
|
@@ -99,13 +99,30 @@ class Riskified_Full_Helper_Order_Status extends Mage_Core_Helper_Abstract
|
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
-
* Get the current
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
*
|
104 |
* @return string
|
105 |
*/
|
106 |
public function getSelectedDeclinedState()
|
107 |
{
|
108 |
-
$state = Mage::
|
109 |
|
110 |
if (!in_array($state, array(Mage_Sales_Model_Order::STATE_CANCELED,Mage_Sales_Model_Order::STATE_HOLDED))) {
|
111 |
$state = Mage_Sales_Model_Order::STATE_CANCELED;
|
@@ -113,4 +130,21 @@ class Riskified_Full_Helper_Order_Status extends Mage_Core_Helper_Abstract
|
|
113 |
|
114 |
return $state;
|
115 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
89 |
*/
|
90 |
public function getSelectedApprovedState()
|
91 |
{
|
92 |
+
$state = Mage::helper('full')->getApprovedState();
|
93 |
|
94 |
if (!in_array($state, array(Mage_Sales_Model_Order::STATE_PROCESSING,Mage_Sales_Model_Order::STATE_HOLDED))) {
|
95 |
$state = Mage_Sales_Model_Order::STATE_PROCESSING;
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
+
* Get the current approved status from the configuration
|
103 |
+
*
|
104 |
+
* @return string
|
105 |
+
*/
|
106 |
+
public function getSelectedApprovedStatus()
|
107 |
+
{
|
108 |
+
$status = Mage::helper('full')->getApprovedStatus();
|
109 |
+
|
110 |
+
$allowedStatuses = Mage::getSingleton('sales/order_config')->getStateStatuses($this->getSelectedApprovedState());
|
111 |
+
if (!in_array($status, $allowedStatuses)) {
|
112 |
+
$status = $this->getRiskifiedApprovedStatusCode();
|
113 |
+
}
|
114 |
+
|
115 |
+
return $status;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Get the current declined status from the configuration
|
120 |
*
|
121 |
* @return string
|
122 |
*/
|
123 |
public function getSelectedDeclinedState()
|
124 |
{
|
125 |
+
$state = Mage::helper('full')->getDeclinedState();
|
126 |
|
127 |
if (!in_array($state, array(Mage_Sales_Model_Order::STATE_CANCELED,Mage_Sales_Model_Order::STATE_HOLDED))) {
|
128 |
$state = Mage_Sales_Model_Order::STATE_CANCELED;
|
130 |
|
131 |
return $state;
|
132 |
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Get the current declined status from the configuration
|
136 |
+
*
|
137 |
+
* @return string
|
138 |
+
*/
|
139 |
+
public function getSelectedDeclinedStatus()
|
140 |
+
{
|
141 |
+
$status = Mage::helper('full')->getDeclinedStatus();
|
142 |
+
|
143 |
+
$allowedStatuses = Mage::getSingleton('sales/order_config')->getStateStatuses($this->getSelectedDeclinedState());
|
144 |
+
if (!in_array($status, $allowedStatuses)) {
|
145 |
+
$status = $this->getRiskifiedDeclinedStatusCode();
|
146 |
+
}
|
147 |
+
|
148 |
+
return $status;
|
149 |
+
}
|
150 |
}
|
app/code/community/Riskified/Full/Model/Observer.php
CHANGED
@@ -166,11 +166,7 @@ class Riskified_Full_Model_Observer {
|
|
166 |
&& ($currentStatus == $riskifiedOrderStatusHelper->getOnHoldStatusCode()
|
167 |
|| $currentStatus == $riskifiedOrderStatusHelper->getTransportErrorStatusCode())) {
|
168 |
$newState = $riskifiedOrderStatusHelper->getSelectedApprovedState();
|
169 |
-
|
170 |
-
$newStatus = TRUE;
|
171 |
-
}else {
|
172 |
-
$newStatus = $riskifiedOrderStatusHelper->getRiskifiedApprovedStatusCode();
|
173 |
-
}
|
174 |
}
|
175 |
|
176 |
break;
|
@@ -179,7 +175,7 @@ class Riskified_Full_Model_Observer {
|
|
179 |
&& ($currentStatus == $riskifiedOrderStatusHelper->getOnHoldStatusCode()
|
180 |
|| $currentStatus == $riskifiedOrderStatusHelper->getTransportErrorStatusCode())) {
|
181 |
$newState = $riskifiedOrderStatusHelper->getSelectedDeclinedState();
|
182 |
-
$newStatus = $riskifiedOrderStatusHelper->
|
183 |
}
|
184 |
|
185 |
break;
|
166 |
&& ($currentStatus == $riskifiedOrderStatusHelper->getOnHoldStatusCode()
|
167 |
|| $currentStatus == $riskifiedOrderStatusHelper->getTransportErrorStatusCode())) {
|
168 |
$newState = $riskifiedOrderStatusHelper->getSelectedApprovedState();
|
169 |
+
$newStatus = $riskifiedOrderStatusHelper->getSelectedApprovedStatus();
|
|
|
|
|
|
|
|
|
170 |
}
|
171 |
|
172 |
break;
|
175 |
&& ($currentStatus == $riskifiedOrderStatusHelper->getOnHoldStatusCode()
|
176 |
|| $currentStatus == $riskifiedOrderStatusHelper->getTransportErrorStatusCode())) {
|
177 |
$newState = $riskifiedOrderStatusHelper->getSelectedDeclinedState();
|
178 |
+
$newStatus = $riskifiedOrderStatusHelper->getSelectedDeclinedStatus();
|
179 |
}
|
180 |
|
181 |
break;
|
app/code/community/Riskified/Full/Model/System/Config/Source/CanceledStateStatuses.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Riskified_Full_Model_System_Config_Source_CanceledStateStatuses
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* @return array
|
7 |
+
*/
|
8 |
+
public function toOptionArray()
|
9 |
+
{
|
10 |
+
$arr = Mage::getSingleton('sales/order_config')->getStateStatuses(Mage_Sales_Model_Order::STATE_CANCELED);
|
11 |
+
return array_map(function($status) { return array('value' => $status, 'label' => Mage::helper('full')->__($status)); }, $arr);
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Riskified/Full/Model/System/Config/Source/HoldedStateStatuses.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Riskified_Full_Model_System_Config_Source_HoldedStateStatuses
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* @return array
|
7 |
+
*/
|
8 |
+
public function toOptionArray()
|
9 |
+
{
|
10 |
+
$arr = Mage::getSingleton('sales/order_config')->getStateStatuses(Mage_Sales_Model_Order::STATE_HOLDED);
|
11 |
+
return array_map(function($status) { return array('value' => $status, 'label' => Mage::helper('full')->__($status)); }, $arr);
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Riskified/Full/Model/System/Config/Source/ProcessingStateStatuses.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Riskified_Full_Model_System_Config_Source_ProcessingStateStatuses
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* @return array
|
7 |
+
*/
|
8 |
+
public function toOptionArray()
|
9 |
+
{
|
10 |
+
$arr = Mage::getSingleton('sales/order_config')->getStateStatuses(Mage_Sales_Model_Order::STATE_PROCESSING);
|
11 |
+
return array_map(function($status) { return array('value' => $status, 'label' => Mage::helper('full')->__($status)); }, $arr);
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Riskified/Full/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Riskified_Full>
|
5 |
-
<version>1.0.6.
|
6 |
</Riskified_Full>
|
7 |
</modules>
|
8 |
|
@@ -282,11 +282,16 @@
|
|
282 |
<default>
|
283 |
<fullsection>
|
284 |
<full>
|
285 |
-
<order_status_sync>0</order_status_sync>
|
286 |
-
<env>SANDBOX</env>
|
287 |
<beaconurl>beacon.riskified.com</beaconurl>
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
<auto_invoice_enabled>0</auto_invoice_enabled>
|
289 |
<auto_invoice_capture_case>online</auto_invoice_capture_case>
|
|
|
290 |
</full>
|
291 |
</fullsection>
|
292 |
</default>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Riskified_Full>
|
5 |
+
<version>1.0.6.6</version>
|
6 |
</Riskified_Full>
|
7 |
</modules>
|
8 |
|
282 |
<default>
|
283 |
<fullsection>
|
284 |
<full>
|
|
|
|
|
285 |
<beaconurl>beacon.riskified.com</beaconurl>
|
286 |
+
<env>SANDBOX</env>
|
287 |
+
<!--<domain></domain>-->
|
288 |
+
<!--<key></key>-->
|
289 |
+
<order_status_sync>0</order_status_sync>
|
290 |
+
<!--<approved_state>processing</approved_state>-->
|
291 |
+
<!--<declined_state>canceled</declined_state>-->
|
292 |
<auto_invoice_enabled>0</auto_invoice_enabled>
|
293 |
<auto_invoice_capture_case>online</auto_invoice_capture_case>
|
294 |
+
<debug_logs>0</debug_logs>
|
295 |
</full>
|
296 |
</fullsection>
|
297 |
</default>
|
app/code/community/Riskified/Full/etc/system.xml
CHANGED
@@ -42,7 +42,7 @@
|
|
42 |
<show_in_default>1</show_in_default>
|
43 |
<show_in_website>0</show_in_website>
|
44 |
<show_in_store>0</show_in_store>
|
45 |
-
<comment><![CDATA[This is
|
46 |
</domain>
|
47 |
<key translate="label comment">
|
48 |
<label>Auth token</label>
|
@@ -59,9 +59,9 @@
|
|
59 |
<br>Requires the <i>Order notification endpoint</i> to be configured correctly in your Riskified Settings page.
|
60 |
<br>Using the following mapping:
|
61 |
<br>'submit' => state: 'On Hold', status: 'On Hold (Riskified)'
|
62 |
-
<br>'approve' => state: [defined bellow by 'Approved State' value], status: 'Approved
|
63 |
-
<br>'decline' => state: [defined bellow by 'Declined State' value], status: 'Declined
|
64 |
-
<br> in case of transfer error => state: 'On Hold, status: 'On Hold (Riskified Transport Error)'
|
65 |
<br><b>Important:</b> Might affect other extensions that are dependent on an Order's status.
|
66 |
]]></comment>
|
67 |
<frontend_type>select</frontend_type>
|
@@ -84,10 +84,38 @@
|
|
84 |
<order_status_sync>1</order_status_sync>
|
85 |
</depends>
|
86 |
</approved_state>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
<declined_state translate="label comment">
|
88 |
<label>Declined State</label>
|
89 |
<frontend_type>select</frontend_type>
|
90 |
-
<sort_order>
|
91 |
<show_in_default>1</show_in_default>
|
92 |
<show_in_website>0</show_in_website>
|
93 |
<show_in_store>0</show_in_store>
|
@@ -97,15 +125,34 @@
|
|
97 |
<order_status_sync>1</order_status_sync>
|
98 |
</depends>
|
99 |
</declined_state>
|
100 |
-
|
101 |
-
<
|
102 |
-
<frontend_type>
|
103 |
-
<sort_order>
|
104 |
-
<class>riskified_activationstatus</class>
|
105 |
<show_in_default>1</show_in_default>
|
106 |
<show_in_website>0</show_in_website>
|
107 |
<show_in_store>0</show_in_store>
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
<auto_invoice_enabled translate="label comment">
|
110 |
<label>Enable Auto-Invoice</label>
|
111 |
<frontend_type>select</frontend_type>
|
@@ -132,6 +179,19 @@
|
|
132 |
<order_status_sync>1</order_status_sync>
|
133 |
</depends>
|
134 |
</auto_invoice_capture_case>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
</fields>
|
136 |
</full>
|
137 |
</groups>
|
42 |
<show_in_default>1</show_in_default>
|
43 |
<show_in_website>0</show_in_website>
|
44 |
<show_in_store>0</show_in_store>
|
45 |
+
<comment><![CDATA[This is the shop domain used during signup]]></comment>
|
46 |
</domain>
|
47 |
<key translate="label comment">
|
48 |
<label>Auth token</label>
|
59 |
<br>Requires the <i>Order notification endpoint</i> to be configured correctly in your Riskified Settings page.
|
60 |
<br>Using the following mapping:
|
61 |
<br>'submit' => state: 'On Hold', status: 'On Hold (Riskified)'
|
62 |
+
<br>'approve' => state: [defined bellow by 'Approved State' value], status: [defined bellow by 'Approved Status' value]
|
63 |
+
<br>'decline' => state: [defined bellow by 'Declined State' value], status: [defined bellow by 'Declined Status' value]
|
64 |
+
<br> in case of transfer error => state: 'On Hold', status: 'On Hold (Riskified Transport Error)'
|
65 |
<br><b>Important:</b> Might affect other extensions that are dependent on an Order's status.
|
66 |
]]></comment>
|
67 |
<frontend_type>select</frontend_type>
|
84 |
<order_status_sync>1</order_status_sync>
|
85 |
</depends>
|
86 |
</approved_state>
|
87 |
+
<approved_status_processing translate="label comment">
|
88 |
+
<label>Approved Status</label>
|
89 |
+
<frontend_type>select</frontend_type>
|
90 |
+
<sort_order>12</sort_order>
|
91 |
+
<show_in_default>1</show_in_default>
|
92 |
+
<show_in_website>0</show_in_website>
|
93 |
+
<show_in_store>0</show_in_store>
|
94 |
+
<comment><![CDATA[The Magento status to move to when an order is approved]]></comment>
|
95 |
+
<source_model>full/system_config_source_processingStateStatuses</source_model>
|
96 |
+
<depends>
|
97 |
+
<order_status_sync>1</order_status_sync>
|
98 |
+
<approved_state>processing</approved_state>
|
99 |
+
</depends>
|
100 |
+
</approved_status_processing>
|
101 |
+
<approved_status_holded translate="label comment">
|
102 |
+
<label>Approved Status</label>
|
103 |
+
<frontend_type>select</frontend_type>
|
104 |
+
<sort_order>12</sort_order>
|
105 |
+
<show_in_default>1</show_in_default>
|
106 |
+
<show_in_website>0</show_in_website>
|
107 |
+
<show_in_store>0</show_in_store>
|
108 |
+
<comment><![CDATA[The Magento status to move to when an order is approved]]></comment>
|
109 |
+
<source_model>full/system_config_source_holdedStateStatuses</source_model>
|
110 |
+
<depends>
|
111 |
+
<order_status_sync>1</order_status_sync>
|
112 |
+
<approved_state>holded</approved_state>
|
113 |
+
</depends>
|
114 |
+
</approved_status_holded>
|
115 |
<declined_state translate="label comment">
|
116 |
<label>Declined State</label>
|
117 |
<frontend_type>select</frontend_type>
|
118 |
+
<sort_order>13</sort_order>
|
119 |
<show_in_default>1</show_in_default>
|
120 |
<show_in_website>0</show_in_website>
|
121 |
<show_in_store>0</show_in_store>
|
125 |
<order_status_sync>1</order_status_sync>
|
126 |
</depends>
|
127 |
</declined_state>
|
128 |
+
<declined_status_canceled translate="label comment">
|
129 |
+
<label>Declined Status</label>
|
130 |
+
<frontend_type>select</frontend_type>
|
131 |
+
<sort_order>14</sort_order>
|
|
|
132 |
<show_in_default>1</show_in_default>
|
133 |
<show_in_website>0</show_in_website>
|
134 |
<show_in_store>0</show_in_store>
|
135 |
+
<comment><![CDATA[The Magento status to move to when an order is declined]]></comment>
|
136 |
+
<source_model>full/system_config_source_canceledStateStatuses</source_model>
|
137 |
+
<depends>
|
138 |
+
<order_status_sync>1</order_status_sync>
|
139 |
+
<declined_state>canceled</declined_state>
|
140 |
+
</depends>
|
141 |
+
</declined_status_canceled>
|
142 |
+
<declined_status_holded translate="label comment">
|
143 |
+
<label>Declined Status</label>
|
144 |
+
<frontend_type>select</frontend_type>
|
145 |
+
<sort_order>14</sort_order>
|
146 |
+
<show_in_default>1</show_in_default>
|
147 |
+
<show_in_website>0</show_in_website>
|
148 |
+
<show_in_store>0</show_in_store>
|
149 |
+
<comment><![CDATA[The Magento status to move to when an order is declined]]></comment>
|
150 |
+
<source_model>full/system_config_source_holdedStateStatuses</source_model>
|
151 |
+
<depends>
|
152 |
+
<order_status_sync>1</order_status_sync>
|
153 |
+
<declined_state>holded</declined_state>
|
154 |
+
</depends>
|
155 |
+
</declined_status_holded>
|
156 |
<auto_invoice_enabled translate="label comment">
|
157 |
<label>Enable Auto-Invoice</label>
|
158 |
<frontend_type>select</frontend_type>
|
179 |
<order_status_sync>1</order_status_sync>
|
180 |
</depends>
|
181 |
</auto_invoice_capture_case>
|
182 |
+
<debug_logs translate="label comment">
|
183 |
+
<label>Debug logs</label>
|
184 |
+
<frontend_type>select</frontend_type>
|
185 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
186 |
+
<sort_order>130</sort_order>
|
187 |
+
<show_in_default>1</show_in_default>
|
188 |
+
<show_in_website>0</show_in_website>
|
189 |
+
<show_in_store>0</show_in_store>
|
190 |
+
<comment><![CDATA[Write additional debug logs?]]></comment>
|
191 |
+
<depends>
|
192 |
+
<order_status_sync>1</order_status_sync>
|
193 |
+
</depends>
|
194 |
+
</debug_logs>
|
195 |
</fields>
|
196 |
</full>
|
197 |
</groups>
|
lib/riskified_php_sdk/src/Riskified/.DS_Store
DELETED
Binary file
|
lib/riskified_php_sdk/src/Riskified/OrderWebhook/Model/Address.php
CHANGED
@@ -34,9 +34,9 @@ class Address extends AbstractModel {
|
|
34 |
'address1' => 'string optional',
|
35 |
'address2' => 'string optional',
|
36 |
'province' => 'string optional',
|
37 |
-
'province_code' => 'string /^[A-
|
38 |
'zip' => 'string optional',
|
39 |
'latitude' => 'float optional',
|
40 |
'longitude' => 'float optional',
|
41 |
);
|
42 |
-
}
|
34 |
'address1' => 'string optional',
|
35 |
'address2' => 'string optional',
|
36 |
'province' => 'string optional',
|
37 |
+
'province_code' => 'string /^[A-Z0-9]{1,3}$/i optional',
|
38 |
'zip' => 'string optional',
|
39 |
'latitude' => 'float optional',
|
40 |
'longitude' => 'float optional',
|
41 |
);
|
42 |
+
}
|
lib/riskified_scripts/riskified_historical_upload.php
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
// if this is not run from the Magento root, use chdir() to move execution back.
|
3 |
-
//chdir('../magento/');
|
4 |
-
|
5 |
-
set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path());
|
6 |
-
require 'app/Mage.php';
|
7 |
-
|
8 |
-
umask (0);
|
9 |
-
Mage::app(); // can set the run code/type, just like in the Mage::run() call
|
10 |
-
|
11 |
-
$helper = Mage::helper('full');
|
12 |
-
$authToken = $helper->getAuthToken();
|
13 |
-
$env = constant($helper->getConfigEnv());
|
14 |
-
$domain = $helper->getShopDomain();
|
15 |
-
|
16 |
-
echo "Riskified auth token: $authToken \n";
|
17 |
-
echo "Riskified shop domain: $domain \n";
|
18 |
-
echo "Riskified target environment: $env \n";
|
19 |
-
echo "*********** \n";
|
20 |
-
include __DIR__ . 'lib/riskified_php_sdk/src/Riskified/autoloader.php';
|
21 |
-
use Riskified\Common\Riskified;
|
22 |
-
use Riskified\Common\Env;
|
23 |
-
use Riskified\Common\Validations;
|
24 |
-
use Riskified\Common\Signature;
|
25 |
-
use Riskified\OrderWebhook\Model;
|
26 |
-
use Riskified\OrderWebhook\Transport;
|
27 |
-
|
28 |
-
Riskified::init($domain, $authToken, $env, Validations::SKIP);
|
29 |
-
// add your own code below:
|
30 |
-
$batch_size = 10;
|
31 |
-
$options = getopt("p::");
|
32 |
-
$page = intval($options["p"]);
|
33 |
-
if (!$page) {
|
34 |
-
$page = 1;
|
35 |
-
}
|
36 |
-
$orders = Mage::getModel('sales/order')->getCollection();
|
37 |
-
|
38 |
-
$total_count = $orders->getSize();
|
39 |
-
|
40 |
-
echo "starting to upload orders, total_count: $total_count \n";
|
41 |
-
|
42 |
-
$orders_collection = Mage::getModel('sales/order')
|
43 |
-
->getCollection()
|
44 |
-
->setPageSize($batch_size)
|
45 |
-
->setCurPage($page);
|
46 |
-
|
47 |
-
$total_uploaded = 0;
|
48 |
-
|
49 |
-
while ($total_uploaded < $total_count) {
|
50 |
-
$last_id = $orders_collection->getLastItem()->getEntityId();
|
51 |
-
|
52 |
-
try {
|
53 |
-
Mage::helper('full/order')->postHistoricalOrders($orders_collection);
|
54 |
-
$total_uploaded += $orders_collection->count();
|
55 |
-
echo "last id: $last_id, page:$page, total_uploaded: $total_uploaded \n";
|
56 |
-
$page++;
|
57 |
-
$orders_collection = Mage::getModel('sales/order')
|
58 |
-
->getCollection()
|
59 |
-
->setPageSize($batch_size)
|
60 |
-
->setCurPage($page);
|
61 |
-
} catch (Exception $e) {
|
62 |
-
echo "Error: ".$e->getMessage();
|
63 |
-
exit(1);
|
64 |
-
}
|
65 |
-
}
|
66 |
-
echo "*********** \n";
|
67 |
-
echo "wOOt, Finished successfully!!!! total_uploaded: $total_uploaded\n";
|
68 |
-
echo "Please let us know and we will process the order within 24 hours, Thanks!!\n";
|
69 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>riskified_magento</name>
|
4 |
-
<version>1.0.6.
|
5 |
<stability>stable</stability>
|
6 |
<license>OSL v3.0</license>
|
7 |
<channel>community</channel>
|
@@ -9,11 +9,11 @@
|
|
9 |
<summary>Riskified Magento extension</summary>
|
10 |
<description>Riskified reviews, approves & guarantees
|
11 |
transactions you would otherwise decline.</description>
|
12 |
-
<notes
|
13 |
<authors><author><name>Riskified_Mage</name><user>Riskified_Mage</user><email>support@riskified.com</email></author></authors>
|
14 |
-
<date>2015-
|
15 |
-
<time>07:
|
16 |
-
<contents><target name="magecommunity"><dir name="Riskified"><dir name="Full"><dir><dir name="Helper"><file name="Data.php" hash="
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>4.4.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>riskified_magento</name>
|
4 |
+
<version>1.0.6.6</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>OSL v3.0</license>
|
7 |
<channel>community</channel>
|
9 |
<summary>Riskified Magento extension</summary>
|
10 |
<description>Riskified reviews, approves & guarantees
|
11 |
transactions you would otherwise decline.</description>
|
12 |
+
<notes>* Approved Status and Declined Status are now customizable by the user via Riskified configuration</notes>
|
13 |
<authors><author><name>Riskified_Mage</name><user>Riskified_Mage</user><email>support@riskified.com</email></author></authors>
|
14 |
+
<date>2015-04-01</date>
|
15 |
+
<time>07:39:00</time>
|
16 |
+
<contents><target name="magecommunity"><dir name="Riskified"><dir name="Full"><dir><dir name="Helper"><file name="Data.php" hash="d93bce09c7ea559f4be2e057ea9620c4"/><file name="Debug.php" hash="18335d988a142ee639ea59dbecafa15c"/><file name="Log.php" hash="14125243576ab5b08f40066d24b7241d"/><dir name="Order"><file name="Invoice.php" hash="fd6fcbdedd44551785eddd0e1a482e80"/><file name="Status.php" hash="478a2b111b02a5ba3a7df6cf1fa8c8cc"/></dir><file name="Order.php" hash="c1542ba1aea97df272db14fddcd900cf"/></dir><dir name="Model"><file name="Authorizenet.php" hash="bd42f62d06a036b9da7709d2e40fc8f1"/><file name="Cron.php" hash="187b86ebe9238ff132ed0337f05a8ae9"/><file name="Observer.php" hash="7ea3679763c6409159584526a0670457"/><dir name="Resource"><dir name="Retry"><file name="Collection.php" hash="fd62ad4e4cdd8d372751bfa9988cc3a9"/></dir><file name="Retry.php" hash="3be3db7e54bd8bb45e0faffa1941f515"/></dir><file name="Retry.php" hash="89e7344139affa4fe0b9a252a5d1c592"/><dir name="System"><dir name="Config"><dir name="Source"><file name="ApprovedState.php" hash="5c620d1039347218354bd58c2238ecb4"/><file name="CanceledStateStatuses.php" hash="f7c38690820a5354ca8879931a3b08c2"/><file name="CaptureCase.php" hash="daafa6f53c65fa6e6e7ffbb067dbbbba"/><file name="DeclinedState.php" hash="a00907072c06ade079483e3db03bb94f"/><file name="Env.php" hash="4d923355b3e56fac95c2a9b3c353ab76"/><file name="HoldedStateStatuses.php" hash="c081ae14278e82ba8805c8231bbe1068"/><file name="ProcessingStateStatuses.php" hash="74760571fb4273d4b9fbb3d42205ca8d"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="General.php" hash="a5d4950c5655960879e7d75c06977941"/></dir><dir name="Helper"><dir name="General"><dir name="fixtures"><file name="extensionConfigEnabled.yaml" hash="eec8c8d8a1d5de49897b19740cf8e074"/></dir></dir><file name="General.php" hash="607c9711656be48084f6688e114b6bf6"/></dir><dir name="Model"><file name="Environments.php" hash="f3fc028d17c82b9b84b709b932e64eae"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="FullController.php" hash="f80e78a808e99f11a7bc00bd02be3f2e"/></dir><file name="ResponseController.php" hash="550c29c6c6706067bac3531b8f3eb37f"/></dir><dir name="etc"><file name="config.xml" hash="84cd4851931632948afc3a08a8cffd33"/><file name="system.xml" hash="aea61d1e3c742c1a8cd8048650fa54eb"/></dir><dir name="sql"><dir name="riskified_full_setup"><file name="mysql4-install-1.0.1.php" hash="6d29dde79353e8bfefa6ea7bc2ef562a"/><file name="mysql4-upgrade-1.0.2.0-1.0.2.1.php" hash="822e85326678a320f141a3ae948e4a24"/><file name="mysql4-upgrade-1.0.4-1.0.5.0.php" hash="557115e1a978d9b194b2cd1cfb8b5a95"/><file name="mysql4-upgrade-1.0.5.5-1.0.6.0.php" hash="0318846fbe8f3e56d8f7d3fdc750e102"/></dir></dir></dir><file name=".DS_Store" hash="1dcf4d325e6c5f915f06d957fe08104b"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Riskified_Full.xml" hash="d684caecdf710e5d0173ca07e5c5d1c0"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="full.xml" hash="8dbb3dd16fcb5821eb07e9b5d978d55c"/></dir><dir name="template"><dir name="full"><file name="jsinit.phtml" hash="6d115f22624a7a4e9841888ba5df35cb"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="full.xml" hash="9497753e5c3d2860062c5446c058b4bc"/></dir><dir name="template"><dir name="full"><file name="riskified.phtml" hash="fe4a577c6ef98316d906c36c17f11406"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="riskified"><file name="logo.jpg" hash="0ac96bf07aa8b8ecb3ff06c2ccbf0827"/></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="riskified_php_sdk"><file name="README.md" hash="f37118baa641e4ef6d670bb1c0298482"/><dir><dir name="sample"><file name="callback.php" hash="c6fb5a90b2c527b794fcec803acb36d9"/><file name="order_full_flow.php" hash="71d931fff3aa98402c9a7d3b271a6ae4"/><file name="order_marketplace_create.php" hash="ae3d2fb28154a710934d6243302a590d"/><file name="order_simple_submit.php" hash="d8458f7992b486b6dac28558526f068b"/><file name="run_callback_server.sh" hash="8202fd93c15e088d072805d3a2f4c02b"/><file name="upload_historical.php" hash="78bdb85c036183de16968a79c8836efd"/></dir><dir name="src"><dir name="Riskified"><dir name="Common"><file name="Env.php" hash="3fc8342a423141fb0c110901deebfe25"/><dir name="Exception"><file name="BaseException.php" hash="ce902d0a3bd9af53b3c1923541602ead"/></dir><file name="Riskified.php" hash="2137e73cf6371aeb113a6755357b603f"/><dir name="Signature"><file name="HttpDataSignature.php" hash="b9f5d57db1903126a72eb38ca55ba878"/></dir><file name="Validations.php" hash="4af37b31901f215b660c868c31594b75"/></dir><dir name="DecisionNotification"><dir name="Exception"><file name="AuthorizationException.php" hash="4cab71ac324efd3b29bdfa6236a8f531"/><file name="BadHeaderException.php" hash="407a0d9e94d52e8b43bed02e34bd4a70"/><file name="BadPostJsonException.php" hash="2e2a7f84fae19fd525f01f6899ea218b"/><file name="NotificationException.php" hash="8f7d1ed8b9523ec66423c6ff2703085f"/></dir><dir name="Model"><file name="Notification.php" hash="9e2f5fd421abe37ab7b742767966f312"/></dir></dir><dir name="OrderWebhook"><dir name="Exception"><file name="ClassMismatchPropertyException.php" hash="8854b7aea6736b290826eb44ac0ba578"/><file name="CurlException.php" hash="27488d2dd0fa2c25b647a5967e3821b1"/><file name="FormatMismatchPropertyException.php" hash="2729989c3ac2a245341fd01a4d004b49"/><file name="InvalidPropertyException.php" hash="97084ff2ff33f5c657c5876a44aa97d2"/><file name="MalformedJsonException.php" hash="8c795b605988f20f1899dcf160f29cf1"/><file name="MissingPropertyException.php" hash="5ad8df6ba645a113fac7b65e08167d2c"/><file name="MultiplePropertiesException.php" hash="aaa042c5a0fcfd15dc2744059b15798b"/><file name="PropertyException.php" hash="7a234406434c5616aab72da27a1ed6ed"/><file name="TypeMismatchPropertyException.php" hash="5eed61220c954a462411f433a2c85bf2"/><file name="UnsuccessfulActionException.php" hash="b02fafbda955fa889ca36c5092ccc68d"/></dir><dir name="Model"><file name="AbstractModel.php" hash="73adfaac9fe9e189827baac5a71e41a4"/><file name="Address.php" hash="c2aa3d4e7ac69daf79422e16b868b3d8"/><file name="Attribute.php" hash="e7fa146d7c9c807494c225e6a41afcfb"/><file name="AuthorizationError.php" hash="b82229eff42d94ceba58d4d6a3a4118b"/><file name="Checkout.php" hash="ede0e6d2fd8319ada669de35b4c3190f"/><file name="ClientDetails.php" hash="50b329fa6b77bcbeff4b725705b957af"/><file name="Customer.php" hash="02801c70557fbfa6aea7ac6058f6f4b4"/><file name="DiscountCode.php" hash="0861920950828a3ff19904b92b4cb50d"/><file name="Fulfillment.php" hash="9111db9b13ae7b2fbe6bf806a66d78f2"/><file name="FulfillmentDetails.php" hash="d3c11d4e8943862fc4a774f3f8e9d7d7"/><file name="LineItem.php" hash="3a03c75348060aa9ca930174b9d5dc56"/><file name="Order.php" hash="d32cd686532d5cc2810321c5befe3149"/><file name="OrderCancellation.php" hash="f6f2d5234bb98b56902e632fbccc07b3"/><file name="PaymentDetails.php" hash="413b5a6ab26ec6b9b0664a9d9e301c02"/><file name="Refund.php" hash="1c3ad264984585cfcefc909ffa708dc4"/><file name="RefundDetails.php" hash="f9a0e27e26bbfb6699bb0dd44fe6a184"/><file name="Seller.php" hash="2dd5dc2dc22582231263cad803149a16"/><file name="ShippingLine.php" hash="5ac14361474789db570fa6d14b17a973"/><file name="SocialDetails.php" hash="8a9296a4277a645bb86f5956b7437081"/><file name="TaxLine.php" hash="59f82a19bc9ada690aa79bc96307db5e"/></dir><dir name="Transport"><file name="AbstractTransport.php" hash="4ab3636ee044c9272542ce8076ac8d33"/><file name="CurlTransport.php" hash="ecfb195ac0f8f9599dd859dffc40c968"/></dir></dir><file name="autoloader.php" hash="f3471e90daf6184a096d337bbcd40bd1"/></dir></dir></dir><file name=".gitignore" hash="73f01e1298c44b6cc3e24a70cad8c56c"/></dir></target></contents>
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>4.4.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|