Esempio n. 1
0
        /// <summary>
        /// Cancels a recurring payment
        /// </summary>
        /// <param name="cancelPaymentRequest">Request</param>
        /// <returns>Result</returns>
        public CancelRecurringPaymentResult CancelRecurringPayment(CancelRecurringPaymentRequest cancelPaymentRequest)
        {
            var result = new CancelRecurringPaymentResult();
            var order  = cancelPaymentRequest.Order;

            var req = new ManageRecurringPaymentsProfileStatusReq();

            req.ManageRecurringPaymentsProfileStatusRequest         = new ManageRecurringPaymentsProfileStatusRequestType();
            req.ManageRecurringPaymentsProfileStatusRequest.Version = GetApiVersion();
            var details = new ManageRecurringPaymentsProfileStatusRequestDetailsType();

            req.ManageRecurringPaymentsProfileStatusRequest.ManageRecurringPaymentsProfileStatusRequestDetails = details;

            details.Action = StatusChangeActionType.CANCEL;
            //Recurring payments profile ID returned in the CreateRecurringPaymentsProfile response
            details.ProfileID = order.SubscriptionTransactionId;

            var    service  = GetService();
            var    response = service.ManageRecurringPaymentsProfileStatus(req);
            string error;

            if (!PaypalHelper.CheckSuccess(response, out error))
            {
                result.AddError(error);
            }

            return(result);
        }
        /// <summary>
        /// Cancels a recurring payment
        /// </summary>
        /// <param name="cancelPaymentRequest">Request</param>
        /// <returns>Result</returns>
        public override CancelRecurringPaymentResult CancelRecurringPayment(CancelRecurringPaymentRequest request)
        {
            var result   = new CancelRecurringPaymentResult();
            var order    = request.Order;
            var settings = CommonServices.Settings.LoadSetting <TSetting>(order.StoreId);

            var req = new ManageRecurringPaymentsProfileStatusReq();

            req.ManageRecurringPaymentsProfileStatusRequest         = new ManageRecurringPaymentsProfileStatusRequestType();
            req.ManageRecurringPaymentsProfileStatusRequest.Version = PayPalHelper.GetApiVersion();
            var details = new ManageRecurringPaymentsProfileStatusRequestDetailsType();

            req.ManageRecurringPaymentsProfileStatusRequest.ManageRecurringPaymentsProfileStatusRequestDetails = details;

            details.Action = StatusChangeActionType.Cancel;
            //Recurring payments profile ID returned in the CreateRecurringPaymentsProfile response
            details.ProfileID = order.SubscriptionTransactionId;

            using (var service = new PayPalAPIAASoapBinding())
            {
                service.Url = PayPalHelper.GetPaypalServiceUrl(settings);
                service.RequesterCredentials = PayPalHelper.GetPaypalApiCredentials(settings);
                var response = service.ManageRecurringPaymentsProfileStatus(req);

                string error = "";
                if (!PayPalHelper.CheckSuccess(_helper, response, out error))
                {
                    result.AddError(error);
                }
            }

            return(result);
        }
        /// <summary>
        /// Cancels a recurring payment
        /// </summary>
        /// <param name="cancelPaymentRequest">Request</param>
        /// <returns>Result</returns>
        public override CancelRecurringPaymentResult CancelRecurringPayment(CancelRecurringPaymentRequest request)
        {
            var result   = new CancelRecurringPaymentResult();
            var order    = request.Order;
            var settings = Services.Settings.LoadSetting <TSetting>(order.StoreId);

            var req = new ManageRecurringPaymentsProfileStatusReq();

            req.ManageRecurringPaymentsProfileStatusRequest         = new ManageRecurringPaymentsProfileStatusRequestType();
            req.ManageRecurringPaymentsProfileStatusRequest.Version = ApiVersion;
            var details = new ManageRecurringPaymentsProfileStatusRequestDetailsType();

            req.ManageRecurringPaymentsProfileStatusRequest.ManageRecurringPaymentsProfileStatusRequestDetails = details;

            details.Action = StatusChangeActionType.Cancel;
            //Recurring payments profile ID returned in the CreateRecurringPaymentsProfile response
            details.ProfileID = order.SubscriptionTransactionId;

            using (var service = GetApiAaService(settings))
            {
                var response = service.ManageRecurringPaymentsProfileStatus(req);

                string error = "";
                if (!IsSuccess(response, out error))
                {
                    result.AddError(error);
                }
            }

            return(result);
        }
Esempio n. 4
0
        protected void Submit_Click(object sender, EventArgs e)
        {
            // Create request object

            ManageRecurringPaymentsProfileStatusRequestType request =
                new ManageRecurringPaymentsProfileStatusRequestType();
            ManageRecurringPaymentsProfileStatusRequestDetailsType details =
                new ManageRecurringPaymentsProfileStatusRequestDetailsType();

            request.ManageRecurringPaymentsProfileStatusRequestDetails = details;
            details.ProfileID = profileId.Value;
            details.Action    = (StatusChangeActionType)
                                Enum.Parse(typeof(StatusChangeActionType), action.SelectedValue);
            if (note.Value != "")
            {
                details.Note = note.Value;
            }

            // Invoke the API
            ManageRecurringPaymentsProfileStatusReq wrapper = new ManageRecurringPaymentsProfileStatusReq();

            wrapper.ManageRecurringPaymentsProfileStatusRequest = request;
            PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService();
            ManageRecurringPaymentsProfileStatusResponseType manageProfileStatusResponse =
                service.ManageRecurringPaymentsProfileStatus(wrapper);


            // Check for API return status
            setKeyResponseObjects(service, manageProfileStatusResponse);
        }
Esempio n. 5
0
        public override string RecurringBillingCancelSubscription(String RecurringSubscriptionID, int OriginalRecurringOrderNumber, IDictionary <string, string> TransactionContext)
        {
            string profileID = string.Empty;
            string result    = string.Empty;

            profileID = PayPalController.GetPPECProfileID(OriginalRecurringOrderNumber);

            if (profileID != string.Empty)
            {
                ManageRecurringPaymentsProfileStatusRequestDetailsType recurringRequestDetails = new ManageRecurringPaymentsProfileStatusRequestDetailsType();
                recurringRequestDetails.Action    = StatusChangeActionType.Cancel;
                recurringRequestDetails.ProfileID = profileID;

                ManageRecurringPaymentsProfileStatusRequestType recurringRequest = new ManageRecurringPaymentsProfileStatusRequestType();
                recurringRequest.ManageRecurringPaymentsProfileStatusRequestDetails = recurringRequestDetails;
                recurringRequest.Version = API_VER;

                ManageRecurringPaymentsProfileStatusReq profileStatusRequest = new ManageRecurringPaymentsProfileStatusReq();
                profileStatusRequest.ManageRecurringPaymentsProfileStatusRequest = recurringRequest;

                ManageRecurringPaymentsProfileStatusResponseType recurringResponse = new ManageRecurringPaymentsProfileStatusResponseType();
                recurringResponse = IPayPal.ManageRecurringPaymentsProfileStatus(profileStatusRequest);

                if (recurringResponse != null && recurringResponse.Ack.ToString().StartsWith("success", StringComparison.InvariantCultureIgnoreCase))
                {
                    result = AppLogic.ro_OK;
                }
                else
                {
                    if (recurringResponse.Errors != null)
                    {
                        bool first = true;
                        for (int ix = 0; ix < recurringResponse.Errors.Length; ix++)
                        {
                            if (!first)
                            {
                                result += ", ";
                            }
                            result += recurringResponse.Errors[ix].LongMessage;
                            first   = false;
                        }
                    }
                }
            }
            else
            {
                result = "No matching Profile ID found for that order number";

                SysLog.LogMessage("An attempt was made to cancel a PayPal recurring order with no matching Profile ID",
                                  "Original order ID was: " + OriginalRecurringOrderNumber.ToString(),
                                  MessageTypeEnum.Informational,
                                  MessageSeverityEnum.Alert);
            }

            return(result);
        }
        public static string CancelRecurringPayment(string ProfileID, long UserId, string paypalapiusername, string paypalpassword, string paypalsignature, Model.DatabaseRepository dbr)
        {
            try
            {
                ManageRecurringPaymentsProfileStatusRequestType request =
                    new ManageRecurringPaymentsProfileStatusRequestType();
                ManageRecurringPaymentsProfileStatusRequestDetailsType details =
                    new ManageRecurringPaymentsProfileStatusRequestDetailsType();
                request.ManageRecurringPaymentsProfileStatusRequestDetails = details;

                details.ProfileID = ProfileID;

                details.Action = StatusChangeActionType.CANCEL;

                // Invoke the API
                ManageRecurringPaymentsProfileStatusReq wrapper = new ManageRecurringPaymentsProfileStatusReq();
                wrapper.ManageRecurringPaymentsProfileStatusRequest = request;

                Dictionary <string, string> configurationMap = new Dictionary <string, string>();

                configurationMap.Add("mode", "live");

                // Signature Credential
                configurationMap.Add("account1.apiUsername", paypalapiusername);
                configurationMap.Add("account1.apiPassword", paypalpassword);
                configurationMap.Add("account1.apiSignature", paypalsignature);

                // Create the PayPalAPIInterfaceServiceService service object to make the API call
                PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);

                ManageRecurringPaymentsProfileStatusResponseType manageProfileStatusResponse =
                    service.ManageRecurringPaymentsProfileStatus(wrapper);

                // Check for API return status

                Dictionary <string, string> responseParams = new Dictionary <string, string>();
                responseParams.Add("API Status", manageProfileStatusResponse.Ack.ToString());

                if (manageProfileStatusResponse.Ack.Equals(AckCodeType.FAILURE) || (manageProfileStatusResponse.Errors != null && manageProfileStatusResponse.Errors.Count > 0))
                {
                    //FAILURE
                    //Console.WriteLine(manageProfileStatusResponse.Errors.ToString());
                    return(manageProfileStatusResponse.Errors.ToString());
                }
                else
                {
                    return("Success");
                    //SUCCESS
                    //Console.Write("Success!");
                }
            }
            catch (Exception ex)
            {
                return("Failure");
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Cancels a recurring payment
        /// </summary>
        /// <param name="cancelPaymentRequest">Request</param>
        /// <returns>Result</returns>
        public CancelRecurringPaymentResult CancelRecurringPayment(CancelRecurringPaymentRequest cancelPaymentRequest)
        {
            var result = new CancelRecurringPaymentResult();
            var order  = cancelPaymentRequest.Order;

            var req = new ManageRecurringPaymentsProfileStatusReq();

            req.ManageRecurringPaymentsProfileStatusRequest         = new ManageRecurringPaymentsProfileStatusRequestType();
            req.ManageRecurringPaymentsProfileStatusRequest.Version = GetApiVersion();
            var details = new ManageRecurringPaymentsProfileStatusRequestDetailsType();

            req.ManageRecurringPaymentsProfileStatusRequest.ManageRecurringPaymentsProfileStatusRequestDetails = details;

            details.Action = StatusChangeActionType.Cancel;
            //Recurring payments profile ID returned in the CreateRecurringPaymentsProfile response
            details.ProfileID = order.SubscriptionTransactionId;

            using (var service2 = new PayPalAPIAASoapBinding())
            {
                if (!_paypalDirectPaymentSettings.UseSandbox)
                {
                    service2.Url = "https://api-3t.paypal.com/2.0/";
                }
                else
                {
                    service2.Url = "https://api-3t.sandbox.paypal.com/2.0/";
                }

                service2.RequesterCredentials                       = new CustomSecurityHeaderType();
                service2.RequesterCredentials.Credentials           = new UserIdPasswordType();
                service2.RequesterCredentials.Credentials.Username  = _paypalDirectPaymentSettings.ApiAccountName;
                service2.RequesterCredentials.Credentials.Password  = _paypalDirectPaymentSettings.ApiAccountPassword;
                service2.RequesterCredentials.Credentials.Signature = _paypalDirectPaymentSettings.Signature;
                service2.RequesterCredentials.Credentials.Subject   = "";

                var response = service2.ManageRecurringPaymentsProfileStatus(req);

                string error = "";
                if (!PaypalHelper.CheckSuccess(response, out error))
                {
                    result.AddError(error);
                }
            }

            return(result);
        }
Esempio n. 8
0
        protected void Submit_Click(object sender, EventArgs e)
        {
            // Create request object

            ManageRecurringPaymentsProfileStatusRequestType request =
                new ManageRecurringPaymentsProfileStatusRequestType();
            ManageRecurringPaymentsProfileStatusRequestDetailsType details =
                new ManageRecurringPaymentsProfileStatusRequestDetailsType();

            request.ManageRecurringPaymentsProfileStatusRequestDetails = details;
            // (Required) Recurring payments profile ID returned in the CreateRecurringPaymentsProfile response.
            details.ProfileID = profileId.Value;
            // (Required) The action to be performed to the recurring payments profile. Must be one of the following:
            // * Cancel – Only profiles in Active or Suspended state can be canceled.
            // * Suspend – Only profiles in Active state can be suspended.
            // * Reactivate – Only profiles in a suspended state can be reactivated.
            details.Action = (StatusChangeActionType)
                             Enum.Parse(typeof(StatusChangeActionType), action.SelectedValue);
            // (Optional) The reason for the change in status. For profiles created using Express Checkout, this message is included in the email notification to the buyer when the status of the profile is successfully changed, and can also be seen by both you and the buyer on the Status History page of the PayPal account.
            if (note.Value != string.Empty)
            {
                details.Note = note.Value;
            }

            // Invoke the API
            ManageRecurringPaymentsProfileStatusReq wrapper = new ManageRecurringPaymentsProfileStatusReq();

            wrapper.ManageRecurringPaymentsProfileStatusRequest = request;

            // Configuration map containing signature credentials and other required configuration.
            // For a full list of configuration parameters refer in wiki page
            // [https://github.com/paypal/sdk-core-dotnet/wiki/SDK-Configuration-Parameters]
            Dictionary <string, string> configurationMap = Configuration.GetAcctAndConfig();

            // Create the PayPalAPIInterfaceServiceService service object to make the API call
            PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);

            // # API call
            // Invoke the ManageRecurringPaymentsProfileStatus method in service wrapper object
            ManageRecurringPaymentsProfileStatusResponseType manageProfileStatusResponse =
                service.ManageRecurringPaymentsProfileStatus(wrapper);


            // Check for API return status
            setKeyResponseObjects(service, manageProfileStatusResponse);
        }
Esempio n. 9
0
 /// <remarks/>
 public void ManageRecurringPaymentsProfileStatusAsync(ManageRecurringPaymentsProfileStatusReq ManageRecurringPaymentsProfileStatusReq, object userState) {
     if ((this.ManageRecurringPaymentsProfileStatusOperationCompleted == null)) {
         this.ManageRecurringPaymentsProfileStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnManageRecurringPaymentsProfileStatusOperationCompleted);
     }
     this.InvokeAsync("ManageRecurringPaymentsProfileStatus", new object[] {
                 ManageRecurringPaymentsProfileStatusReq}, this.ManageRecurringPaymentsProfileStatusOperationCompleted, userState);
 }
Esempio n. 10
0
 /// <remarks/>
 public void ManageRecurringPaymentsProfileStatusAsync(ManageRecurringPaymentsProfileStatusReq ManageRecurringPaymentsProfileStatusReq) {
     this.ManageRecurringPaymentsProfileStatusAsync(ManageRecurringPaymentsProfileStatusReq, null);
 }
Esempio n. 11
0
 public ManageRecurringPaymentsProfileStatusResponseType ManageRecurringPaymentsProfileStatus(ManageRecurringPaymentsProfileStatusReq ManageRecurringPaymentsProfileStatusReq)
 {
     return(ManageRecurringPaymentsProfileStatus(ManageRecurringPaymentsProfileStatusReq, null));
 }
Esempio n. 12
0
        /**
         *
         */
        public ManageRecurringPaymentsProfileStatusResponseType ManageRecurringPaymentsProfileStatus(ManageRecurringPaymentsProfileStatusReq ManageRecurringPaymentsProfileStatusReq, string apiUsername)
        {
            setStandardParams(ManageRecurringPaymentsProfileStatusReq.ManageRecurringPaymentsProfileStatusRequest);
            string resp = call("ManageRecurringPaymentsProfileStatus", ManageRecurringPaymentsProfileStatusReq.toXMLString(), apiUsername);

            return(new ManageRecurringPaymentsProfileStatusResponseType(resp));
        }
Esempio n. 13
0
        public static String CancelECRecurringProfile(int OriginalOrderNumber)
        {
            PayPalAPISoapBinding   IPayPalRefund;
            PayPalAPIAASoapBinding IPayPal;

            PayPalController.GetPaypalRequirements(out IPayPalRefund, out IPayPal);
            String profileID = String.Empty;
            String result    = String.Empty;

            profileID = GetPPECProfileID(OriginalOrderNumber);

            if (profileID != String.Empty)
            {
                ManageRecurringPaymentsProfileStatusReq                ECRecurringCancelRequest     = new ManageRecurringPaymentsProfileStatusReq();
                ManageRecurringPaymentsProfileStatusRequestType        varECRecurringRequest        = new ManageRecurringPaymentsProfileStatusRequestType();
                ManageRecurringPaymentsProfileStatusRequestDetailsType varECRecurringRequestDetails = new ManageRecurringPaymentsProfileStatusRequestDetailsType();
                ManageRecurringPaymentsProfileStatusResponseType       varECRecurringResponse       = new ManageRecurringPaymentsProfileStatusResponseType();

                varECRecurringRequestDetails.Action    = StatusChangeActionType.Cancel;
                varECRecurringRequestDetails.ProfileID = profileID;

                varECRecurringRequest.ManageRecurringPaymentsProfileStatusRequestDetails = varECRecurringRequestDetails;
                varECRecurringRequest.Version = API_VER;

                ECRecurringCancelRequest.ManageRecurringPaymentsProfileStatusRequest = varECRecurringRequest;

                varECRecurringResponse = IPayPal.ManageRecurringPaymentsProfileStatus(ECRecurringCancelRequest);

                if (varECRecurringResponse.Ack.ToString().StartsWith("success", StringComparison.InvariantCultureIgnoreCase))
                {
                    result = AppLogic.ro_OK;
                }
                else
                {
                    if (varECRecurringResponse.Errors != null)
                    {
                        bool first = true;
                        for (int ix = 0; ix < varECRecurringResponse.Errors.Length; ix++)
                        {
                            if (!first)
                            {
                                result += ", ";
                            }
                            result += varECRecurringResponse.Errors[ix].LongMessage;
                            first   = false;
                        }
                    }
                }
            }
            else
            {
                result = "No matching ProfileID found for that order number";

                SysLog.LogMessage("An attempt was made to cancel a PayPal express recurring order with no matching ProfileID",
                                  "Original order ID was: " + OriginalOrderNumber.ToString(),
                                  MessageTypeEnum.Informational,
                                  MessageSeverityEnum.Alert);
            }

            return(result);
        }
        /**
         * AUTO_GENERATED
         */
        public ManageRecurringPaymentsProfileStatusResponseType ManageRecurringPaymentsProfileStatus(ManageRecurringPaymentsProfileStatusReq manageRecurringPaymentsProfileStatusReq, string apiUserName)
        {
            setStandardParams(manageRecurringPaymentsProfileStatusReq.ManageRecurringPaymentsProfileStatusRequest);
            string      response    = Call("ManageRecurringPaymentsProfileStatus", manageRecurringPaymentsProfileStatusReq.ToXMLString(), apiUserName);
            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.LoadXml(response);
            XmlNode xmlNode = xmlDocument.SelectSingleNode("*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='ManageRecurringPaymentsProfileStatusResponse']");

            return(new ManageRecurringPaymentsProfileStatusResponseType(xmlNode));
        }