Web Forms :: Add Paypal Recurring In Web Side
Aug 14, 2010i want to add paypal recurrring in my webside. how it is possible
View 3 Repliesi want to add paypal recurrring in my webside. how it is possible
View 3 RepliesI'm trying to get PayPal's ExpressCheckout working with Recurring Payments. I've got the first two stages (the calls to SetExpressCheckout and GetExpressCheckoutDetails) but CreateRecurringPaymentsProfile fails with the error below. I'm using a modified version of Paypal's sample code, but I suspect I'm (not) setting an encoder value. Anyone used this before? The error:
// TIMESTAMP: 2010-10-27T09:57:47Z
// CORRELATIONID: ad2b2da33c672
// ACK: Failure
// VERSION: 51.0
// BUILD: 1553277
// L_ERRORCODE0: 11502
// L_SHORTMESSAGE0: Invalid Token
// L_LONGMESSAGE0: The token is invalid
// L_SEVERITYCODE0: Error
The code I'm using is:
/// This returns true
public bool SetExpressCheckout(string amt, ref string token, ref string retMsg)
{
string host = "www.paypal.com";
if (bSandbox) {
pendpointurl = "https://api-3t.sandbox.paypal.com/nvp";
host = "www.sandbox.paypal.com";
}
string baseUrl = "http://" + HttpContext.Current.Request.Url.Authority;
string[] returnUrlParts = WebConfigurationManager.AppSettings["PaypalReturnUrl"].Split('?'),
cancelUrlParts = WebConfigurationManager.AppSettings["PaypalCancelUrl"].Split('?');
string returnURL = baseUrl + VirtualPathUtility.ToAbsolute(returnUrlParts[0]) + (returnUrlParts.Length > 1 ? '?' + returnUrlParts.Skip(1).Aggregate((itms, itm) => itms + itm) : string.Empty),
cancelURL = baseUrl + VirtualPathUtility.ToAbsolute(cancelUrlParts[0]) + (cancelUrlParts.Length > 1 ? '?' + cancelUrlParts.Skip(1).Aggregate((itms, itm) => itms + itm) : string.Empty);
NVPCodec encoder = new NVPCodec();
encoder["METHOD"] = "SetExpressCheckout";
encoder["RETURNURL"] = returnURL;
encoder["CANCELURL"] = cancelURL;
encoder["AMT"] = amt;
//encoder["PAYMENTACTION"] = "SALE";
encoder["CURRENCYCODE"] = "GBP";
encoder["NOSHIPPING"] = "1";
encoder["L_BILLINGTYPE0"] = "RecurringPayments";
encoder["L_BILLINGAGREEMENTDESCRIPTION0"] = "Subscription for MySite";
string pStrrequestforNvp = encoder.Encode();
string pStresponsenvp = HttpCall(pStrrequestforNvp);
NVPCodec decoder = new NVPCodec();
decoder.Decode(pStresponsenvp);
string strAck = decoder["ACK"].ToLower();
if (strAck != null && (strAck == "success" || strAck == "successwithwarning")) {
token = decoder["TOKEN"];
string ECURL = "https://" + host + "/cgi-bin/webscr?cmd=_express-checkout" + "&token=" + token;
retMsg = ECURL;
return true;
} else {
retMsg = "ErrorCode=" + decoder["L_ERRORCODE0"] + "&" +
"Desc=" + decoder["L_SHORTMESSAGE0"] + "&" +
"Desc2=" + decoder["L_LONGMESSAGE0"];
return false;
}
}
/// This returns true
public bool GetExpressCheckoutDetails(string token, ref string PayerId, ref string retMsg)
{
if (bSandbox) {
pendpointurl = "https://api-3t.sandbox.paypal.com/nvp";
}
NVPCodec encoder = new NVPCodec();
encoder["METHOD"] = "GetExpressCheckoutDetails";
encoder["TOKEN"] = token;
string pStrrequestforNvp = encoder.Encode();
string pStresponsenvp = HttpCall(pStrrequestforNvp);
NVPCodec decoder = new NVPCodec();
decoder.Decode(pStresponsenvp);
string strAck = decoder["ACK"].ToLower();
if (strAck != null && (strAck == "success" || strAck == "successwithwarning")) {
return true;
} else {
retMsg = "ErrorCode=" + decoder["L_ERRORCODE0"] + "&" +
"Desc=" + decoder["L_SHORTMESSAGE0"] + "&" +
"Desc2=" + decoder["L_LONGMESSAGE0"];
return false;
}
}
// This fails and returns false with the following in the decoder result
// TIMESTAMP: 2010-10-27T09:57:47Z
// CORRELATIONID: ad2b2da33c672
// ACK: Failure
// VERSION: 51.0
// BUILD: 1553277
// L_ERRORCODE0: 11502
// L_SHORTMESSAGE0: Invalid Token
// L_LONGMESSAGE0: The token is invalid
// L_SEVERITYCODE0: Error
public bool CreateRecurringPaymentsProfileCode(string token, string amount, string profileDate, string billingPeriod, string billingFrequency, ref string retMsg)
{
NVPCallerServices caller = new NVPCallerServices();
IAPIProfile profile = ProfileFactory.createSignatureAPIProfile();
profile.APIUsername = this.APIUsername;
profile.APIPassword = this.APIPassword;
profile.APISignature = this.APISignature;
profile.Environment = "sandbox";
caller.APIProfile = profile;
string host = "www.paypal.com";
if (bSandbox) {
pendpointurl = "https://api-3t.sandbox.paypal.com/nvp";
host = "www.sandbox.paypal.com";
}
NVPCodec encoder = new NVPCodec();
encoder["VERSION"] = "51.0";
// Add request-specific fields to the request.
encoder["METHOD"] = "CreateRecurringPaymentsProfile";
encoder["TOKEN"] = token;
encoder["AMT"] = amount;
encoder["PROFILESTARTDATE"] = profileDate; //Date format from server expects Ex: 2006-9-6T0:0:0
encoder["BILLINGPERIOD"] = billingPeriod;
encoder["BILLINGFREQUENCY"] = billingFrequency;
encoder["L_BILLINGTYPE0"] = "RecurringPayments";
encoder["DESC"] = "Subscription for MySite";
// Execute the API operation and obtain the response.
string pStrrequestforNvp = encoder.Encode();
string pStresponsenvp = caller.Call(pStrrequestforNvp);
NVPCodec decoder = new NVPCodec();
decoder.Decode(pStresponsenvp);
//return decoder["ACK"];
string strAck = decoder["ACK"];
bool success = false;
if (strAck != null && (strAck == "Success" || strAck == "SuccessWithWarning")) {
success = true; // check decoder["result"]
} else {
success = false;
}
StringBuilder buffer = new StringBuilder();
for (int i = 0; i < decoder.Keys.Count; i++) {
buffer.AppendFormat("{0}: {1}", decoder.Keys[i], decoder.GetValues(i).Aggregate((vals, val) => vals + "----" + val));
}
retMsg = buffer.ToString();
return success;// returns false
}
If it helps, the code which is calling it is :
NVPAPICaller ppapi = new NVPAPICaller();
NVPCodec decoder = new NVPCodec();
string retMsg = string.Empty,
token = Convert.ToString(Session["token"]),
finalPaymentAmount = "15",
payerId = Convert.ToString(Session["payerId"] ?? string.Empty); // set from SetExpressCheckout
bool shippingSuccess = ppapi.GetExpressCheckoutDetails(token, ref payerId, ref retMsg);
if (shippingSuccess) {
payerId = Session["payerId"].ToString();
btnConfirm.Enabled = false;
bool paymentSuccess = ppapi.CreateRecurringPaymentsProfileCode(token, finalPaymentAmount, DateTime.Now.ToString("yyyy-M-DTH:m:s"), "Year", "1", ref retMsg);
// but paymentSuccess is false
I was having trouble getting my shopping cart to connect to paypal. So I wrote a simple webform that has one button and one label. If I comment out the response.redirect(url) and look at the content that get written to Lable1.Text it looks find. Also, if I copy the content of the label and paste it into my web browser it goes to Paypal and displays correctly.
However, if I uncomment the response.redirect(url) I get the following error: ERROR: Unable to Send to PayPal - Thread was being aborted.
I am testing from localhost??? Should I be able to test this from localhost?
I have put ??? where my Sandbox email address is.....I don't know if letting other see that or not is an issue....otherwise I would have left it in for someone to try this code.
[Code]....
This is what displays in the lable1.text when response.redirect is commented out
[URL]
https://www.x.com/community/ppx/code_samples
The sample code returns ACK, but where is the proper response?
For example
Getbalance, sample code returns ACK
https://cms.paypal.com/cms_content/US/en_US/files/developer/nvp_GetBalance_cs.txt
but the document shows it returns other values?
https://www.x.com/docs/DOC-1186
I have a log file with huge volume of errors logged. Now I want to · Screen the log file and find the recurrent errors that are logged. · Give the count of recurrent errors and their text.
View 2 RepliesI would like to create a webform in asp.net that allows you add events to a overall application, anyone then can go search that event by a specific date and if that event falls under that recurrence day you will see it. This would be similar to Outlook where you can say it recurs every Monday, Tuesday, Wednesday,... or every third Monday, ...Specifc day of the month, etc. I have created the webform but now I have the problem of how the database works. I have been reading for the past couple days about this but I cannot figure this out. I found some posts that say you can create a seperate table aside from your main table that holds the eventid and the dates of the recurrenecs. The problem is this table could amount to thousands of lines from just a few events input. My question is, is there a formula out there that can do this without creating a crazy big recurrence table? .... If not, how many lines can a MS SQL database hold before it has performance problems?
Here's a link to another forum I found with my same question but I do not understand the answer:
[URL]
I have been tasked with designing a scheduling system to fit into an existing application. At present I have a SQL Table - Tasks which have a StartDate and EndDate column.
I have a requirement to set the Task as a recurring task i.e. Replace server backup tapes every day, or, Order more stationary once a month.
I am lost on how to design this. I can't seem to find a proper example on the net. can someone point me in the right direction.
I have a website which I want to use to collect payments from customers. An essay writing service is provided through the site.User's fill in a form and submit it. At the moment, when the form is submitted, it just fires an acknowledgement to the user that their order is being processed.I have used ASP.Net/C# for the web applicatioHow do I integrate paypal in the website so that user's can make paymen
View 1 RepliesAre there already created code in C # (which is fully operational) to be included on my site? I would only change this information, and should normally work?
View 1 Replieshow can integrate paypal checkout within my web application, I try to read the info on paypal website but cudn't get it it working on my page.
View 5 RepliesI have PayPal Web Payment standard successfully integrated in an ecomerce solution I'm developing. My problem is this, I want to store details of the order being placed before it is sent to PayPal but only if it is sent and not if the just fill in everything in the shopping cart and then leave the page. There are 3 ways I can think of how this might be acheived but I'm not sure how to implement them.
1. Put some code in the page_unload that stores the data fi the page the browser is being transferred to is the paypal site. However I don't a way to determine what the next page is going to be.
2. Submit the the information to PayPal from the code behind. I'm sure this should be possible but I don't know how to do it and haven't managed to find a good articles on it.
3. Assign a javascript function to the onclick on PayPal submit button that calls a servside function using PageMethods. However this just seems like a bit a bodge introduces a whole array of other problems.
The problem is that i go to my merchand sandbox account and create a simple buy it now button.
I stick the code in an aspx page.Ignoring any warnings, form problems etc etc.
So when i try to pay it just tells me to log in to the site and nothing happens.
And the reason i get mad is because when i try it with a paypal button it works and send me to paypal with the amount written above.
I tried when logged in on sandbox, i tried when logged in on sandbox and logged in as a seller.I tried i tried i tried....
I have an ASP.Net form that gathers some data, validates it and then submits it to PayPal. PayPal expects a form control named AMOUNT in the POST. However, since I am using webserver controls and validating that data, it comes across as ctl00$ContentPlaceHolder_Body$AMOUNT.What is the best way to change this over so that PayPal will be happy and the data can get properly posted? I could change them to <input> controls and not validate, but that isn't what I really want to do. I could take the input and then programatically create the data and then post it to the PayPal URL, but I'm not sure how to do that. These are just some of the things I have considered doing.
View 1 RepliesIn my shopping website..... I had integrated Paypal. Using the Developer / SandBox Version I had already tested the site from my local machine. It is working fine.
But after uploading the files in shared web-Server, whenever I am trying to call the Paypal, then always it is showing me the following error. The operation has timed out Description: An unhandled exception occurred during the execution of the current web request. review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Net.WebException: The operation has timed out
Source Error:
[Code]....
Line 32: End If
Line 33: Catch ex As Exception
Line 34: Throw ex
Line 35:
Line 36: Finally
Source
File: D:whbSites29519Webexpresscheckout.aspx.vb Line: 34
Stack Trace:
[Code]....
[WebException: The operation has timed out]
expresscheckout.expresscheckout_Load(Object sender, EventArgs e) in D:whbSites29519Webexpresscheckout.aspx.vb:34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
I need some help to finish of my PayPal page.
I am using Visual Basic in ASP.NET. I have been able to send items to PayPal, complete the transaction and then come back to my site. I have the been able to send and receive the token & auth code, and also the Payers details. (See code Below)
What I need help with is displaying the items that have been bought. If the user buys only one product then that is fine as I can just hard code for one item. BUT I want users to buy more than one item and displaying it has caused a problem.
I know that PayPal sends all the data back for the items, with the result being item_namex, quantityx, mc_gross_x. Where x is the item number.
This is where I have the problem. Do I hard code for item_name1,2,3,4,5...... 100 (which is alot of code) or is there a better, easier way to extract ALL items and display in a simple table.
At the bottom of my code you will see my first attempt at the table (highlighted by ****************)
[Code]....
How do you add a PayPal button inside of a content detail of a master page. Since a MasterPage automatically encapsulates and nests ALL of the code of its contentplaceholder, by definition...all design and coding in a contentplaceholder cannot encorporate a form. This is true because w3 specs do not allow the nesting for forms.
[Code]....
I have a grid view, with total summed up.the summed up total has to be sent to paypal transaction..I now can send a static amount to paypal (hard coded). Instead of static amount i need to send the gridview total there..
View 1 RepliesI create paypal payment Getway when on local machine i check transaction using paypal sandbox In this way I get all data from paypal site when Return url send me back to my site at Paysuccess page after tansaction over
But when I try same page Online It working well, but Data not save in my database.
If I have a standard HTML textbox
[Code]....
but got a readonly error.
I am trying to set a hidden type value to x on Server Side and then access it with Javascript. I have tried multiple ways to accomplish this.
At the basic level this is what I am trying to do.
Aspx page
<asp:HiddenField ID="HidRowNumber" runat="server" />
CS Page
In IsPostBack
HidRowNumber.Value = EFileRowNumber.Text;
Javscript
var status = document.getElementById("<%= HidRowNumber.ClientID %>").value;
When I am debugin it say it HidRowNumber's Value has changed to x but when I access the value with JS it always returns ''.
i can use escape() and unescape() functions by Client side easily, but the problem when i have use escape() method for peice of HTML , then i dont know how to unescape this piece of HTMl By Server Side not By Client Side. how i can unescape (escapped HTML) by server side?
View 2 RepliesI have a hidden variable and its value is being updated using javascript(client side) which I make a call from server side code. After making the call I am not able to retrieve the updated value from Server side variable. I went through this forum [URL] but not able find a way how to implement functionality with IFRAME. I am trying to call the client side code and retrieve the updated value from server side in page_load event.
View 5 RepliesI have a results set of 3 columns and aproximately 40 records. Instead of a Gridview with paging enabled or a GridView to where you need to scroll down the page to view all the data, I'd like to have two tables side by side.Is there and easy way to acomplish this?
View 1 RepliesI'm trying to customize a ListView control to display like a GridView so that I can enable users to see and update multiple database records at a time.
In the ItemTemplate I've encased all the fields in divs with a style class that would give each div a set-width and left & right borders so that all fields would lineup like a column, however the divs display underneath each other rather than side by side. I tried nesting all the "field divs" in a <p></p> but this doesn't work.
I've spent much time Googling my question and haven't been able to find a clear answer. I'm teaching myself ASP.Net on my own with books and online tutorials and these materials have not shed much light on this particular issue either as of yet.
My Code Example:
[Code]....
Your example doesn't work, or I have missed something, I work on a website for information...
I have null in my variable ...
Protected Sub Submit(sender As Object, e As System.EventArgs)
Dim values As String = Request.Form(ListBox1.ID)
TextBox1.Text = values
End Sub