public PayPalTrasactions DoTransaction(string billingAgreementID, string orderDescription, string itemName, double itemAmount, string serviceDescription, out string PaypalResponse) { string response = string.Empty; // Create request object DoReferenceTransactionRequestType request = new DoReferenceTransactionRequestType(); populateRequestObject(request, billingAgreementID, orderDescription, itemName, itemAmount, serviceDescription); // Invoke the API DoReferenceTransactionReq wrapper = new DoReferenceTransactionReq(); wrapper.DoReferenceTransactionRequest = 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); string requestString = " Paypal DoTransaction Request billingAgreementID: " + billingAgreementID + ": "; requestString = requestString + JsonConvert.SerializeObject(wrapper); // # API call // Invoke the DoReferenceTransaction method in service wrapper object DoReferenceTransactionResponseType doReferenceTxnResponse = service.DoReferenceTransaction(wrapper); PayPalTrasactions responsePaypal = new PayPalTrasactions(); responsePaypal = ProcessTrasactionResponse(doReferenceTxnResponse); response = JsonConvert.SerializeObject(doReferenceTxnResponse); PaypalResponse = requestString + " Paypal DoTransaction Response billingAgreementID: " + billingAgreementID + " : " + response; return(responsePaypal); }
private PayPalTrasactions ProcessTrasactionResponse(DoReferenceTransactionResponseType setECResponse) { PayPalTrasactions responseObject = new PayPalTrasactions(); responseObject.ApiStatus = setECResponse.Ack.ToString(); if (setECResponse.Ack.Equals(AckCodeType.FAILURE) || (setECResponse.Errors != null && setECResponse.Errors.Count > 0)) { responseObject.ResponseError = setECResponse.Errors; } else { responseObject.ResponseError = null; DoReferenceTransactionResponseDetailsType transactionDetails = setECResponse.DoReferenceTransactionResponseDetails; responseObject.TransactionID = transactionDetails.TransactionID; responseObject.BillingAgreementID = transactionDetails.BillingAgreementID; if (transactionDetails.PaymentInfo != null) { if (transactionDetails.PaymentInfo.PaymentStatus != null) { responseObject.PaymentStatus = transactionDetails.PaymentInfo.PaymentStatus.Value.ToString(); } if (transactionDetails.PaymentInfo.PendingReason != null) { responseObject.PendingReason = transactionDetails.PaymentInfo.PendingReason.Value.ToString(); } responseObject.PaymentDate = transactionDetails.PaymentInfo.PaymentDate.ToString(); responseObject.GrossAmount = transactionDetails.PaymentInfo.GrossAmount.value; responseObject.TransactionID = transactionDetails.PaymentInfo.TransactionID; responseObject.ItemTotal = transactionDetails.PaymentInfo.GrossAmount.value; //responseObject.ResponseError = transactionDetails.PaymentInfo.PaymentError; // comment by nitendra 16 March 2016 //responseObject.OrderTotal = transactionDetails.Amount.value; responseObject.OrderTotal = transactionDetails.PaymentInfo.GrossAmount.value; } } return(responseObject); }