public RepeatPaymentResponse Process(RepeatPaymentRequest request) { Transaction tx = new Transaction(); tx.TestMode = request.Test; tx.SetRequestParameter("VPSProtocol", "3.00"); tx.SetRequestParameter("TxType", "REPEAT"); tx.SetRequestParameter("Vendor", request.Vendor); tx.SetRequestParameter("VendorTxCode", request.VendorTxCode); tx.SetRequestParameter("Amount", request.Amount.ToString()); tx.SetRequestParameter("Currency", request.Currency); tx.SetRequestParameter("Description", request.Description); tx.SetRequestParameter("RelatedVPSTxId", request.RelatedVPSTxId); tx.SetRequestParameter("RelatedVendorTxCode", request.RelatedVendorTxCode); tx.SetRequestParameter("RelatedSecurityKey", request.RelatedSecurityKey); tx.SetRequestParameter("RelatedTxAuthNo", request.RelatedTxAuthNo); tx.SendRepeatPayment(); // Receive Response var response = new RepeatPaymentResponse(); response.VPSProtocol = tx.GetResponseParameter("VPSProtocol"); response.TxType = "REPEAT"; response.Status = tx.GetResponseParameter("Status"); response.StatusDetail = tx.GetResponseParameter("StatusDetail"); response.VpsTxId = tx.GetResponseParameter("VPSTxID"); response.SecurityKey = tx.GetResponseParameter("SecurityKey"); response.TxAuthNo = tx.GetResponseParameter("TxAuthNo"); response.AvsCv2 = tx.GetResponseParameter("AVSCV2"); response.AddressResult = tx.GetResponseParameter("AddressResult"); response.PostCodeResult = tx.GetResponseParameter("PostCodeResult"); response.Cv2Result = tx.GetResponseParameter("CV2Result"); response.BankAuthCode = tx.GetResponseParameter("BankAuthCode"); response.DeclineCode = tx.GetResponseParameter("DeclineCode"); if (!String.IsNullOrEmpty(response.StatusDetail)) response.StatusDetail = response.StatusDetail.Replace("'", "`"); return response; }