Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6fcb849

Browse files
committed
wip
1 parent a77b267 commit 6fcb849

9 files changed

+71
-10
lines changed

src/Events/PaymentSucceeded.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class PaymentSucceeded
1212
use Dispatchable, SerializesModels;
1313

1414

15-
public function __construct(Model $billable, Transaction $transaction, array $payload)
15+
public function __construct(public Model $billable, public Transaction $transaction, public array $payload)
1616
{
1717

1818
}

src/Events/SubscriptionActive.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class SubscriptionActive
1111
{
1212
use Dispatchable, SerializesModels;
1313

14-
public function __construct(Model $billable, Subscription $subscription, array $payload)
14+
public function __construct(public Model $billable,public Subscription $subscription,public array $payload)
1515
{
1616

1717
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Codeplugtech\DodoPayments\Events;
4+
5+
use Codeplugtech\DodoPayments\Subscription;
6+
use Illuminate\Database\Eloquent\Model;
7+
use Illuminate\Foundation\Events\Dispatchable;
8+
use Illuminate\Queue\SerializesModels;
9+
10+
class SubscriptionCancelled
11+
{
12+
use Dispatchable, SerializesModels;
13+
14+
public function __construct(public Model $billable,public Subscription $subscription,public array $payload)
15+
{
16+
17+
}
18+
}

src/Events/SubscriptionFailed.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class SubscriptionFailed
1111
{
1212
use Dispatchable, SerializesModels;
1313

14-
public function __construct(Model $billable,Subscription $subscription, array $payload)
14+
public function __construct(public Model $billable,public Subscription $subscription,public array $payload)
1515
{
1616

1717
}

src/Events/SubscriptionOnHold.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class SubscriptionOnHold
1010
{
1111
use Dispatchable, SerializesModels;
1212

13-
public function __construct(Model $billable,Subscription $subscription, array $payload)
13+
public function __construct(public Model $billable,public Subscription $subscription,public array $payload)
1414
{
1515

1616
}

src/Events/SubscriptionPaused.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class SubscriptionPaused
1111
{
1212
use Dispatchable, SerializesModels;
1313

14-
public function __construct(Model $billable, Subscription $subscription, array $payload)
14+
public function __construct(public Model $billable,public Subscription $subscription,public array $payload)
1515
{
1616

1717
}

src/Events/SubscriptionRenewed.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Codeplugtech\DodoPayments\Events;
4+
5+
use Codeplugtech\DodoPayments\Subscription;
6+
use Illuminate\Database\Eloquent\Model;
7+
use Illuminate\Foundation\Events\Dispatchable;
8+
use Illuminate\Queue\SerializesModels;
9+
10+
class SubscriptionRenewed
11+
{
12+
use Dispatchable, SerializesModels;
13+
14+
public function __construct(public Model $billable,public Subscription $subscription,public array $payload)
15+
{
16+
17+
}
18+
}

src/Http/Controllers/WebhookController.php

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class WebhookController extends Controller
2626
public function __construct()
2727
{
2828
if (config('dodo.webhook_secret')) {
29-
$this->middleware(DodoPaymentsWebhookSignature::class);
29+
$this->middleware(DodoPaymentsWebhookSignature::class);
3030
}
3131
}
3232

@@ -104,8 +104,31 @@ protected function handleSubscriptionActive(array $payload): void
104104
}
105105
$subscription->update([
106106
'status' => $data['status'],
107+
'next_billing_at' => Carbon::parse(Carbon::parse($data['next_billing_date'], 'UTC'))
107108
]);
108109
$billable = User::whereEmail($data['customer']['email'])->first();
110+
111+
SubscriptionActive::dispatch($billable, $subscription, $payload);
112+
}
113+
114+
/**
115+
* Handle Subscription Renewed.
116+
*
117+
* @param array $payload
118+
* @return void
119+
*/
120+
protected function handleSubscriptionRenewed(array $payload): void
121+
{
122+
$data = $payload['data'];
123+
if (!$subscription = $this->findSubscription($data['subscription_id'])) {
124+
return;
125+
}
126+
$subscription->update([
127+
'status' => $data['status'],
128+
'next_billing_at' => Carbon::parse(Carbon::parse($data['next_billing_date'], 'UTC'))
129+
]);
130+
$billable = User::whereEmail($data['customer']['email'])->first();
131+
109132
SubscriptionActive::dispatch($billable, $subscription, $payload);
110133
}
111134

@@ -126,7 +149,7 @@ protected function handleSubscriptionFailed(array $payload): void
126149
'status' => $data['status'],
127150
]);
128151
$billable = User::whereEmail($data['customer']['email'])->first();
129-
SubscriptionFailed::dispatch($billable,$subscription, $payload);
152+
SubscriptionFailed::dispatch($billable, $subscription, $payload);
130153
}
131154

132155
/**
@@ -145,7 +168,7 @@ protected function handleSubscriptionOnHold(array $payload): void
145168
'status' => $data['status'],
146169
]);
147170
$billable = User::whereEmail($data['customer']['email'])->first();
148-
SubscriptionOnHold::dispatch($billable,$subscription, $payload);
171+
SubscriptionOnHold::dispatch($billable, $subscription, $payload);
149172
}
150173

151174
/**
@@ -165,7 +188,7 @@ protected function handleSubscriptionPaused(array $payload): void
165188
'paused_at' => Carbon::parse($data['created_at'], 'UTC')
166189
]);
167190
$billable = User::whereEmail($data['customer']['email'])->first();
168-
SubscriptionOnHold::dispatch($billable,$subscription, $payload);
191+
SubscriptionOnHold::dispatch($billable, $subscription, $payload);
169192
}
170193

171194
/**

src/SubscriptionBuilder.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,15 @@ private function validateBilling(array $billing): void
8686
/**
8787
* @param string $name
8888
* @param string $email
89+
* @param bool $
8990
* @return $this
9091
*/
91-
public function setCustomer(string $name, string $email): self
92+
public function setCustomer(string $name, string $email, bool $isNewCustomer = false): self
9293
{
9394
$this->data['customer'] = [
9495
'name' => $name,
9596
'email' => $email,
97+
'create_new_customer'=> $isNewCustomer
9698
];
9799
return $this;
98100
}

0 commit comments

Comments
 (0)