<?php
$request = 'POST';
// I've set the callback url to http://signature.wix.codeoasis.com/
// I've tried with and without the '/' (ie $url = '')
$url = '/';
$headers = array(
'X-Wix-Signature' => '3elavUOF0-I1_7tGz2XZKs_HSlrygsMiblpNFPKv3Ik',
"X-Wix-Instance-Id" => "132fc751-9325-63d3-a605-f74e0c25192a",
"X-Wix-Event-Id" => "da390885-e72f-4a93-be7f-a90220bac5c7",
"X-Wix-Event-Type" => "/provision/provision",
"X-Wix-Timestamp" => "2013-10-23T15:39:34.462Z",
"X-Wix-Application-Id" => "132fbf95-d58e-f9ed-86e8-48b76f901d91"
);
//$body = "{\n\t\"instance-id\": \"1328a7fe-e451-8780-d201-0c5d9a1fc02b\"\n}";
$body = '{"instance-id":"132fc751-9325-63d3-a605-f74e0c25192a"}';
// The app secret provided by Wix
$appSecret = "97cfac6e-b061-4007-a03e-eb4bc199e620";
function concat($request, $url, $headers, $body)
{
// Request Method and Url separated by \n
$result = trim($request);
$result .= "\n";
$result .= trim($url);
$result .= "\n";
// Sort Wix-* headers by key
ksort($headers);
// concatenate Wix-* headers (trimmed and separate by comma)
$first = true;
foreach ($headers as $key => $value) {
if ($key != 'X-Wix-Signature' && $first == true) {
$result = $result . trim($value);
$first = false;
} else if ($key != 'X-Wix-Signature') {
$result = $result . '\n' . trim($value);
}
}
// Add body
$result = $result . "\n" . trim($body);
return $result;
}
$concat = "POST\n/\n1306dc69-eb2f-493d-fc98-f4e693829367\n1328a7fe-e451-8780-d201-0c5d9a1fc02b\n2013-09-30T10:46:38.993Z\n2cdae256-750f-4cc8-bbde-b35018bf8ceb\n/provision/provision\n{\"instance-id\":\"1328a7fe-e451-8780-d201-0c5d9a1fc02b\"}";
// Encrypt with hmac and app secret
$encrypted = hash_hmac('sha256', $concat, $appSecret);
$base64 = base64_encode($encrypted);
echo "The computed signature is : " . $encrypted . "\n";
echo "The signature sent by Wix : " . $headers['X-Wix-Signature'];
// The received request on http://signature.wix.codeoasis.com/
//
// {
// "Host": "signature.wix.codeoasis.com",
// "X-Wix-Signature": "3elavUOF0-I1_7tGz2XZKs_HSlrygsMiblpNFPKv3Ik",
// "X-Wix-Instance-Id": "132fc751-9325-63d3-a605-f74e0c25192a",
// "X-Wix-Event-Id": "da390885-e72f-4a93-be7f-a90220bac5c7",
// "Content-Type": "application/json; charset=utf-8",
// "X-Wix-Event-Type": "/provision/provision",
// "X-Wix-Timestamp": "2013-10-23T15:39:34.462Z",
// "X-Wix-Application-Id": "132fbf95-d58e-f9ed-86e8-48b76f901d91",
// "Connection": "keep-alive",
// "Accept": "*/*",
// "User-Agent": "Dispatch/0.10.1",
// "Content-Length": "54",
// "body":
// {
// "instance-id":"132fc751-9325-63d3-a605-f74e0c25192a"
// }
// }
preferences:
36.65 ms | 402 KiB | 5 Q