Электронная подпись заказа
Электронная подпись заказа
Электронная подпись формируется для предотвращения изменений в форме платежа и должна присутствовать в каждой форме заказа. Все заказы без электронной подписи не будут рассматриваться системой WEBPAY.
Для формирования электронной подписи необходимо установить значение поля "Секретный ключ" в настройках Вашего биллинг-аккаунта (Установка секретного ключа).
Обратите внимание
Если дробная часть суммы заказа равна нулю, формат значения для расчета электронной подписи заказа wsb_signature зависит от формата поля wsb_total:
- если поле содержит дробную часть (например,
1.00), используйте значение с нулями; - если поле не содержит дробную часть (например,
1), используйте значение без нулей.
В каждой форме заказа необходимо указывать поля:
wsb_seed— случайная последовательность символов (можно использовать текущее значение времени, к примеру,Unix Timestamp);wsb_signature— непосредственно сама электронная подпись. Она должна быть сформирована согласно следующему правилу из значений следующих полей:wsb_seedwsb_storeidwsb_order_numwsb_testwsb_currency_idwsb_totalSecretKey
Поля должны быть объединены в одну строку, порядок объединения не должен быть нарушен.
Далее в зависимости от указанной версии протокола (wsb_version), считается MD5 (если версия не указана), либо SHA1 (для версии 2) объединенной строки.
$wsb_seed = 1242649174;
$wsb_storeid = 11111111;
$wsb_order_num = "ORDER-12345678";
$wsb_test = 1;
$wsb_currency_id = "BYN";
$wsb_total = 21.90;
$SecretKey = "12345678901234567890";
// Значение объединенной строки:
// 124264917411111111ORDER-123456781BYN21.9012345678901234567890
// для версии протокола 2 (wsb_version = 2)
$wsb_signature = sha1($wsb_seed.$wsb_storeid.$wsb_order_num.$wsb_test.$wsb_currency_id.$wsb_total.$SecretKey);
// Результат: 338d1647833079f9353907ad266ec0bb5264c0d9
// если версия не указана
$wsb_signature = md5($wsb_seed.$wsb_storeid.$wsb_order_num.$wsb_test.$wsb_currency_id.$wsb_total.$SecretKey);
// Результат: 5b712daa1743d1a62dfdb7054b3978a1