mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-08 17:14:31 -04:00
Turning on token billing for PayFast
This commit is contained in:
parent
7e1f964b34
commit
175c8d7d8f
@ -79,8 +79,8 @@ class Token
|
|||||||
|
|
||||||
$header =[
|
$header =[
|
||||||
'merchant-id' => $this->payfast->company_gateway->getConfigField('merchantId'),
|
'merchant-id' => $this->payfast->company_gateway->getConfigField('merchantId'),
|
||||||
'version' => 'v1',
|
|
||||||
'timestamp' => now()->format('c'),
|
'timestamp' => now()->format('c'),
|
||||||
|
'version' => 'v1',
|
||||||
];
|
];
|
||||||
|
|
||||||
$body = [
|
$body = [
|
||||||
@ -91,10 +91,9 @@ class Token
|
|||||||
'passphrase' => $this->payfast->company_gateway->getConfigField('passphrase'),
|
'passphrase' => $this->payfast->company_gateway->getConfigField('passphrase'),
|
||||||
];
|
];
|
||||||
|
|
||||||
$header['signature'] = $this->payfast->generateSignature(array_merge($header, $body));
|
// $header['signature'] = $this->payfast->generateSignature(array_merge($header, $body));
|
||||||
// $header['signature'] = $this->genSig($body);
|
// $header['signature'] = $this->genSig($body);
|
||||||
|
$header['signature'] = $this->generate_parameter_string(array_merge($header, $body));
|
||||||
nlog($this->payfast->company_gateway->getConfigField('merchantId'));
|
|
||||||
|
|
||||||
$result = $this->send($header, $body, $cgt->token);
|
$result = $this->send($header, $body, $cgt->token);
|
||||||
|
|
||||||
@ -140,6 +139,41 @@ class Token
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function generate_parameter_string( $api_data, $sort_data_before_merge = true, $skip_empty_values = true ) {
|
||||||
|
|
||||||
|
// if sorting is required the passphrase should be added in before sort.
|
||||||
|
$api_data['passphrase'] = $this->payfast->company_gateway->getConfigField('passPhrase');
|
||||||
|
|
||||||
|
|
||||||
|
if ( $sort_data_before_merge ) {
|
||||||
|
ksort( $api_data );
|
||||||
|
}
|
||||||
|
|
||||||
|
// concatenate the array key value pairs.
|
||||||
|
$parameter_string = '';
|
||||||
|
foreach ( $api_data as $key => $val ) {
|
||||||
|
|
||||||
|
if ( $skip_empty_values && empty( $val ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( 'signature' !== $key ) {
|
||||||
|
$val = urlencode( $val );
|
||||||
|
$parameter_string .= "$key=$val&";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// when not sorting passphrase should be added to the end before md5
|
||||||
|
if ( $sort_data_before_merge ) {
|
||||||
|
$parameter_string = rtrim( $parameter_string, '&' );
|
||||||
|
} elseif ( ! empty( $this->pass_phrase ) ) {
|
||||||
|
$parameter_string .= 'passphrase=' . urlencode( $this->payfast->company_gateway->getConfigField('passPhrase') );
|
||||||
|
} else {
|
||||||
|
$parameter_string = rtrim( $parameter_string, '&' );
|
||||||
|
}
|
||||||
|
|
||||||
|
return $parameter_string;
|
||||||
|
}
|
||||||
|
|
||||||
private function genSig($data)
|
private function genSig($data)
|
||||||
{
|
{
|
||||||
$fields = [];
|
$fields = [];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user