Skip to content

Commit 146afef

Browse files
committed
purchase
1 parent 7892b07 commit 146afef

16 files changed

+252
-62
lines changed

composer.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
{
2-
"name": "descom/omnipay-redirect-dummy",
2+
"name": "descom/omnipay-offline-dummy",
3+
"description": "Omnipay Offline Dummy Gateway for testing",
34
"type": "library",
45
"license": "MIT",
56
"autoload": {
67
"psr-4": {
7-
"Omnipay\\RedirectDummy\\": "src/"
8+
"Omnipay\\OfflineDummy\\": "src/"
89
}
910
},
1011
"autoload-dev": {
1112
"psr-4": {
12-
"Omnipay\\RedirectDummy\\Tests\\": "tests/"
13+
"Omnipay\\OfflineDummy\\Tests\\": "tests/"
1314
}
1415
},
1516
"authors": [
@@ -36,7 +37,7 @@
3637
"extra": {
3738
"laravel": {
3839
"providers": [
39-
"Omnipay\\RedirectDummy\\App\\AppServiceProvider"
40+
"Omnipay\\OfflineDummy\\App\\AppServiceProvider"
4041
]
4142
}
4243
}

resources/views/index.blade.php renamed to resources/views/payment.blade.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
<h2>Seleccione el resultado de la transacción:</h2>
3030

3131
<div>
32-
<form action="POST" action="/process">
33-
<input type="hidden" name="transitionId" value="{{ $transactionId }}" />
32+
<form action="POST" action="/process/payment">
33+
<input type="hidden" name="transition_id" value="{{ $transactionId }}" />
3434
<input type="hidden" name="amount" value="{{ $amount }}" />
35-
<input type="hidden" name="notifyUrl" value="{{ $notifyUrl }}" />
36-
<input type="submit" name="status" value="{{ $label_success }" />
35+
<input type="hidden" name="notify_url" value="{{ $notifyUrl }}" />
36+
<input type="submit" name="status" value="{{ $label_success }}" />
3737
<input type="submit" name="status" value="{{ $label_denied }}" />
3838
</form>
3939
</div>

src/App/App.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\App;
3+
namespace Omnipay\OfflineDummy\App;
44

55
class App
66
{

src/App/AppServiceProvider.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\App;
3+
namespace Omnipay\OfflineDummy\App;
44

55
use Descom\Skeleton\Console\Install;
66
use Illuminate\Support\Facades\Route;
77
use Illuminate\Support\ServiceProvider;
8-
use Omnipay\RedirectDummy\App\Http\Controllers\PaymentController;
9-
use Omnipay\RedirectDummy\App\Http\Controllers\PaymentProcessController;
8+
use Omnipay\OfflineDummy\App\Http\Controllers\PaymentController;
9+
use Omnipay\OfflineDummy\App\Http\Controllers\PaymentProcessController;
1010

1111
class AppServiceProvider extends ServiceProvider
1212
{
@@ -19,7 +19,7 @@ public function boot()
1919
{
2020
$this->registerRouters();
2121

22-
$this->loadViewsFrom(__DIR__.'/../resources/views', 'redirectdummy');
22+
$this->loadViewsFrom(__DIR__.'/../../resources/views', 'omonipay-offline-dummy');
2323
}
2424

2525
private function registerRouters(): void

src/App/Http/Controllers/PaymentController.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\App\Http\Controllers;
3+
namespace Omnipay\OfflineDummy\App\Http\Controllers;
44

55
use GuzzleHttp\Client;
6+
use Illuminate\Http\Request;
67
use Illuminate\Routing\Controller;
7-
use Omnipay\RedirectDummy\App\App;
8+
use Omnipay\OfflineDummy\App\App;
89

910
class PaymentController extends Controller
1011
{
1112
public function __invoke(Request $request)
1213
{
1314
$request->validate([
14-
'transactionId' => 'required',
15+
'transaction_id' => 'required',
1516
'description' => 'required',
1617
'amount' => 'required|numeric',
17-
'notifyUrl' => 'required|url',
18+
'notify_url' => 'required|url',
1819
]);
1920

20-
return view('redirectdummy::payment', [
21-
'transactionId' => $request->input('transitionId'),
21+
return view('omonipay-offline-dummy::payment', [
22+
'transactionId' => $request->input('transaction_id'),
2223
'description' => $request->input('description'),
2324
'amount' => $request->input('amount'),
24-
'notifyUrl' => $request->input('notifyUrl'),
25+
'notifyUrl' => $request->input('notify_url'),
2526
'label_success' => App::STATUS_SUCCESS,
2627
'label_denied' => App::STATUS_DENIED,
2728
]);
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\App\Http\Controllers;
3+
namespace Omnipay\OfflineDummy\App\Http\Controllers;
44

55
use Illuminate\Http\Request;
66
use Illuminate\Routing\Controller;
7+
use Illuminate\Support\Facades\Http;
78
use Omnipay\Omnipay;
89

910
class PaymentProcessController extends Controller
1011
{
1112
public function __invoke(Request $request)
1213
{
13-
$gateway = Omnipay::create('RedirectDummy');
14+
$gateway = Omnipay::create('OfflineDummy');
1415

1516
$response = $gateway->completePurchase($request->all())->send();
1617

17-
return response()->json(['message' => $response->getMessage()]);
18+
Http::acceptJson()->post(
19+
$gateway->getUrlNotify(),
20+
$response->getData()
21+
);
22+
23+
return response()->redirectTo($gateway->getUrlReturn());
1824
}
1925
}

src/Gateway.php

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,53 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy;
3+
namespace Omnipay\OfflineDummy;
44

55
use Omnipay\Common\AbstractGateway;
6-
use Omnipay\RedirectDummy\Message\PurchaseRequest;
6+
use Omnipay\OfflineDummy\Message\CompletedPurchaseRequest;
7+
use Omnipay\OfflineDummy\Message\PurchaseRequest;
78

89
class Gateway extends AbstractGateway
910
{
1011
public function getName()
1112
{
12-
return 'RedirectDummy';
13+
return 'OfflineDummy';
1314
}
1415

1516
public function getDefaultParameters()
1617
{
1718
return [
18-
'token' => '',
19+
'url_notify' => 'http://localhost',
20+
'url_return' => 'http://localhost',
1921
];
2022
}
2123

22-
public function getToken()
24+
public function getUrlNotify()
2325
{
24-
return $this->getParameter('token');
26+
return $this->getParameter('url_notify');
2527
}
2628

27-
public function setToken($value)
29+
public function setUrlNotify($value)
2830
{
29-
return $this->setParameter('token', $value);
31+
return $this->setParameter('url_notify', $value);
32+
}
33+
34+
public function getUrlReturn()
35+
{
36+
return $this->getParameter('url_return');
37+
}
38+
39+
public function setUrlReturn($value)
40+
{
41+
return $this->setParameter('url_return', $value);
3042
}
3143

3244
public function purchase(array $parameters = [])
3345
{
3446
return $this->createRequest(PurchaseRequest::class, $parameters);
3547
}
48+
49+
public function completePurchase(array $parameters = array())
50+
{
51+
return $this->createRequest(CompletedPurchaseRequest::class, $parameters);
52+
}
3653
}

src/Message/CompletedPurchaseRequest.php

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,45 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\Message;
3+
namespace Omnipay\OfflineDummy\Message;
44

55
use Omnipay\Common\Message\AbstractRequest;
6-
use Omnipay\RedirectDummy\App\App;
6+
use Omnipay\OfflineDummy\App\App;
77

88
/**
99
* PayFast Purchase Request
1010
*/
1111
class CompletedPurchaseRequest extends AbstractRequest
1212
{
13+
public function getUrlNotify()
14+
{
15+
return $this->getParameter('url_notify');
16+
}
17+
18+
public function setUrlNotify($value)
19+
{
20+
return $this->setParameter('url_notify', $value);
21+
}
22+
23+
public function getUrlReturn()
24+
{
25+
return $this->getParameter('url_return');
26+
}
27+
28+
public function setUrlReturn($value)
29+
{
30+
return $this->setParameter('url_return', $value);
31+
}
32+
33+
public function getStatus()
34+
{
35+
return $this->getParameter('status');
36+
}
37+
38+
public function setStatus($value)
39+
{
40+
return $this->setParameter('status', $value);
41+
}
42+
1343
public function getData()
1444
{
1545
return [
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\Message;
3+
namespace Omnipay\OfflineDummy\Message;
44

55
use Omnipay\Common\Message\AbstractResponse;
66
use Omnipay\Common\Message\RequestInterface;
7-
use Omnipay\Common\Message\RedirectResponseInterface;
87

9-
class CompletedPurchaseResponse extends AbstractResponse implements RedirectResponseInterface
8+
class CompletedPurchaseResponse extends AbstractResponse
109
{
1110
public function isSuccessful()
1211
{
13-
return (bool)$this->getStatus();;
12+
return (bool)$this->getData()['success'];
1413
}
15-
1614
}

src/Message/PurchaseRequest.php

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,48 @@
11
<?php
22

3-
namespace Omnipay\RedirectDummy\Message;
3+
namespace Omnipay\OfflineDummy\Message;
44

55
use Omnipay\Common\Message\AbstractRequest;
6-
use Omnipay\RedirectDummy\App\App;
6+
use Omnipay\OfflineDummy\App\App;
77

88
/**
99
* PayFast Purchase Request
1010
*/
1111
class PurchaseRequest extends AbstractRequest
1212
{
13+
public function getUrlNotify()
14+
{
15+
return $this->getParameter('url_notify');
16+
}
17+
18+
public function setUrlNotify($value)
19+
{
20+
return $this->setParameter('url_notify', $value);
21+
}
22+
23+
public function getUrlReturn()
24+
{
25+
return $this->getParameter('url_return');
26+
}
27+
28+
public function setUrlReturn($value)
29+
{
30+
return $this->setParameter('url_return', $value);
31+
}
32+
1333
public function getData()
1434
{
1535
$this->validate(
1636
'amount',
1737
'description',
18-
'transactionId',
19-
'notifyUrl'
38+
'transactionId'
2039
);
2140

2241
$data = array();
2342
$data['notify_url'] = $this->getNotifyUrl();
2443
$data['transaction_id'] = $this->getTransactionId();
2544
$data['amount'] = $this->getAmount();
45+
$data['description'] = $this->getDescription();
2646

2747
return $data;
2848
}

0 commit comments

Comments
 (0)