示例#1
0
        public async Task ProcessSalesAdjustmentReversal_Validates_AdjustmentSignature_NotOverLength()
        {
            var client = CreateTestClient();

            var request = new ProcessSalesAdjustmentReversalRequest()
            {
                ClientTransactionReference = "0123456789",
                AdjustmentSignature        = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
            };

            _ = await client.ProcessSalesAdjustmentReversalAsync(request);
        }
示例#2
0
        public void ProcessSalesAdjustmentReversalRequest_Validates_Ok_When_Valid()
        {
            var request = new ProcessSalesAdjustmentReversalRequest()
            {
                OperatorId = "Yort",
                DeviceId   = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_DeviceId"),
                MerchantId = Environment.GetEnvironmentVariable("Humm_Test_Sandbox_MerchantId"),
                PosVersion = "1.0",
                ClientTransactionReference = "0123456789",
                AdjustmentSignature        = "012345678901234567890"
            };

            request.Validate();
        }
        public void Throws_On_Null_OutputStream()
        {
            var sigGen = new Hmac256SignatureGenerator("dy33vQhksVsv");
            var writer = new SignedRequestWriter(sigGen);

            var request = new ProcessSalesAdjustmentReversalRequest()
            {
                MerchantId = "30299999",
                DeviceId   = "d555",
                OperatorId = "test_operator",
                PosVersion = "123",
                ClientTransactionReference = "tnx-rev1",
                AdjustmentSignature        = "ce20e2f1a9fe0d92b3d021ba7f1b372b006778cfab5fc4c09efa60a6d910c471"
            };

            writer.WriteRequest(request, null);
        }
        public async Task ProcessSalesAdjustmentReversalAsync_Throws_Without_DeviceKey()
        {
            var client = CreateTestClient();

            client.SetDeviceKey(null);

            var request = new ProcessSalesAdjustmentReversalRequest()
            {
                MerchantId = "30299999",
                DeviceId   = "d555",
                OperatorId = "test_operator",
                PosVersion = "123",
                ClientTransactionReference = "tnx-rev1",
                AdjustmentSignature        = "ce20e2f1a9fe0d92b3d021ba7f1b372b006778cfab5fc4c09efa60a6d910c471"
            };

            _ = await client.ProcessSalesAdjustmentReversalAsync(request);
        }
        public void Writes_Expected_ProcessSalesAdjustmentReversal_Request_With_Signature()
        {
            var sigGen = new Hmac256SignatureGenerator("dy33vQhksVsv");
            var writer = new SignedRequestWriter(sigGen);

            var request = new ProcessSalesAdjustmentReversalRequest()
            {
                MerchantId = "30299999",
                DeviceId   = "d555",
                OperatorId = "test_operator",
                PosVersion = "123",
                ClientTransactionReference = "tnx-rev1",
                AdjustmentSignature        = "ce20e2f1a9fe0d92b3d021ba7f1b372b006778cfab5fc4c09efa60a6d910c471"
            };

            var result = writer.WriteRequest(request);

            //Note: The signature expected here is different to the one shown in the Humm sample page (https://docs.shophumm.com.au/pos/api_information/http_examples/).
            //The sample C# code provided by Humm at (https://docs.shophumm.com.au/pos/security/signature_generation/) generates the same code used here
            //and this signature gen works with the API endpoints, so it would appear the sample was updated using a different key or something, and the
            //sample signature is now incorrect.
            Assert.AreEqual("{\"x_pos_transaction_ref\":\"tnx-rev1\",\"x_adjustment_signature\":\"ce20e2f1a9fe0d92b3d021ba7f1b372b006778cfab5fc4c09efa60a6d910c471\",\"x_merchant_id\":\"30299999\",\"x_device_id\":\"d555\",\"x_firmware_version\":\"123\",\"x_operator_id\":\"test_operator\",\"signature\":\"83a8f5b53cbd205474cd8c993f911b465d25a381d3fc09c781fefb9bef18859d\"}", result);
            Assert.IsTrue(result.Contains("1949a14cfdd8e6062a54f28ab3a607637f081afb7b8f4cffa3fb413fadab963b"));
        }