Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Submit Credit Card Transaction to PayPal
Submits a credit card transaction to PayPal. The response parameters are displayed for both success and error responses. This example communicates directly with PayPal's Payflow servers via HTTPS. Chilkat.HttpRequest req = new Chilkat.HttpRequest(); Chilkat.Http http = new Chilkat.Http(); bool success; // Any string unlocks the component for the 1st 30-days. success = http.UnlockComponent("Anything for 30-day trial"); if (success != true) { MessageBox.Show(http.LastErrorText); return; } // These are obviously not real credentials... string username; username = "seller_1999999893_biz_api1.chilkatsoft.com"; string password; password = "1992299958"; string signature; signature = "ALgNZbbbUgjlBaRnvTKJg8-C6AGpAepaaa1rysDXe1OnF7pJcaccccmN"; string version; version = "3.2"; // The PayPal NVP sandbox server for API Signature Security is: // https://api-3t.sandbox.paypal.com/nvp // Build an HTTPS POST Request: req.UsePost(); req.Path = "/nvp"; // The content-type should be text/namevalue req.AddHeader("content-type","text/namevalue"); req.AddParam("METHOD","doDirectPayment"); req.AddParam("PAYMENTACTION","Sale"); req.AddParam("AMT","1.00"); req.AddParam("IPADDRESS","37.174.133.150"); // Visa, Discover, Mastercard, or Amex req.AddParam("CREDITCARDTYPE","Visa"); req.AddParam("ACCT","4397920706128982"); // expiration date should be formatted MMYYYY req.AddParam("EXPDATE","022010"); req.AddParam("CVV2","382"); req.AddParam("FIRSTNAME","Test"); req.AddParam("LASTNAME","User"); req.AddParam("STREET","1 Main St"); req.AddParam("CITY","San Jose"); req.AddParam("STATE","CA"); req.AddParam("ZIP","95131"); req.AddParam("COUNTRYCODE","US"); req.AddParam("CURRENCYCODE","USD"); // Credentials and version: req.AddParam("VERSION",version); req.AddParam("USER",username); req.AddParam("PWD",password); req.AddParam("SIGNATURE",signature); // Send the HTTPS POST and get the response. Note: This is a blocking call. // The method does not return until the full HTTP response is received. string domain; int port; bool ssl; domain = "api-3t.sandbox.paypal.com"; port = 443; ssl = true; Chilkat.HttpResponse resp = null; // 120-second non-activity timeout. http.ReadTimeout = 15; resp = http.SynchronousRequest(domain,port,ssl,req); if (resp == null ) { textBox1.Text += http.LastErrorText + "\r\n"; } else { // The response body is in NVP format -- which is nothing more than URL-encoded name/value pairs. // One easy way to parse it is to use the HttpRequest // object in an unorthodox way. // We'll create a fake URL that contains the name/value pairs // found in the body of the response. // Then we'll load it into a temporary HTTP request object. // The HTTP request object does the parsing for us, and we // can look at the params... string fakeUrl; fakeUrl = "http://www.test.com/abc.asp?" + resp.BodyStr; // We're only using this request object to parse the NVP-formatted response body. Chilkat.HttpRequest req2 = new Chilkat.HttpRequest(); req2.SetFromUrl(fakeUrl); // The ACK param can have these values: // Successful responses: // Success // SuccessWithWarning // Error responses: // Failure // FailureWithWarning // Warning textBox1.Text += "ACK: " + req2.GetParam("ACK") + "\r\n"; // Assuming success, we'll have these params: textBox1.Text += "AMT: " + req2.GetParam("AMT") + "\r\n"; textBox1.Text += "CURRENCYCODE: " + req2.GetParam("CURRENCYCODE") + "\r\n"; textBox1.Text += "AVSCODE: " + req2.GetParam("AVSCODE") + "\r\n"; textBox1.Text += "CVV2MATCH: " + req2.GetParam("CVV2MATCH") + "\r\n"; textBox1.Text += "TRANSACTIONID: " + req2.GetParam("TRANSACTIONID") + "\r\n"; textBox1.Text += "TIMESTAMP: " + req2.GetParam("TIMESTAMP") + "\r\n"; textBox1.Text += "CORRELATIONID: " + req2.GetParam("CORRELATIONID") + "\r\n"; textBox1.Text += "VERSION: " + req2.GetParam("VERSION") + "\r\n"; textBox1.Text += "BUILD: " + req2.GetParam("BUILD") + "\r\n"; // On failure, some of the above params will be set, but these // params will also be present: textBox1.Text += "L_ERRORCODE0: " + req2.GetParam("L_ERRORCODE0") + "\r\n"; textBox1.Text += "L_SHORTMESSAGE0: " + req2.GetParam("L_SHORTMESSAGE0") + "\r\n"; textBox1.Text += "L_LONGMESSAGE0: " + req2.GetParam("L_LONGMESSAGE0") + "\r\n"; textBox1.Text += "L_SEVERITYCODE0: " + req2.GetParam("L_SEVERITYCODE0") + "\r\n"; } |
© 2000-2012 Chilkat Software, Inc. All Rights Reserved.