Вы хотите иметь возможность защитить себя от атак посредников и предотвратить повторное воспроизведение запросов.Каждый раз, когда передается информация, связанная с оплатой, я бы предпочел подписать запрос, используя одноразовые номера и временную метку.Это включает в себя подписание запроса с использованием общего секрета между клиентом и сервером.Секрет может быть передан один раз при входе в систему.
Используйте метку времени и уникальное значение nonce, сгенерированное клиентом, как часть подписанных байтов.Эти значения также передаются обратно как заголовки в запросе, чтобы сервер мог повторно собрать запрос.
Типичный запрос, выполняемый из curl, может выглядеть следующим образом:
curl -v -H "Content-Type: application/json" -H "Authorization: ff7b93ad-27d0-49f6-90bd-9937951e5fcc:ncYoA5n5s2nFSm7qyvf5hDgL4pmmPOUP3zo/UYfaQKg=" -H "x-date:2013-03-28T19:34:00+00:00" -H "nonce:2d1321d32a" -X GET 'http://localhost/orders/123'
Заголовок авторизации содержитid для идентификации запрашивающей стороны, а затем хэш подписанного запроса.Заголовок даты должен быть в пределах определенного смещения времени сервера (15 минут - разумный предел).
У меня есть полный пример кода здесь