Beispiel #1
0
        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;
        }