@@ -21,7 +21,7 @@ public function getTransactionId()
21
21
public function getData ()
22
22
{
23
23
// The hash sent in the callback from the Authorize.Net gateway.
24
- $ hash_posted = $ this ->getPostedHash ($ this -> httpRequest );
24
+ $ hash_posted = $ this ->getPostedHash ();
25
25
26
26
// The transaction reference generated by the Authorize.Net gateway and sent in the callback.
27
27
$ posted_transaction_reference = $ this ->httpRequest ->request ->get ('x_trans_id ' );
@@ -30,7 +30,7 @@ public function getData()
30
30
$ posted_amount = $ this ->httpRequest ->request ->get ('x_amount ' );
31
31
32
32
// Calculate the hash locally, using the shared "hash secret" and login ID.
33
- $ hash_calculated = $ this ->getHash ($ posted_transaction_reference , $ posted_amount, $ this -> httpRequest );
33
+ $ hash_calculated = $ this ->getHash ($ posted_transaction_reference , $ posted_amount );
34
34
35
35
if ($ hash_posted !== $ hash_calculated ) {
36
36
// If the hash is incorrect, then we can't trust the source nor anything sent.
@@ -68,10 +68,10 @@ public function getData()
68
68
* @param $httpRequest
69
69
* @return string
70
70
*/
71
- public function getHash ($ transaction_reference , $ amount, $ httpRequest )
71
+ public function getHash ($ transaction_reference , $ amount )
72
72
{
73
- if (! empty ( $ httpRequest ) && $ hash = $ this ->getSha512Hash ( $ httpRequest )) {
74
- return $ hash ;
73
+ if ($ this ->getSignatureKey ( )) {
74
+ return $ this -> getSha512Hash () ;
75
75
} else {
76
76
return $ this ->getMd5Hash ($ transaction_reference , $ amount );
77
77
}
@@ -98,48 +98,51 @@ public function getMd5Hash($transaction_reference, $amount)
98
98
99
99
/**
100
100
* Generate sha512 hash.
101
- * Required fields are provided in Table 18 in https://www.authorize.net/content/dam/authorize/documents/SIM_guide.pdf#page=73
101
+ * Required fields are provided in Table 18 in
102
+ * https://www.authorize.net/content/dam/authorize/documents/SIM_guide.pdf#page=73
102
103
* @param $httpRequest
103
104
* @return string|null
104
105
*/
105
- public function getSha512Hash ($ httpRequest )
106
+ public function getSha512Hash ()
106
107
{
107
108
$ signatureKey = $ this ->getSignatureKey ();
108
- if (empty ($ signatureKey ) || empty ($ httpRequest )) {
109
+ $ httpRequest = $ this ->httpRequest ->request ;
110
+
111
+ if (empty ($ signatureKey )) {
109
112
return null ;
110
113
}
111
114
112
115
$ hashData = implode ('^ ' , [
113
- $ httpRequest ->request -> get ('x_trans_id ' ),
114
- $ httpRequest ->request -> get ('x_test_request ' ),
115
- $ httpRequest ->request -> get ('x_response_code ' ),
116
- $ httpRequest ->request -> get ('x_auth_code ' ),
117
- $ httpRequest ->request -> get ('x_cvv2_resp_code ' ),
118
- $ httpRequest ->request -> get ('x_cavv_response ' ),
119
- $ httpRequest ->request -> get ('x_avs_code ' ),
120
- $ httpRequest ->request -> get ('x_method ' ),
121
- $ httpRequest ->request -> get ('x_account_number ' ),
122
- $ httpRequest ->request -> get ('x_amount ' ),
123
- $ httpRequest ->request -> get ('x_company ' ),
124
- $ httpRequest ->request -> get ('x_first_name ' ),
125
- $ httpRequest ->request -> get ('x_last_name ' ),
126
- $ httpRequest ->request -> get ('x_address ' ),
127
- $ httpRequest ->request -> get ('x_city ' ),
128
- $ httpRequest ->request -> get ('x_state ' ),
129
- $ httpRequest ->request -> get ('x_zip ' ),
130
- $ httpRequest ->request -> get ('x_country ' ),
131
- $ httpRequest ->request -> get ('x_phone ' ),
132
- $ httpRequest ->request -> get ('x_fax ' ),
133
- $ httpRequest ->request -> get ('x_email ' ),
134
- $ httpRequest ->request -> get ('x_ship_to_company ' ),
135
- $ httpRequest ->request -> get ('x_ship_to_first_name ' ),
136
- $ httpRequest ->request -> get ('x_ship_to_last_name ' ),
137
- $ httpRequest ->request -> get ('x_ship_to_address ' ),
138
- $ httpRequest ->request -> get ('x_ship_to_city ' ),
139
- $ httpRequest ->request -> get ('x_ship_to_state ' ),
140
- $ httpRequest ->request -> get ('x_ship_to_zip ' ),
141
- $ httpRequest ->request -> get ('x_ship_to_country ' ),
142
- $ httpRequest ->request -> get ('x_invoice_num ' ),
116
+ $ httpRequest ->get ('x_trans_id ' ),
117
+ $ httpRequest ->get ('x_test_request ' ),
118
+ $ httpRequest ->get ('x_response_code ' ),
119
+ $ httpRequest ->get ('x_auth_code ' ),
120
+ $ httpRequest ->get ('x_cvv2_resp_code ' ),
121
+ $ httpRequest ->get ('x_cavv_response ' ),
122
+ $ httpRequest ->get ('x_avs_code ' ),
123
+ $ httpRequest ->get ('x_method ' ),
124
+ $ httpRequest ->get ('x_account_number ' ),
125
+ $ httpRequest ->get ('x_amount ' ),
126
+ $ httpRequest ->get ('x_company ' ),
127
+ $ httpRequest ->get ('x_first_name ' ),
128
+ $ httpRequest ->get ('x_last_name ' ),
129
+ $ httpRequest ->get ('x_address ' ),
130
+ $ httpRequest ->get ('x_city ' ),
131
+ $ httpRequest ->get ('x_state ' ),
132
+ $ httpRequest ->get ('x_zip ' ),
133
+ $ httpRequest ->get ('x_country ' ),
134
+ $ httpRequest ->get ('x_phone ' ),
135
+ $ httpRequest ->get ('x_fax ' ),
136
+ $ httpRequest ->get ('x_email ' ),
137
+ $ httpRequest ->get ('x_ship_to_company ' ),
138
+ $ httpRequest ->get ('x_ship_to_first_name ' ),
139
+ $ httpRequest ->get ('x_ship_to_last_name ' ),
140
+ $ httpRequest ->get ('x_ship_to_address ' ),
141
+ $ httpRequest ->get ('x_ship_to_city ' ),
142
+ $ httpRequest ->get ('x_ship_to_state ' ),
143
+ $ httpRequest ->get ('x_ship_to_zip ' ),
144
+ $ httpRequest ->get ('x_ship_to_country ' ),
145
+ $ httpRequest ->get ('x_invoice_num ' ),
143
146
]);
144
147
$ hash = hash_hmac ('sha512 ' , '^ ' . $ hashData . '^ ' , hex2bin ($ signatureKey ));
145
148
$ hash = strtoupper ($ hash );
@@ -150,20 +153,15 @@ public function getSha512Hash($httpRequest)
150
153
/**
151
154
* Get posted hash from the callback from the Authorize.Net gateway.
152
155
*
153
- * @param $httpRequest
154
156
* @return string|null
155
157
*/
156
- public function getPostedHash ($ httpRequest )
158
+ public function getPostedHash ()
157
159
{
158
- if (empty ($ httpRequest )){
159
- return null ;
160
- }
161
-
162
160
if ($ signatureKey = $ this ->getSignatureKey ()) {
163
- return strtoupper ($ httpRequest ->request ->get ('x_SHA2_Hash ' ));
161
+ return strtoupper ($ this -> httpRequest ->request ->get ('x_SHA2_Hash ' ));
164
162
}
165
163
166
- return strtolower ($ httpRequest ->request ->get ('x_MD5_Hash ' ));
164
+ return strtolower ($ this -> httpRequest ->request ->get ('x_MD5_Hash ' ));
167
165
}
168
166
169
167
public function sendData ($ data )
0 commit comments