Exemplo n.º 1
0
        public CompleteThreedResponse CompleteThreed(CompleteThreedRequest completeThreedRequest, string apiUrl, string secretKey)
        {
            //Https Protocol bu şekilde gönderilmeli
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            //ThreeD işlemi tamamlama işlemi için Signature oluşturan metod
            completeThreedRequest.SetSignature(secretKey);

            //ApiUrl + /payments/complete3dpayment adresine hazırlanan request ile post işlemi yapılır.
            var response = RestCall <CompleteThreedResponse>(apiUrl, completeThreedRequest, secretKey);

            //Hepsipay tarafından dönen signature doğruluğu kontrol edilir. Doğrulamak isterseniz kullanabilirsiniz.
            response.ControlSignature(secretKey);

            return(response);
        }
        /// <summary>
        /// ThreeD doğrulama ekranından dönen cevap ile işlemin tamamlanmasının sağlandığı metod.
        /// </summary>
        /// <param name="threedSuccessfulResultModel">İşlem başarılı olduğunda dolu gelecektir. Başarısız işlemlerde null gönderilir.</param>
        /// <returns></returns>
        public ActionResult SuccessfulResult(ThreedSuccessfulResultModel threedSuccessfulResultModel)
        {
            var completeThreedRequest = new CompleteThreedRequest
            {
                EncryptedThreedResult = threedSuccessfulResultModel.EncryptedThreedResult,
                ApiKey      = _apiKey,
                HashVersion = _hashVersion
            };

            var apiUrl = _apiUrl + "/payments/complete3dpayment";

            var completeThreedResponse = _paymentProcessor.CompleteThreed(completeThreedRequest, apiUrl, _secretKey);

            //ThreeD işlem sonucu
            var resultModel = new ResultModel
            {
                Amount            = completeThreedResponse.Amount,
                ApiKey            = completeThreedResponse.ApiKey,
                CardId            = completeThreedResponse.CardId,
                Currency          = completeThreedResponse.Currency,
                FailUrl           = completeThreedResponse.FailUrl,
                SuccessUrl        = completeThreedResponse.SuccessUrl,
                Success           = completeThreedResponse.Success,
                MessageCode       = completeThreedResponse.MessageCode,
                Message           = completeThreedResponse.Message,
                UserMessage       = completeThreedResponse.UserMessage,
                Installment       = completeThreedResponse.Installment,
                TransactionTime   = completeThreedResponse.TransactionTime,
                TransactionId     = completeThreedResponse.TransactionId,
                SaveCreditCard    = completeThreedResponse.SaveCreditCard,
                TransactionType   = completeThreedResponse.TransactionType,
                ThreeDHostAddress = completeThreedResponse.ThreeDHostAddress
            };

            //Result işleminin görüntülendiği sayfa
            return(View("Result", resultModel));
        }