From 1663ad78c447ab44782b4fcd4415eb35a86c4df5 Mon Sep 17 00:00:00 2001 From: recca0120 Date: Fri, 10 Nov 2023 21:35:36 +0800 Subject: [PATCH] CheckCode, CheckValue --- tests/EncryptorTest.php | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/tests/EncryptorTest.php b/tests/EncryptorTest.php index 260bc30..0498c63 100644 --- a/tests/EncryptorTest.php +++ b/tests/EncryptorTest.php @@ -31,7 +31,7 @@ public function testEncrypt(): void ); } - public function testDecrypt() + public function testDecrypt(): void { $responseText = 'Status=SUCCESS&MerchantID=MS127874575&Version=2.0&TradeInfo=ee11d1501e6dc8433c75988258f2343d11f4d0a423be672e8e02aaf373c53c2363aeffdb4992579693277359b3e449ebe644d2075fdfbc10150b1c40e7d24cb215febefdb85b16a5cde449f6b06c58a5510d31e8d34c95284d459ae4b52afc1509c2800976a5c0b99ef24cfd28a2dfc8004215a0c98a1d3c77707773c2f2132f9a9a4ce3475cb888c2ad372485971876f8e2fec0589927544c3463d30c785c2d3bd947c06c8c33cf43e131f57939e1f7e3b3d8c3f08a84f34ef1a67a08efe177f1e663ecc6bedc7f82640a1ced807b548633cfa72d060864271ec79854ee2f5a170aa902000e7c61d1269165de330fce7d10663d1668c711571776365bfdcd7ddc915dcb90d31a9f27af9b79a443ca8302e508b0dbaac817d44cfc44247ae613075dde4ac960f1bdff4173b915e4344bc4567bd32e86be7d796e6d9b9cf20476e4996e98ccc315f1ed03a34139f936797d971f2a3f90bc18f8a155a290bcbcf04f4277171c305bf554f5cba243154b30082748a81f2e5aa432ef9950cc9668cd4330ef7c37537a6dcb5e6ef01b4eca9705e4b097cf6913ee96e81d0389e5f775&TradeSha=C80876AEBAC0036268C0E240E5BFF69C0470DE9606EEE083C5C8DD64FDB3347A'; @@ -45,6 +45,41 @@ public function testDecrypt() ); } + public function testCheckCode(): void + { + $check_code = [ + "MerchantID" => 'MS12345678', + "Amt" => '10', + "MerchantOrderNo" => 'MyCompanyOrder_1638423361', + "TradeNo" => '21120214151152468', + ]; + ksort($check_code); + $check_str = http_build_query($check_code); + $CheckCode = "HashIV=".$this->iv."&$check_str&HashKey=".$this->key; + + self::assertEquals( + '0D50996224E46B436D182F37AB4300740BDD57375D8E8202B3E8F5E97068DE81', + strtoupper(hash("sha256", $CheckCode)) + ); + } + + public function testCheckValue() + { + $check_code = [ + "MerchantID" => 'MS12345678', + "Amt" => '10', + "MerchantOrderNo" => 'MyCompanyOrder_1638423361', + ]; + ksort($check_code); + $check_str = http_build_query($check_code); + $CheckCode = "HashIV=".$this->iv."&$check_str&HashKey=".$this->key; + + self::assertEquals( + '270E971A614C3141FB20E62AFBA3244F19512DB462062B365D15CB6AC8DBCFE9', + strtoupper(hash("sha256", $CheckCode)) + ); + } + /** * @return Encryptor