.NET Sample Codes

3D-Free Payment Page


public class DealerPaymentServicePaymentRequest
{
    public PaymentDealerAuthentication PaymentDealerAuthentication { get; set; }
    public PaymentDealerRequest PaymentDealerRequest { get; set; }
}
 
public class PaymentDealerAuthentication
{
    public string DealerCode { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public string CheckKey { get; set; }
}
 
public class PaymentDealerRequest
{
    public string CardHolderFullName { get; set; }
    public string CardNumber { get; set; }
    public string ExpMonth { get; set; }
    public string ExpYear { get; set; }
    public string CvcNumber { get; set; }
    public decimal Amount { get; set; }
    public string Currency { get; set; }
    public int InstallmentNumber { get; set; }
    public string VirtualPosOrderId { get; set; }
    public int VoidRefundReason { get; set; }
    public string ClientIP { get; set; }
    public string RedirectUrl { get; set; }
    public int UtilityCompanyBillId { get; set; }
    public int DealerStaffId { get; set; }
}
 
public class DealerPaymentServiceDirectPaymentResult
{
    public DealerPaymentServiceDirectPaymentResultData Data { get; set; }
    public string ResultCode { get; set; }
    public string ResultMessage { get; set; }
    public string Exception { get; set; } 
}
 
public class DealerPaymentServiceDirectPaymentResultData 
{
    public bool IsSuccessful { get; set; }
    public string ResultCode { get; set; }
    public string ResultMessage { get; set; }
}
 
 
DealerPaymentServicePaymentRequest request = new DealerPaymentServicePaymentRequest();
request.PaymentDealerAuthentication = new PaymentDealerAuthentication();
request.PaymentDealerAuthentication.DealerCode = "250";
request.PaymentDealerAuthentication.Username = "testuser";
request.PaymentDealerAuthentication.Password = "KFNHLRMGHMD";
request.PaymentDealerAuthentication.CheckKey = SHA256Hash(request.DealerCode+"MK"+request.Username+"PD"+request.Password);
 
request.PaymentDealerRequest = new PaymentDealerRequest();
request.PaymentDealerRequest.CardHolderFullName = "Ahmet Yılmaz";
request.PaymentDealerRequest.CardNumber = "5555666677778888";
request.PaymentDealerRequest.ExpYear = "2017";
request.PaymentDealerRequest.ExpMonth = "12";
request.PaymentDealerRequest.CvcNumber = "123";
request.PaymentDealerRequest.Amount = 0.1m;
request.PaymentDealerRequest.Currency = "TL";
request.PaymentDealerRequest.InstallmentNumber = 1;
request.PaymentDealerRequest.ClientIP = "10.10.10.10";
 
 
string postUrl = "https://service.moka.com/PaymentDealer/DoDirectPayment";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(postUrl);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
 
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string json = new JavaScriptSerializer().Serialize(request); 
    streamWriter.Write(json);
}
 
DealerPaymentServiceDirectPaymentResult dealerPaymentServicePaymentResult;
 
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    string result = streamReader.ReadToEnd();
    dealerPaymentServicePaymentResult = new JavaScriptSerializer().Deserialize<DealerPaymentServiceDirectPaymentResult>(result);
}

3D Payment Page


public class DealerPaymentServicePaymentRequest
{
      public PaymentDealerAuthentication PaymentDealerAuthentication { get; set; }
      public PaymentDealerRequest PaymentDealerRequest { get; set; }
}

public class PaymentDealerAuthentication
{
      public string DealerCode { get; set; }
      public string Username { get; set; }
      public string Password { get; set; }
      public string CheckKey { get; set; }

}

public class PaymentDealerRequest
{
      public string CardHolderFullName { get; set; }
      public string CardNumber { get; set; }
      public string ExpMonth { get; set; }
      public string ExpYear { get; set; }
      public string CvcNumber { get; set; }
      public decimal Amount { get; set; }
      public string Currency { get; set; }
      public int InstallmentNumber { get; set; }
      public string VirtualPosOrderId { get; set; }
      public int VoidRefundReason { get; set; }
      public string ClientIP { get; set; }
      public string RedirectUrl { get; set; }
      public int UtilityCompanyBillId { get; set; }
      public int DealerStaffId { get; set; }
}

public class DealerPaymentServiceDirectPaymentResult
{
      public DealerPaymentServiceDirectPaymentResultData Data { get; set; }
      public string ResultCode { get; set; }
      public string ResultMessage { get; set; }
      public string Exception { get; set; } 
}

public class DealerPaymentServiceDirectPaymentResultData 
{
      public bool IsSuccessful { get; set; }
      public string ResultCode { get; set; }
      public string ResultMessage { get; set; }
}

public class DealerPaymentServicePaymentResult
{
      public string Data { get; set; }
      public string ResultCode { get; set; }
      public string ResultMessage { get; set; }      
      public string Exception { get; set; } 
}

DealerPaymentServicePaymentRequest request = new DealerPaymentServicePaymentRequest();
request.PaymentDealerAuthentication = new PaymentDealerAuthentication();
request.PaymentDealerAuthentication.DealerCode = "250";
request.PaymentDealerAuthentication.Username = "testuser";
request.PaymentDealerAuthentication.Password = "KLRSMGLSX";
request.PaymentDealerAuthentication.CheckKey = SHA256Hash(request.DealerCode+"MK"+request.Username+"PD"+request.Password);

request.PaymentDealerRequest = new PaymentDealerRequest();
request.PaymentDealerRequest.CardHolderFullName = "Ahmet Yılmaz";
request.PaymentDealerRequest.CardNumber = "5555666677778888";
request.PaymentDealerRequest.ExpMonth = "2017";
request.PaymentDealerRequest.ExpYear = "12";
request.PaymentDealerRequest.CvcNumber = "123";
request.PaymentDealerRequest.Amount = 0.1m;
request.PaymentDealerRequest.Currency = "TL";
request.PaymentDealerRequest.InstallmentNumber = 1;
request.PaymentDealerRequest.ClientIP = "10.10.10.10";
request.PaymentDealerRequest.RedirectUrl = "https://www.abcasdf.com/PayResult?MyTrxId=123456";


string postUrl = "https://service.moka.com/PaymentDealer/DoDirectPaymentThreeD";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(postUrl);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
      string json = new JavaScriptSerializer().Serialize(request);
      streamWriter.Write(json);
}

DealerPaymentServicePaymentResult dealerPaymentServicePaymentResult;

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
      string result = streamReader.ReadToEnd();
      dealerPaymentServicePaymentResult = new JavaScriptSerializer().Deserialize<DealerPaymentServicePaymentResult>(result);
}
if (dealerPaymentServicePaymentResult.ResultCode.Equals("Success"))
{
      string redirectUrl = dealerPaymentServicePaymentResult.Data;
      return Redirect(redirectUrl);
}
else
{
      if (dealerPaymentServicePaymentResult.ResultCode.Equals("PaymentDealer.DoDirectPayment3dRequest.InstallmentNotAvailableForForeignCurrencyTransaction"))      
      {
            ErrorMessage = "Yabancı para işlemlerinde taksit işlemi uygulanamaz!";
      }
      else if (dealerPaymentServicePaymentResult.ResultCode.Equals("PaymentDealer.DoDirectPayment3dRequest.ThisInstallmentNumberNotAvailableForDealer"))
      {
            ErrorMessage = "Seçtiğiniz taksit bayi hesabınızda tanımlı değildir!";
      }
      else if (dealerPaymentServicePaymentResult.ResultCode.Equals("PaymentDealer.DoDirectPayment3dRequest.ForeignCurrencyNotAvailableForThisDealer"))
      {
            ErrorMessage = "Yabancı para işlemleri bayi tanımınızda tanımlı değildir!";
      }
      else if (dealerPaymentServicePaymentResult.ResultCode.Equals("PaymentDealer.DoDirectPayment3dRequest.ThisInstallmentNumberNotAvailableForVirtualPos"))
      {
            ErrorMessage = "Bu taksit sayısı seçili sanal pos için kullanılamaz!";
      }
      else if (dealerPaymentServicePaymentResult.ResultCode.Equals("PaymentDealer.CheckDealerPaymentLimits.DailyDealerLimitExceeded"))
      {
            WarningMessage = "Bayi limit aşımı nedeniyle işleminizi gerçekleştiremiyoruz. Lütfen ilgili birimimizle irtibata geçiniz.";
      }
}


[HttpPost]
public ActionResult PayResult(bool isSuccessful, string resultCode, string resultMessage, string trxCode)
{
      if (isSuccessful)
      {
            NotificationHelper.SuccessMessage = "Ödeme başarıyla tamamlandı! Trx Code: " + trxCode;
      }
      else
      {
            NotificationHelper.ErrorMessage = "Ödeme sırasında bir hata oluştu! ResultCode: " + resultCode + ", Result Message: " + resultMessage + "";
      }

      return Redirect("/DealerPayment/Pay3d");
}


SHA256 Flip Page


string hashKey = dealerCode + "MK" + username + "PD" + password;
System.Text.Encoding encoding = Encoding.UTF8;
byte[] plainBytes = encoding.GetBytes(hashKey);
System.Security.Cryptography.SHA256Managed sha256Engine = new SHA256Managed();
string hashedData = String.Empty;
byte[] hashedBytes = sha256Engine.ComputeHash(plainBytes, 0, encoding.GetByteCount(hashKey));
foreach (byte bit in hashedBytes)
{
	hashedData += bit.ToString("x2");
}
return hashedData;

Force TLS 1.1 and 1.2

Inside the Global.asax.cs file,
put the protected void Application_Start() method

ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;



Click to Dowload Sample Project.