Full Refund Payment Completed & Partial Pending

This commit is contained in:
devansh bawari 2021-02-04 16:52:28 +05:30
parent b5548f48c6
commit f04c065edd
2 changed files with 27 additions and 17 deletions

View File

@ -5,9 +5,6 @@ namespace Webkul\Admin\Listeners;
use Webkul\Admin\Traits\Mails;
use Webkul\Paypal\Payment\SmartButton;
use PayPalCheckoutSdk\Orders\OrdersGetRequest;
use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
use PayPalCheckoutSdk\Orders\OrdersAuthorizeRequest;
use PayPalCheckoutSdk\Payments\AuthorizationsCaptureRequest;
class Order
{
@ -15,17 +12,29 @@ class Order
public function refundOrder($data)
{
$orderID = $data['order']->payment->additional['orderID'];
$payerID = $data['order']->payment->additional['payerID'];
// dd($orderID, $payerID, $data['order']->payment->additional);
$paymentMethod = $data['order']->payment->method;
$smartButton = new SmartButton();
$client = $smartButton->client();
if ($paymentMethod === 'paypal_smart_button') {
/* get order */
// $response = $client->execute(new OrdersGetRequest($orderID));
// dd($response);
try {
$orderID = $data['order']->payment->additional['orderID'];
// dd($smartButton->refundOrder($orderID, "{}"));
$smartButton = new SmartButton();
$client = $smartButton->client();
/* get order */
$orderDetails = $client->execute(new OrdersGetRequest($orderID));
$captureID = $orderDetails->result->purchase_units[0]->payments->captures[0]->id;
/* refunding order */
$response = $smartButton->refundOrder($captureID, "{}");
} catch (\Exception $e) {
/* reporting error */
report($e);
/* now aborting whole process */
abort(500);
}
}
}
}

View File

@ -7,6 +7,7 @@ use Webkul\Paypal\Payment\SmartButton;
use Webkul\Sales\Repositories\OrderRepository;
use Webkul\Sales\Repositories\InvoiceRepository;
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
class SmartButtonController extends Controller
{
@ -71,6 +72,11 @@ class SmartButtonController extends Controller
*/
public function saveOrder()
{
$orderCreationData = request()->get('data');
$request = new OrdersCaptureRequest($orderCreationData['orderID']);
$request->prefer('return=representation');
$this->smartButtonClient->execute($request);
if (Cart::hasError()) {
return response()->json(['redirect_url' => route('shop.checkout.cart.index')], 403);
}
@ -143,12 +149,7 @@ class SmartButtonController extends Controller
],
'application_context' => [
'user_action' => 'PAY_NOW',
'shipping_preference' => 'SET_PROVIDED_ADDRESS',
'payment_method' => [
'payee_preferred' => 'IMMEDIATE_PAYMENT_REQUIRED',
]
],
'purchase_units' => [