diff --git a/app/PaymentDrivers/PayFast/Token.php b/app/PaymentDrivers/PayFast/Token.php index e63b0fa50a33..dcfcd92d04ee 100644 --- a/app/PaymentDrivers/PayFast/Token.php +++ b/app/PaymentDrivers/PayFast/Token.php @@ -94,7 +94,7 @@ class Token // $header['signature'] = md5( $this->generate_parameter_string(array_merge($header, $body), false) ); - $header['signature'] = $this->genSig(array_merge($body, $header)); + $header['signature'] = $this->payfast->generateTokenSignature(array_merge($body, $header)); nlog($header['signature']); diff --git a/app/PaymentDrivers/PayFastPaymentDriver.php b/app/PaymentDrivers/PayFastPaymentDriver.php index 15b420584976..aa563c744546 100644 --- a/app/PaymentDrivers/PayFastPaymentDriver.php +++ b/app/PaymentDrivers/PayFastPaymentDriver.php @@ -123,7 +123,36 @@ class PayFastPaymentDriver extends BaseDriver return (new Token($this))->tokenBilling($cgt, $payment_hash); } - public function generateSignature($data) + public function generateTokenSignature($data) + { + $fields = []; + + $keys = [ + 'merchant-id', + 'version', + 'timestamp', + 'amount', + 'item_name', + 'item_description', + 'itn', + 'm_payment_id', + 'cc_css', + 'split_payment' + ]; + + foreach($keys as $key) + { + if (!empty($data[$key])) { + $fields[$key] = $data[$key]; + } + } + + nlog(http_build_query($fields)); + + return md5(http_build_query($fields)); + } + + public function generateSignature($data) { $fields = array();