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