1: <?php
2: namespace Sotr\Crypto\Bitstamp;
3:
4: use Psr\Http\Message\RequestInterface;
5: use GuzzleHttp\Psr7\Request;
6: use Sotr\Crypto\AbstractRequestSigner;
7:
8: class BitstampRequestSigner extends AbstractRequestSigner
9: {
10: public function sign(RequestInterface $request, $key, $secret, $customerId = null)
11: {
12: $nonce = $this->nonceGenerator->generateNonce();
13:
14: $signature = hash_hmac('sha256', $nonce . $customerId . $key, $secret);
15:
16: parse_str($request->getBody()->getContents(), $params);
17: $params = array_merge(
18: ['key' => $key, 'nonce' => $nonce, 'signature' => $signature],
19: $params
20: );
21: $body = http_build_query($params);
22:
23: return new Request(
24: $request->getMethod(),
25: $request->getUri(),
26: $request->getHeaders(),
27: $body
28: );
29: }
30: }
31: