diff --git a/sample/order_full_flow.php b/sample/order_full_flow.php index edc333e..e161ccb 100644 --- a/sample/order_full_flow.php +++ b/sample/order_full_flow.php @@ -114,7 +114,8 @@ 'credit_card_bin' => '370002', 'credit_card_number' => 'xxxx-xxxx-xxxx-1234', 'credit_card_company' => 'VISA', - 'credit_card_token' => '0022334466' + 'credit_card_token' => '0022334466', + '_type' => 'credit_card' ### required for checkout denied: ### # 'authorization_error' => new Model\AuthorizationError(array( @@ -192,6 +193,11 @@ $response = $transport->createCheckout($checkout); echo PHP_EOL."Create Checkout succeeded. Response: ".PHP_EOL.json_encode($response).PHP_EOL; +#### Advise Checkout (uncomment if eligible for /advise) +//$checkout = new Model\Checkout($order_details); +// +//$response = $transport->adviseOrder($checkout); +//echo PHP_EOL."Advise Checkout succeeded. Response: ".PHP_EOL.json_encode($response).PHP_EOL; #### Notify Checkout Denied $response = $transport->deniedCheckout($checkout); @@ -205,6 +211,17 @@ $order->payment_details[0]->avs_result_code = 'Y'; $order->payment_details[0]->cvv_result_code = 'N'; +##REQUIRED FOR PSD2 ORDERS## +//$authenticationResult = new Model\AuthenticationResult(array( +// 'created_at' => '2019-07-17T15:00:00-05:00', +// 'eci' => '07', +// 'cavv' => '05', +// 'trans_status' => 'Y', +// 'trans_status_reason' => '01', +// 'liability_shift' => true +//)); +//$order->payment_details[0]->authentication_result = $authenticationResult; + $response = $transport->createOrder($order); echo PHP_EOL."Create Order succeeded. Response: ".PHP_EOL.json_encode($response).PHP_EOL; diff --git a/src/Riskified/OrderWebhook/Model/AuthenticationResult.php b/src/Riskified/OrderWebhook/Model/AuthenticationResult.php new file mode 100644 index 0000000..015478d --- /dev/null +++ b/src/Riskified/OrderWebhook/Model/AuthenticationResult.php @@ -0,0 +1,34 @@ + 'date optional', + 'eci' => 'string /^(:?05|06|07)$/', + 'cavv' => 'string optional', + 'trans_status' => 'string /^(:?Y|N|U|A|C|D|R|I)$/ optional', + 'trans_status_reason' => 'string /^(:?01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|80|99)$/ optional', + 'liability_shift' => 'boolean optional' + ); + +} \ No newline at end of file diff --git a/src/Riskified/OrderWebhook/Model/AuthenticationType.php b/src/Riskified/OrderWebhook/Model/AuthenticationType.php new file mode 100644 index 0000000..076bdba --- /dev/null +++ b/src/Riskified/OrderWebhook/Model/AuthenticationType.php @@ -0,0 +1,31 @@ + 'string optional', + 'exemption_method' => 'string optional' + ); + +} + diff --git a/src/Riskified/OrderWebhook/Model/PaymentDetails.php b/src/Riskified/OrderWebhook/Model/PaymentDetails.php index f409b09..b00bcf8 100644 --- a/src/Riskified/OrderWebhook/Model/PaymentDetails.php +++ b/src/Riskified/OrderWebhook/Model/PaymentDetails.php @@ -43,6 +43,13 @@ class PaymentDetails extends AbstractModel { 'pending_reason' => 'string optional', 'authorization_id' => 'string optional', + '_type' => 'string /^(:?credit_card|paypal)$/ optional', + 'id' => 'number optional', + 'gateway' => 'string optional', + 'acquirer_bin' => 'string optional', + 'mid' => 'string optional', + 'authentication_result' => 'object \AuthenticationResult optional', + 'account_number' => 'string optional', 'routing_number' => 'string optional', diff --git a/src/Riskified/OrderWebhook/Transport/AbstractTransport.php b/src/Riskified/OrderWebhook/Transport/AbstractTransport.php index 83a8301..8c58a5b 100644 --- a/src/Riskified/OrderWebhook/Transport/AbstractTransport.php +++ b/src/Riskified/OrderWebhook/Transport/AbstractTransport.php @@ -182,6 +182,16 @@ public function deniedCheckout($checkout) { return $this->send_checkout($checkout, 'checkout_denied'); } + /** + * Send an Advise request to Riskified + * @param $checkout object Checkout to send + * @return object Response object + * @throws \Riskified\Common\Exception\BaseException on any issue + */ + public function adviseOrder($checkout) { + return $this->send_checkout($checkout, 'advise'); + } + /** * Check eligibility for Deco payment * @param $order object Order to send (only order id required)