@@ -17,13 +17,13 @@ public function testCompletePurchaseSuccess()
17
17
$ this ->getMockRequest (),
18
18
array (
19
19
'Ds_SignatureVersion ' => 'HMAC_SHA256_V1 ' ,
20
- 'Ds_MerchantParameters ' => 'eyJEc19TaWduYXR1cmVWZXJzaW9uIjoiSE1BQ19TSEEyNTZfVjEiLCJEc19EYXRlIjoiMTBcLzE '
21
- .'xXC8yMDE1IiwiRHNfSG91ciI6IjEyOjAwIiwiRHNfU2VjdXJlUGF5bWVudCI6IjEiLCJEc19BbW91bnQiOiIxNDUiLCJEc19D '
22
- .'dXJyZW5jeSI6Ijk3OCIsIkRzX09yZGVyIjoiMDEyM2FiYyIsIkRzX01lcmNoYW50Q29kZSI6Ijk5OTAwODg4MSIsIkRzX1Rlc '
23
- .'m1pbmFsIjoiODcxIiwiRHNfUmVzcG9uc2UiOiIwMDAwIiwiRHNfVHJhbnNhY3Rpb25UeXBlIjoiMCIsIkRzX01lcmNoYW50RG '
24
- .'F0YSI6IlJlZjogOTl6eiIsIkRzX0F1dGhvcmlzYXRpb25Db2RlIjoiOTk5OTk5IiwiRHNfQ29uc3VtZXJMYW5ndWFnZSI6IjI '
25
- .'iLCJEc19DYXJkX0NvdW50cnkiOiI3MjQifQ= = ' ,
26
- 'Ds_Signature ' => 'wq466V5gAoRNWf_UyJfdS9VuNKElkHCfMQrTA0Oy4QE = ' ,
20
+ 'Ds_MerchantParameters ' => 'eyJEc19EYXRlIjoiMTBcLzExXC8yMDE1IiwiRHNfSG91ciI6IjEyOjAwIiwiRHNfU2VjdXJlUGF '
21
+ .'5bWVudCI6IjEiLCJEc19BbW91bnQiOiIxNDUiLCJEc19DdXJyZW5jeSI6Ijk3OCIsIkRzX09yZGVyIjoiMDEyM2FiYyIsIkRz '
22
+ .'X01lcmNoYW50Q29kZSI6Ijk5OTAwODg4MSIsIkRzX1Rlcm1pbmFsIjoiODcxIiwiRHNfUmVzcG9uc2UiOiIwMDAwIiwiRHNfV '
23
+ .'HJhbnNhY3Rpb25UeXBlIjoiMCIsIkRzX01lcmNoYW50RGF0YSI6IlJlZjogOTl6eiIsIkRzX0F1dGhvcmlzYXRpb25Db2RlIj '
24
+ .'oiOTk5OTk5IiwiRHNfQ29uc3VtZXJMYW5ndWFnZSI6IjIiLCJEc19DYXJkX0NvdW50cnkiOiI3MjQiLCJEc19DYXJkX1R5cGU '
25
+ .'iOiJDIn0 = ' ,
26
+ 'Ds_Signature ' => '5v_0NCL0OBXM2CsZUSNdGQKRvmc3itFvM_WgiKe-pKA = ' ,
27
27
)
28
28
);
29
29
@@ -48,10 +48,56 @@ public function testCompletePurchaseSuccess()
48
48
'Ds_AuthorisationCode ' => '999999 ' ,
49
49
'Ds_ConsumerLanguage ' => '2 ' , // English
50
50
'Ds_Card_Country ' => '724 ' , // Spain
51
+ 'Ds_Card_Type ' => 'C ' , // Credit
51
52
);
52
53
$ this ->runChecks ($ checks );
53
54
}
54
55
56
+ public function testCompletePurchaseSuccessUpperParameters ()
57
+ {
58
+ $ this ->getMockRequest ()->shouldReceive ('getHmacKey ' )->once ()->andReturn ('Mk9m98IfEblmPfrpsawt7BmxObt98Jev ' );
59
+
60
+ $ this ->response = new CompletePurchaseResponse (
61
+ $ this ->getMockRequest (),
62
+ array (
63
+ 'DS_SIGNATUREVERSION ' => 'HMAC_SHA256_V1 ' ,
64
+ 'DS_MERCHANTPARAMETERS ' => 'eyJEU19EQVRFIjoiMTBcLzExXC8yMDE1IiwiRFNfSE9VUiI6IjEyOjAwIiwiRFNfU0VDVVJFUEF '
65
+ .'ZTUVOVCI6IjEiLCJEU19BTU9VTlQiOiIxNDUiLCJEU19DVVJSRU5DWSI6Ijk3OCIsIkRTX09SREVSIjoiMDEyM2FiYyIsIkRT '
66
+ .'X01FUkNIQU5UQ09ERSI6Ijk5OTAwODg4MSIsIkRTX1RFUk1JTkFMIjoiODcxIiwiRFNfUkVTUE9OU0UiOiIwMDAwIiwiRFNfV '
67
+ .'FJBTlNBQ1RJT05UWVBFIjoiMCIsIkRTX01FUkNIQU5UREFUQSI6IlJlZjogOTl6eiIsIkRTX0FVVEhPUklTQVRJT05DT0RFIj '
68
+ .'oiOTk5OTk5IiwiRFNfQ09OU1VNRVJMQU5HVUFHRSI6IjIiLCJEU19DQVJEX0NPVU5UUlkiOiI3MjQiLCJEU19DQVJEX1RZUEU '
69
+ .'iOiJDIn0= ' ,
70
+ 'DS_SIGNATURE ' => 'skOah02ucd3CI_bVXJk0sRnaY_bg9Pq7OqvpCBC30Fs= ' ,
71
+ )
72
+ );
73
+
74
+ $ this ->assertTrue ($ this ->response ->isSuccessful ());
75
+ $ this ->assertFalse ($ this ->response ->isRedirect ());
76
+ $ this ->assertSame ('999999 ' , $ this ->response ->getTransactionReference ());
77
+ $ this ->assertSame (0 , (int ) $ this ->response ->getMessage ());
78
+
79
+ $ checks = array (
80
+ 'DS_SIGNATUREVERSION ' => 'HMAC_SHA256_V1 ' ,
81
+ 'DS_DATE ' => '10/11/2015 ' ,
82
+ 'DS_HOUR ' => '12:00 ' ,
83
+ 'DS_SECUREPAYMENT ' => '1 ' ,
84
+ 'DS_AMOUNT ' => '145 ' ,
85
+ 'DS_CURRENCY ' => '978 ' , // Euros
86
+ 'DS_ORDER ' => '0123abc ' ,
87
+ 'DS_MERCHANTCODE ' => '999008881 ' ,
88
+ 'DS_TERMINAL ' => '871 ' ,
89
+ 'DS_RESPONSE ' => '0000 ' ,
90
+ 'DS_TRANSACTIONTYPE ' => '0 ' ,
91
+ 'DS_MERCHANTDATA ' => 'Ref: 99zz ' ,
92
+ 'DS_AUTHORISATIONCODE ' => '999999 ' ,
93
+ 'DS_CONSUMERLANGUAGE ' => '2 ' , // English
94
+ 'DS_CARD_COUNTRY ' => '724 ' , // Spain
95
+ 'DS_CARD_TYPE ' => 'C ' , // Credit
96
+ );
97
+ $ this ->runChecks ($ checks );
98
+ }
99
+
100
+
55
101
public function testCompletePurchaseFailure ()
56
102
{
57
103
$ this ->getMockRequest ()->shouldReceive ('getHmacKey ' )->once ()->andReturn ('Mk9m98IfEblmPfrpsawt7BmxObt98Jev ' );
@@ -73,6 +119,7 @@ public function testCompletePurchaseFailure()
73
119
$ this ->assertFalse ($ this ->response ->isSuccessful ());
74
120
$ this ->assertFalse ($ this ->response ->isRedirect ());
75
121
$ this ->assertSame (180 , (int ) $ this ->response ->getMessage ());
122
+ $ this ->assertNull ($ this ->response ->getCardType ());
76
123
77
124
$ checks = array (
78
125
'Ds_SignatureVersion ' => 'HMAC_SHA256_V1 ' ,
@@ -115,6 +162,7 @@ public function testCompletePurchaseError()
115
162
$ this ->assertFalse ($ this ->response ->isSuccessful ());
116
163
$ this ->assertFalse ($ this ->response ->isRedirect ());
117
164
$ this ->assertSame (909 , (int ) $ this ->response ->getMessage ());
165
+ $ this ->assertNull ($ this ->response ->getCardType ());
118
166
119
167
$ checks = array (
120
168
'Ds_SignatureVersion ' => 'HMAC_SHA256_V1 ' ,
@@ -138,9 +186,9 @@ public function testCompletePurchaseError()
138
186
139
187
/**
140
188
* @expectedException Omnipay\Common\Exception\InvalidResponseException
141
- * @expectedExceptionMessage Invalid response from payment gateway
189
+ * @expectedExceptionMessage Invalid response from payment gateway (no data)
142
190
*/
143
- public function testCompletePurchaseInvalidNoOrder ()
191
+ public function testCompletePurchaseInvalidNoParameters ()
144
192
{
145
193
$ this ->response = new CompletePurchaseResponse (
146
194
$ this ->getMockRequest (),
@@ -152,6 +200,26 @@ public function testCompletePurchaseInvalidNoOrder()
152
200
);
153
201
}
154
202
203
+ /**
204
+ * @expectedException Omnipay\Common\Exception\InvalidResponseException
205
+ * @expectedExceptionMessage Invalid response from payment gateway
206
+ */
207
+ public function testCompletePurchaseInvalidNoOrder ()
208
+ {
209
+ $ this ->response = new CompletePurchaseResponse (
210
+ $ this ->getMockRequest (),
211
+ array (
212
+ 'Ds_SignatureVersion ' => 'HMAC_SHA256_V1 ' ,
213
+ 'Ds_MerchantParameters ' => 'eyJEc19EYXRlIjoiMTBcLzExXC8yMDE1IiwiRHNfSG91ciI6IjEyOjAwIiwiRHNfU2VjdXJlUGF '
214
+ .'5bWVudCI6IjEiLCJEc19BbW91bnQiOiIxNDUiLCJEc19DdXJyZW5jeSI6Ijk3OCIsIkRzX01lcmNoYW50Q29kZSI6Ijk5OTAw '
215
+ .'ODg4MSIsIkRzX1Rlcm1pbmFsIjoiODcxIiwiRHNfUmVzcG9uc2UiOiIwMDAwIiwiRHNfVHJhbnNhY3Rpb25UeXBlIjoiMCIsI '
216
+ .'kRzX01lcmNoYW50RGF0YSI6IlJlZjogOTl6eiIsIkRzX0F1dGhvcmlzYXRpb25Db2RlIjoiOTk5OTk5IiwiRHNfQ29uc3VtZX '
217
+ .'JMYW5ndWFnZSI6IjIiLCJEc19DYXJkX0NvdW50cnkiOiI3MjQiLCJEc19DYXJkX1R5cGUiOiJDIn0= ' ,
218
+ 'Ds_Signature ' => '4cB7506qDYAqG8022GHWT2LwSeGvF5Q1cn7NNAKTrRY= ' ,
219
+ )
220
+ );
221
+ }
222
+
155
223
/**
156
224
* @expectedException Omnipay\Common\Exception\InvalidResponseException
157
225
* @expectedExceptionMessage Invalid response from payment gateway (signature mismatch)
0 commit comments