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); }
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"); } }
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); }
private void setKeyResponseObjects(PayPalAPIInterfaceServiceService service, ManageRecurringPaymentsProfileStatusResponseType response) { Dictionary <string, string> responseParams = new Dictionary <string, string>(); responseParams.Add("API Status", response.Ack.ToString()); HttpContext CurrContext = HttpContext.Current; CurrContext.Items.Add("Response_redirectURL", null); if (response.Ack.Equals(AckCodeType.FAILURE) || (response.Errors != null && response.Errors.Count > 0)) { CurrContext.Items.Add("Response_error", response.Errors); } else { CurrContext.Items.Add("Response_error", null); responseParams.Add("Profile Id", response.ManageRecurringPaymentsProfileStatusResponseDetails.ProfileID); } CurrContext.Items.Add("Response_keyResponseObject", responseParams); CurrContext.Items.Add("Response_apiName", "ManageRecurringPaymentsProfileStatus"); CurrContext.Items.Add("Response_requestPayload", service.getLastRequest()); CurrContext.Items.Add("Response_responsePayload", service.getLastResponse()); Server.Transfer("../APIResponse.aspx"); }
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); }