-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommerce_socolissimo.api.inc
More file actions
91 lines (85 loc) · 2.95 KB
/
commerce_socolissimo.api.inc
File metadata and controls
91 lines (85 loc) · 2.95 KB
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
<?php
/**
* @file
* SOColissimo API base functions
*/
/**
* Compute the message SHA-1 signature
*
* @see commerce_socolissimo_signature_out()
* @see commerce_socolissimo_signature_in()
*
* @param array $params
* associative array of message values
* @param string $sha_key
* hash salt
* @param array $sign_keys
* keys of params array to include in signature calculation
* @return string
* the message SHA-1 signature
*/
function commerce_socolissimo_signature($params, $sha_key, $sign_keys){
foreach($params as $key => $value){
$up_params[strtoupper($key)] = $value;
}
$params = $up_params;
$components = array();
foreach($sign_keys as $key){
$key = strtoupper($key);
if(array_key_exists($key,$up_params)){
if( !empty($up_params[$key]) || $up_params[$key] === 0 ){
$components[] = $up_params[$key];
}
}
}
$components[] = $sha_key;
return sha1(implode('', $components));
}
/**
* Compute the message SHA-1 for outgoing requests
*
* @param array $params
* associative array of message values
* @param string $sha_key
* hash salt
* @return string
* the message SHA-1 signature
*/
function commerce_socolissimo_signature_out($params, $sha_key) {
return commerce_socolissimo_signature($params, $sha_key,
array('pudoFOId', 'ceName', 'dyPreparationTime', 'dyForwardingCharges',
'trClientNumber', 'trOrderNumber', 'orderId', 'numVersion', 'ceCivility',
'ceFirstName', 'ceCompanyName', 'ceAdress1', 'ceAdress2', 'ceAdress3',
'ceAdress4', 'ceZipCode', 'ceTown', 'ceEntryPhone', 'ceDeliveryInformation',
'ceEmail', 'cePhoneNumber', 'ceDoorCode1', 'ceDoorCode2', 'dyWeight',
'trFirstOrder', 'trParamPlus', 'trReturnUrlKo', 'trReturnUrlOk',
)
);
}
/**
* Compute the message SHA-1 for incoming returns
*
* @param array $params
* associative array of message values
* @param string $sha_key
* hash salt
* @return string
* the message SHA-1 signature
*/
function commerce_socolissimo_signature_in($params, $sha_key) {
return commerce_socolissimo_signature($params, $sha_key,
array('PUDOFOID', 'CENAME', 'DYPREPARATIONTIME', 'DYFORWARDINGCHARGES',
'TRCLIENTNUMBER', 'TRORDERNUMBER', 'ORDERID', 'CECIVILITY', 'CEFIRSTNAME',
'CECOMPANYNAME', 'CEADRESS1', 'CEADRESS2', 'CEADRESS3', 'CEADRESS4',
'CEZIPCODE', 'CETOWN', 'DELIVERYMODE', 'CEDELIVERYINFORMATION', 'CEEMAIL',
'CEPHONENUMBER', 'CEDOORCODE1', 'CEDOORCODE2', 'CEENTRYPHONE',
'TRPARAMPLUS', 'TRADERCOMPANYNAME', 'ERRORCODE', 'ERR_CENAME',
'ERR_CEFIRSTNAME', 'ERR_CECOMPANYNAME', 'ERR_CEADRESS1', 'ERR_CEADRESS2',
'ERR_CEADRESS3', 'ERR_CEADRESS4', 'ERR_CETOWN', 'ERR_CEDOORCODE1',
'ERR_CEDOORCODE2', 'ERR_CEENTRYPHONE', 'ERR_CEDELIVERYINFORMATION',
'ERR_CEEMAIL', 'ERR_CEPHONENUMBER', 'ERR_TRCLIENTNUMBER',
'ERR_TRORDERNUMBER', 'ERR_TRPARAMPLUS', 'ERR_CECIVILITY', 'ERR_DYWEIGHT',
'ERR_DYPREPARATIONTIME', 'TRRETURNURLKO',
)
);
}