public void ValidateCheckMacValue_InputDictionary_ReturnSameMacValue()
        {
            // Arrange
            var result = new PaymentResult()
            {
                MerchantID           = "2000132",
                MerchantTradeNo      = "11106240000033084023",
                StoreID              = null,
                RtnCode              = 1,
                RtnMsg               = "交易成功",
                TradeNo              = "2006291634327513",
                TradeAmt             = 3000,
                PaymentDate          = "2020/06/29 16:35:49",
                PaymentType          = "Credit_CreditCard",
                PaymentTypeChargeFee = 60,
                TradeDate            = "2020/06/29 16:34:32",
                SimulatePaid         = 0,
                CustomField1         = null,
                CustomField2         = null,
                CustomField3         = null,
                CustomField4         = null,
                CheckMacValue        = "45FA5D47A8379FF149159A014C6445F886CC9656CF85D5B2F736577894A745F8"
            };
            var hashKey = "5294y06JbISpM5x9";
            var hashIV  = "v77hoKGq4kWxNNIS";
            // Act
            bool isValid = CheckMac.PaymentResultIsValid(result, hashKey, hashIV);

            // Assert
            isValid.Should().Be(true);
        }
Beispiel #2
0
        public IActionResult Callback(PaymentResult result)
        {
            var hashKey = "5294y06JbISpM5x9";
            var hashIV  = "v77hoKGq4kWxNNIS";

            // 務必判斷檢查碼是否正確。
            if (!CheckMac.PaymentResultIsValid(result, hashKey, hashIV))
            {
                return(BadRequest());
            }

            // 處理後續訂單狀態的更動等等...。

            return(Ok("1|OK"));
        }