· 7 years ago · Nov 03, 2017, 11:48 AM
1function redirect_to_parent() {
2
3 $current_user = wp_get_current_user();
4 $user_name = $current_user->user_login;
5 $originales = 'ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖØÙÚÛÜÃÞ
6 ßà áâãäåæçèéêëìÃîïðñòóôõöøùúûýýþÿŔŕ ';
7 $modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuy
8 bsaaaaaaaceeeeiiiidnoooooouuuyybyRr-';
9 $cadena = utf8_decode($user_name);
10 $cadena = strtr($cadena, utf8_decode($originales), $modificadas);
11 $cadena = strtolower($cadena);
12 $username = utf8_encode($cadena);
13
14
15
16
17 $instance_url = "https://fuji-fi.prakton.es/crm/rest/v10";
18 $username = "external_api_user";
19 $password = "External2017$";
20
21//Login - POST /oauth2/token
22 $auth_url = $instance_url . "/oauth2/token";
23
24
25
26 $oauth2_token_arguments = array(
27 "grant_type" => "password",
28 //client id - default is sugar.
29 //It is recommended to create your own in Admin > OAuth Keys
30 "client_id" => "sugar",
31 "client_secret" => "",
32 "username" => $username,
33 "password" => $password,
34 //platform type - default is base.
35 //It is recommend to change the platform to a custom name such as "custom_api" to avoid authentication conflicts.
36 "platform" => "api"
37 );
38
39 $auth_request = curl_init($auth_url);
40 curl_setopt($auth_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
41 curl_setopt($auth_request, CURLOPT_HEADER, false);
42 curl_setopt($auth_request, CURLOPT_SSL_VERIFYPEER, 0);
43 curl_setopt($auth_request, CURLOPT_RETURNTRANSFER, 1);
44 curl_setopt($auth_request, CURLOPT_FOLLOWLOCATION, 0);
45 curl_setopt($auth_request, CURLOPT_HTTPHEADER, array(
46 "Content-Type: application/json"
47 ));
48
49//convert arguments to json
50 $json_arguments = json_encode($oauth2_token_arguments);
51 curl_setopt($auth_request, CURLOPT_POSTFIELDS, $json_arguments);
52
53
54
55//execute request
56 $oauth2_token_response = curl_exec($auth_request);
57
58 $oauth2_token_response_obj = json_decode($oauth2_token_response);
59
60 $oauth_token = $oauth2_token_response_obj->access_token;
61
62
63
64
65
66
67
68
69 $url = "https://fuji-fi.prakton.es/crm/service/v4_1/rest.php";
70 $username = "external_api_user";
71 $password = "External2017$";
72
73 //function to make cURL request
74 function call($method, $parameters, $url)
75 {
76 ob_start();
77 $curl_request = curl_init();
78
79 curl_setopt($curl_request, CURLOPT_URL, $url);
80 curl_setopt($curl_request, CURLOPT_POST, 1);
81 curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
82 curl_setopt($curl_request, CURLOPT_HEADER, 1);
83 curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
84 curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
85 curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);
86
87
88 $jsonEncodedData = json_encode($parameters);
89
90 $post = array(
91 "method" => $method,
92 "input_type" => "JSON",
93 "response_type" => "JSON",
94 "rest_data" => $jsonEncodedData
95 );
96
97 curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
98 $result = curl_exec($curl_request);
99 curl_close($curl_request);
100
101 $result = explode("\r\n\r\n", $result, 2);
102 $response = json_decode($result[1]);
103 ob_end_flush();
104
105 return $response;
106 }
107
108 //login ---------------------------------------------
109
110 $login_parameters = array(
111 "user_auth" => array(
112 "user_name" => $username,
113 "password" => md5($password),
114 "version" => "1"
115 ),
116 "application_name" => "RestTest",
117 "name_value_list" => array(),
118 );
119
120 $login_result = call("login", $login_parameters, $url);
121
122
123
124 /*
125 echo "<pre>";
126 print_r($login_result);
127 echo "</pre>";
128 */
129
130 //get session id
131
132
133
134
135
136
137 $session_id = $login_result->id;
138
139 //create account -------------------------------------
140
141 $set_entry_parameters = array(
142 //session id
143 "session" => $session_id,
144
145 //The name of the module from which to retrieve records.
146 "module_name" => "Accounts",
147
148 //Record attributes
149 "name_value_list" => array(
150 //to update a record, you will nee to pass in a record id as commented below
151 //array("name" => "id", "value" => "9b170af9-3080-e22b-fbc1-4fea74def88f"),
152
153 array("name" => "name", "value" => "Test Account"),
154
155
156 ),
157 );
158
159 $set_entry_result = call("set_entry", $set_entry_parameters, $url);
160
161
162
163
164}