Skip to content

Commit 24b1092

Browse files
Added pos gateway.
1 parent fd7fece commit 24b1092

23 files changed

+344
-57
lines changed

src/AllInOneGateway.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ public function getName(): string
3434
}
3535

3636
/**
37-
* Create complete purchase request.
38-
*
39-
* @param array $options
37+
* {@inheritdoc}
4038
* @return \Omnipay\Common\Message\RequestInterface|CompletePurchaseRequest
4139
*/
4240
public function completePurchase(array $options = []): CompletePurchaseRequest
@@ -45,7 +43,7 @@ public function completePurchase(array $options = []): CompletePurchaseRequest
4543
}
4644

4745
/**
48-
* Create complete purchase notification request.
46+
* Tạo request notification gửi từ MoMo.
4947
*
5048
* @param array $options
5149
* @return \Omnipay\Common\Message\RequestInterface|NotificationRequest
@@ -85,7 +83,8 @@ public function refund(array $options = [])
8583
}
8684

8785
/**
88-
* {@inheritdoc}
86+
* Tạo yêu cầu truy vấn thông tin hoàn tiền đến MoMo.
87+
*
8988
* @return \Omnipay\Common\Message\RequestInterface|QueryRefundRequest
9089
*/
9190
public function queryRefund(array $options = [])

src/Concerns/PosParameters.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,18 @@ trait PosParameters
2020
*
2121
* @param string $key
2222
*/
23-
public function setPublicKey($key): void
23+
public function setPublicKey(string $key): void
2424
{
2525
$this->setParameter('publicKey', $key);
2626
}
27+
28+
/**
29+
* Thiết lập pos version.
30+
*
31+
* @param string $version
32+
*/
33+
public function setVersion(string $version): void
34+
{
35+
$this->setParameter('version', $version);
36+
}
2737
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/**
3+
* @link https://github.com/phpviet/omnipay-momo
4+
* @copyright (c) PHP Viet
5+
* @license [MIT](http://www.opensource.org/licenses/MIT)
6+
*/
7+
8+
namespace Omnipay\MoMo\Message;
9+
10+
use Omnipay\Common\Message\AbstractRequest;
11+
12+
/**
13+
* @author Vuong Minh <[email protected]>
14+
* @since 1.0.0
15+
*/
16+
abstract class AbstractHashRequest extends AbstractRequest
17+
{
18+
use Concerns\RequestHash;
19+
use Concerns\RequestEndpoint;
20+
21+
/**
22+
* {@inheritdoc}
23+
*/
24+
public function getData(): array
25+
{
26+
$parameters = $this->getParameters();
27+
call_user_func_array([$this, 'validate'], $this->getHashParameters());
28+
$parameters['hash'] = $this->generateHash();
29+
unset($parameters['secretKey'], $parameters['testMode'], $parameters['publicKey']);
30+
31+
return $parameters;
32+
}
33+
}

src/Message/AbstractResponse.php

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
namespace Omnipay\MoMo\Message;
99

10-
use Omnipay\Common\Message\RequestInterface;
1110
use Omnipay\Common\Message\AbstractResponse as BaseAbstractResponse;
1211

1312
/**
@@ -17,31 +16,24 @@
1716
abstract class AbstractResponse extends BaseAbstractResponse
1817
{
1918
use Concerns\ResponseProperties;
20-
use Concerns\ResponseSignatureValidation;
2119

2220
/**
23-
* Khởi tạo đối tượng Response.
21+
* Trả về trạng thái do MoMo phản hồi.
2422
*
25-
* @param \Omnipay\Common\Message\RequestInterface $request
26-
* @param $data
27-
* @throws \Omnipay\Common\Exception\InvalidResponseException
23+
* @return bool
2824
*/
29-
public function __construct(RequestInterface $request, $data)
25+
public function isSuccessful(): bool
3026
{
31-
parent::__construct($request, $data);
32-
33-
if ('0' === $this->getCode()) {
34-
$this->validateSignature();
35-
}
27+
return '0' === $this->getCode();
3628
}
3729

3830
/**
39-
* Trả về trạng thái do MoMo phản hồi.
31+
* Trả về thông báo từ MoMo.
4032
*
41-
* @return bool
33+
* @return null|string
4234
*/
43-
public function isSuccessful(): bool
35+
public function getMessage(): ?string
4436
{
45-
return '0' === $this->getCode();
37+
return $this->data['message'] ?? null;
4638
}
4739
}

src/Message/AbstractRequest.php renamed to src/Message/AbstractSignatureRequest.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,19 @@
77

88
namespace Omnipay\MoMo\Message;
99

10-
use Omnipay\Common\Message\AbstractRequest as BaseAbstractRequest;
10+
use Omnipay\Common\Message\AbstractRequest;
1111

1212
/**
1313
* @author Vuong Minh <[email protected]>
1414
* @since 1.0.0
1515
*/
16-
abstract class AbstractRequest extends BaseAbstractRequest
16+
abstract class AbstractSignatureRequest extends AbstractRequest
1717
{
1818
use Concerns\RequestEndpoint;
1919
use Concerns\RequestSignature;
2020

2121
/**
2222
* {@inheritdoc}
23-
* @throws \Omnipay\Common\Exception\InvalidRequestException
2423
*/
2524
public function getData(): array
2625
{
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
/**
3+
* @link https://github.com/phpviet/omnipay-momo
4+
* @copyright (c) PHP Viet
5+
* @license [MIT](http://www.opensource.org/licenses/MIT)
6+
*/
7+
8+
namespace Omnipay\MoMo\Message;
9+
10+
use Omnipay\Common\Message\RequestInterface;
11+
12+
/**
13+
* @author Vuong Minh <[email protected]>
14+
* @since 1.0.0
15+
*/
16+
abstract class AbstractSignatureResponse extends AbstractResponse
17+
{
18+
use Concerns\ResponseSignatureValidation;
19+
20+
/**
21+
* Khởi tạo đối tượng Response.
22+
*
23+
* @param \Omnipay\Common\Message\RequestInterface $request
24+
* @param $data
25+
* @throws \Omnipay\Common\Exception\InvalidResponseException
26+
*/
27+
public function __construct(RequestInterface $request, $data)
28+
{
29+
parent::__construct($request, $data);
30+
31+
if ('0' === $this->getCode()) {
32+
$this->validateSignature();
33+
}
34+
}
35+
}

src/Message/AllInOne/AbstractRequest.php renamed to src/Message/AllInOne/AbstractSignatureRequest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
namespace Omnipay\MoMo\Message\AllInOne;
99

1010
use Omnipay\MoMo\Concerns\AllInOneParameters;
11-
use Omnipay\MoMo\Message\AbstractRequest as BaseAbstractRequest;
11+
use Omnipay\MoMo\Message\AbstractSignatureRequest as BaseAbstractSignatureRequest;
1212

1313
/**
1414
* @author Vuong Minh <[email protected]>
1515
* @since 1.0.0
1616
*/
17-
abstract class AbstractRequest extends BaseAbstractRequest
17+
abstract class AbstractSignatureRequest extends BaseAbstractSignatureRequest
1818
{
1919
use AllInOneParameters;
2020

@@ -45,8 +45,8 @@ public function sendData($data)
4545
'Content-Type' => 'application/json; charset=UTF-8',
4646
], json_encode($data));
4747
$responseClass = $this->responseClass;
48-
$responseData = json_decode($response->getBody()->getContents(), true);
48+
$responseData = $response->getBody()->getContents();
4949

50-
return $this->response = new $responseClass($this, $responseData ?? []);
50+
return $this->response = new $responseClass($this, json_decode($responseData, true) ?? []);
5151
}
5252
}

src/Message/AllInOne/AbstractResponse.php renamed to src/Message/AllInOne/AbstractSignatureResponse.php

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,14 @@
77

88
namespace Omnipay\MoMo\Message\AllInOne;
99

10-
use Omnipay\MoMo\Message\AbstractResponse as BaseAbstractResponse;
10+
use Omnipay\MoMo\Message\AbstractSignatureResponse as BaseAbstractSignatureResponse;
1111

1212
/**
1313
* @author Vuong Minh <[email protected]>
1414
* @since 1.0.0
1515
*/
16-
abstract class AbstractResponse extends BaseAbstractResponse
16+
abstract class AbstractSignatureResponse extends BaseAbstractSignatureResponse
1717
{
18-
/**
19-
* Trả về thông báo từ MoMo.
20-
*
21-
* @return null|string
22-
*/
23-
public function getMessage(): ?string
24-
{
25-
return $this->data['message'] ?? null;
26-
}
27-
2818
/**
2919
* Trả về mã báo lỗi từ MoMo. Nếu là 0 thì tương đương với thành công.
3020
*

src/Message/AllInOne/IncomingResponse.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* @author Vuong Minh <[email protected]>
1212
* @since 1.0.0
1313
*/
14-
class IncomingResponse extends AbstractResponse
14+
class IncomingResponse extends AbstractSignatureResponse
1515
{
1616
/**
1717
* {@inheritdoc}

src/Message/AllInOne/PurchaseRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* @author Vuong Minh <[email protected]>
1414
* @since 1.0.0
1515
*/
16-
class PurchaseRequest extends AbstractRequest
16+
class PurchaseRequest extends AbstractSignatureRequest
1717
{
1818
/**
1919
* {@inheritdoc}

0 commit comments

Comments
 (0)