public override ProcessPaymentResult ProcessPayment(ProcessPaymentEvaluationContext context)
		{
			var retVal = new ProcessPaymentResult();

			GatewaySettings settings = new GatewaySettings();
			settings.setCredentials(ProfileId, ProfileKey)
				.setVerbose(true)
				.setHostUrl(GatewaySettings.URL_CERT);
			Gateway gateway = new Gateway(settings);

			GatewayRequest request = new GatewayRequest(GatewayRequest.TransactionType.SALE);
			if (string.IsNullOrEmpty(context.Payment.OuterId))
			{
				request.setCardData("4012888812348882", "1216");
			}
			else
			{
				request.setTokenData(context.Payment.OuterId, string.Empty);
			}
			request.setAmount("1.03");
			GatewayResponse response = gateway.run(request);

			var tranId = response.getTransactionId();

			var errorCode = response.getErrorCode();

			if(errorCode.Equals("000"))
			{
				retVal.OuterId = tranId;
				retVal.IsSuccess = true;
				retVal.NewPaymentStatus = PaymentStatus.Pending; //maybe
			}
			else
			{
				retVal.NewPaymentStatus = PaymentStatus.Voided;
				retVal.Error = string.Format("Mes error {0}", errorCode);
			}

			return retVal;
		}
 public Gateway(GatewaySettings settings)
 {
     http = new Http(settings);
     this.settings = settings;
 }