Full Refund Payment Completed & Partial Pending
This commit is contained in:
parent
b5548f48c6
commit
f04c065edd
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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' => [
|
||||
|
|
|
|||
Loading…
Reference in New Issue