-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathPayment.php
124 lines (112 loc) · 3.6 KB
/
Payment.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
namespace Paynl;
use Paynl\Api;
use Paynl\Api\Payment\Model;
use Paynl\Result;
class Payment
{
/**
* @param Model\Authorize\Transaction $transaction
* @param Model\Payment $payment
* @return Result\Payment\Authorize
* @throws Error\Api
* @throws Error\Error
* @throws Error\Required\ApiToken
*/
public static function authorize(
Model\Authorize\Transaction $transaction,
Model\Payment $payment
) {
$authorize = new Model\Authorize();
$authorize
->setTransaction($transaction)
->setPayment($payment);
$api = new Api\Payment\Authorize($authorize);
return new Result\Payment\Authorize($api->doRequest());
}
/**
* Attempt to authenticate an encrypted transaction.
*
* @param Model\Authenticate\Transaction $transaction
* @param Model\Customer $customer
* @param Model\CSE $cse
* @param Model\Browser $browser
* @param Model\Statistics|null $statistics
* @param Model\Order|null $order
* @return Result\Payment\Authenticate
* @throws Error\Api
* @throws Error\Error
* @throws Error\Required\ApiToken
*/
public static function authenticate(
Model\Authenticate\Transaction $transaction,
Model\Customer $customer,
Model\CSE $cse,
Model\Browser $browser,
Model\Statistics $statistics = null,
Model\Order $order = null
) {
$authenticate = new Model\Authenticate();
$payment = new Model\Payment();
$payment
->setMethod(Model\Payment::METHOD_CSE)
->setCse($cse)
->setBrowser($browser);
$authenticate
->setTransaction($transaction)
->setOptions(array())
->setCustomer($customer)
->setOrder(empty($order) ? array() : $order)
->setStats(empty($statistics) ? array() : $statistics)
->setPayment($payment);
$api = new Api\Payment\Authenticate($authenticate);
return new Result\Payment\Authenticate($api->doRequest());
}
/**
* @param Model\AbstractTransaction $transaction
* @param Model\Payment $payment
* @return Result\Payment\AuthenticateMethod
* @throws Error\Api
* @throws Error\Error
* @throws Error\Required\ApiToken
*/
public static function authenticateMethod(
Model\AbstractTransaction $transaction,
Model\Payment $payment
) {
$authenticateMethod = new Model\AuthenticateMethod();
$authenticateMethod
->setTransaction($transaction)
->setPayment($payment);
$api = new Api\Payment\AuthenticateMethod($authenticateMethod);
return new Result\Payment\AuthenticateMethod($api->doRequest());
}
/**
* Get the authentication status of a payment.
*
* @param string $transactionId
*
* @return Result\Payment\AuthenticationStatus
* @throws Error\Api
* @throws Error\Error
* @throws Error\Required\ApiToken
*/
public static function authenticationStatus($transactionId)
{
$api = new Api\Payment\AuthenticationStatus($transactionId);
return new Result\Payment\AuthenticationStatus($api->doRequest());
}
/**
* Obtain cryptographic keys to use.
*
* @return Result\Payment\EncryptionKeys
* @throws Error\Api
* @throws Error\Error
* @throws Error\Required\ApiToken
*/
public static function paymentEncryptionKeys()
{
$api = new Api\Payment\EncryptionKeys();
return new Result\Payment\EncryptionKeys($api->doRequest());
}
}