Skip to content

Commit

Permalink
Merge pull request #6 from cliche23/banklink-version-update
Browse files Browse the repository at this point in the history
Update encoded data values and signature algorithm
  • Loading branch information
miks authored Dec 30, 2021
2 parents 67973da + 20fdb01 commit fb69bf9
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
4 changes: 2 additions & 2 deletions src/Messages/PurchaseRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ class PurchaseRequest extends AbstractRequest
private function getEncodedData()
{
$data = [
'VK_SERVICE' => '1002', // Service code
'VK_VERSION' => '008', // Protocol version
'VK_SERVICE' => '1012', // Service code
'VK_VERSION' => '009', // Protocol version
'VK_SND_ID' => $this->getMerchantId(),
'VK_STAMP' => $this->getTransactionReference(), // Max 20 length
'VK_AMOUNT' => $this->getAmount(), // Decimal with point
Expand Down
5 changes: 4 additions & 1 deletion src/Utils/Pizza.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
*/
class Pizza
{

const SIGNATURE_ALGORITHM = OPENSSL_ALGO_SHA512;

// Returns base64 encoded control code
public static function generateControlCode(array $data, $encoding, $privateCertPath, $passPhrase)
{
Expand All @@ -17,7 +20,7 @@ public static function generateControlCode(array $data, $encoding, $privateCertP
// Compute controlCode
$certContent = file_get_contents($privateCertPath);
$privateKey = openssl_get_privatekey($certContent, $passPhrase);
openssl_sign($hash, $controlCode, $privateKey);
openssl_sign($hash, $controlCode, $privateKey, self::SIGNATURE_ALGORITHM);
openssl_free_key($privateKey);

return base64_encode($controlCode);
Expand Down
12 changes: 6 additions & 6 deletions tests/GatewayTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@ public function testPurchaseSuccess()
$this->assertEquals('https://www.swedbank.lv/banklink/', $response->getRedirectUrl());

$this->assertEquals(array(
'VK_SERVICE' => 1002,
'VK_VERSION' => '008',
'VK_SERVICE' => 1012,
'VK_VERSION' => '009',
'VK_SND_ID' => '1',
'VK_STAMP' => 'abc123',
'VK_AMOUNT' => '10.00',
'VK_CURR' => 'EUR',
'VK_REF' => 'abc123',
'VK_MSG' => 'purchase description',
'VK_MAC' => 'vizso1yFuk6oSGjen3oEZLst01BoQin1Y8yuCLWLtoQ6GVRJueMDJVqw4fUZ+Zt17JgdTD/7kx/1USMlUOG2gQHQBVeTt2iMyl9QKjoBb9zGTGMSTiI35MnddIpaO0oLoMZ9PRuvgUzyVo8Sq2Ojuet9ZNjyZNFe55SrxYJntXXoIV3CUBk+WTMTIdlytem3f51rj8O8xE0VoUrJaamqv8nFoVicIPdKJre8Fu1uNnmKWUC9kA0Fj7rz1M3t8jUaoHuIlPIeYvSOpkc64RWXw4E7b4ffDFdGpf5d1OYwHp9gnHBiRC85jUm1ADGUTe2ZZg5IaUUjn8heGfSE3bFyMQ==',
'VK_MAC' => 'VGtxFaXYXIZe9xkyxiwEQG+PjwuyFr4uXcfubKMlp8y1mEH+gAiPz9M+TGZFWUQoIBCKu/mkKB7i89OYjlQTo8GWDQtD2ovMobuhU8eeIfYsEY9oSXc3cxp0QePFMu3g8XAAweZf28jostVDdv/Q5gF82tSflTCu8rkvA7ymjNql/iF7GwwKNnTWUbJwLMRlu8XsMWry0oChKPbIeBKdO97Zxr53AG8c7gRAKmsFzKTRtIoMrJpXlVpZ7kZcGTU7Rzy/Zs6oACLhN7Vn0xDqSP+KWEGXlT7Z7DcIPQ3Y5Ghy8Ytje+khrkpM1yC3AzM66RsllNVc4JA3uI1sfxN/oA==',
'VK_RETURN' => 'http://localhost:8080/omnipay/banklink/',
'VK_LANG' => 'LAT',
'VK_ENCODING' => 'UTF-8',
Expand All @@ -81,15 +81,15 @@ public function testPurchaseSuccessWithPassphrasedPrivateKey()
$this->assertEquals('https://www.swedbank.lv/banklink/', $response->getRedirectUrl());

$this->assertEquals(array(
'VK_SERVICE' => 1002,
'VK_VERSION' => '008',
'VK_SERVICE' => 1012,
'VK_VERSION' => '009',
'VK_SND_ID' => '1',
'VK_STAMP' => 'abc123',
'VK_AMOUNT' => '10.00',
'VK_CURR' => 'EUR',
'VK_REF' => 'abc123',
'VK_MSG' => 'purchase description',
'VK_MAC' => 'j6dRFu5rszWnYw4S2g1r0cdxDJ8Es7SUOgQpmMQ0j5vjJZgCjf+0I9EfbvEZwseoiRWKO0CRi/pIdXxD6DNLpTCMe9GBgEKw7H2jzhPl+0VcZYThu/Gbt4F97A3vSk+jhmwbVuG991qFuEQUpA3IA8QPJ811VRjpCDEvv1Sz6zbivhIUHXYS2E3HpqWS85dnTFE6SqpXI37wzKMli3GUe8STHATfL4Vv6APNz5LSD4E6yituf95h2B5PbWeVEV9Sxf1FcLg8cXpTMRnlvdsqGZf0kOP0iYHEYwESvtmLbAzREe/cjt/j5Hsmsm6D1SLIbzFMyFwjterX8PwIpikrMw==',
'VK_MAC' => 'ftWhubDLjYssINn4FYFtKGM35WApxIPTUBf3TxA6qHzBX6bMWR60zrU1nDyxlAEZzWeIjt+1dROMcBKdxd0D29NdGfzjOaO6zuioQyjucIIK3ks5Y0E7ebx31BKoqMqgW751ko9m+yI1k338fPCQ8A9ax+1Yev5+biPwfC/wFuzeJXoAuyDBLibMLw3D3i8ZCk0eyqlKUm6wlyxDUWKs3LH0TLRTLh+/eNVILckVWuxE0gpBgfntI/vsHpK9KCaa+X5uPh9PJ6GmV2wWnTEJYlI1pZqZ9H03fUcCoMnTg85q6uVkqkw3p60oG5e8zI4vbJ03Jr0hft+cK8PWZEcq5g==',
'VK_RETURN' => 'http://localhost:8080/omnipay/banklink/',
'VK_LANG' => 'LAT',
'VK_ENCODING' => 'UTF-8',
Expand Down
3 changes: 1 addition & 2 deletions tests/Utils/PizzaTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ public function testGenerateControlCode()
$privateCertPath = 'tests/Fixtures/key.pem';
$privateCertificatePassphrase = null;

$expectedControlCode = 'UJNqocqzeglyVh7uy0bWXyCh3mUsOMWHokOekxDPpmsLRkCHxPNzlygtgresIBfpAhI6siAfIHvTMgDp6infHseJXJwLvgC5UDGINa6ruH3Oc9sQiU0pPoKnnCvT/0YHfiljI6X0cQfeLu2gk1ezK5CsNALrBOoT7uJ56t+Gcb38ioXjn1RgH7lcv0eX4Jj1tJLoiLngepOMcSIjfzXhBSdZ0O9H5DAJdo7SitP8HReuXWKeug9gXiAzkbup5JlMU2Y6jazf0hYWoMtP0IRUuL9q49y2qhd+NQWo+HXqT97E5Vj7THk5LApBYbJ5ZHq2bq4Kc7UFfmxd4+JTqRANuA==';

$expectedControlCode = 'aFUgw6CJu6vjY2uSEWzzBa+8iu4AozflO7+HPwmFJsxg9AFnL9xuoIKFiSL4CsRhVY+3OuLt4j6jBEAQnG3iH+NGMi6b77llj/MyeLKL5iieaW5hfpbjZkwsqeZ1WYJo/xFQQTTp4ipBbr7xXVXeHs7q9P+ViaI/RpXP5KY9OlTb+jDUU+Rewbhpjn7LdBbAw62cJy4eTZMldrhlRHJ0nX+LTh3jpa3/h5jevQF1A2+sl3Z/j0jHDDd0YZBubGdh7+DRL69lL5zg7OiiI7iJXZ/PutYNBdw7Ko5aDsgp2HDYvW7CdSpRts1aFki/2VAkLqD9mhEjmarPCq65RGpXLA==';
$this->assertSame($expectedControlCode, Pizza::generateControlCode($data, $encoding, $privateCertPath, $privateCertificatePassphrase));
}

Expand Down

0 comments on commit fb69bf9

Please sign in to comment.