-
Notifications
You must be signed in to change notification settings - Fork 1
/
app_instance.php
66 lines (57 loc) · 1.57 KB
/
app_instance.php
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
<?php
include('checksum_utils.php');
class AFConfig{
public $repo_url;
public $secret_key;
public $app_key;
public function __construct($repo_url,$secret_key,$app_key){
$this->repo_url=$repo_url;
$this->secret_key=$secret_key;
$this->app_key=$app_key;
}
}
class AFAppInstance
{
private $iv = '$$appsfly.io##$$'; #Same as in JAVA
#Same as in JAVA
private $config;
private $microModuleId;
public function __construct($config,$microModuleId) {
$this->config=$config;
$this->microModuleId= $microModuleId;
}
public function exec($intent,$intent_data,$user_id){
$data["intent"]= $intent;
$data["data"]= json_decode($intent_data);
$body = json_encode($data);
$payload = $body . "|" .$this->microModuleId . "|" . $this->config->app_key ."|".$user_id;
$checksum =(new ApiCrypter())->getCheckSum($payload,$this->config->secret_key);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->config->repo_url."/executor/exec",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 50,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $body,
CURLOPT_HTTPHEADER => array(
"content-type: application/json",
"X-App-Key: ".$this->config->app_key,
"X-Checksum: ".$checksum,
"X-Module-Handle: ".$this->microModuleId,
"X-UUID: ".$user_id
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
return $response;
}
}
}
?>