Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Submit Credit Card Transaction to PayPalSubmits 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. use chilkat; $req = new chilkat::CkHttpRequest(); $http = new chilkat::CkHttp(); # Any string unlocks the component for the 1st 30-days. $success = $http->UnlockComponent("Anything for 30-day trial"); if ($success != 1) { print $http->lastErrorText() . "\n"; exit; } # These are obviously not real credentials... $username = "seller_1999999893_biz_api1.chilkatsoft.com"; $password = "1992299958"; $signature = "ALgNZbbbUgjlBaRnvTKJg8-C6AGpAepaaa1rysDXe1OnF7pJcaccccmN"; $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->put_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. $domain = "api-3t.sandbox.paypal.com"; $port = 443; $ssl = 1; # 120-second non-activity timeout. $http->put_ReadTimeout(15); $resp = $http->SynchronousRequest($domain,$port,$ssl,$req); if ($resp eq null ) { print $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... $fakeUrl = "http://www.test.com/abc.asp?" . $resp->bodyStr(); # We're only using this request object to parse the NVP-formatted response body. $req2 = new chilkat::CkHttpRequest(); $req2->SetFromUrl($fakeUrl); # The ACK param can have these values: # Successful responses: # Success # SuccessWithWarning # Error responses: # Failure # FailureWithWarning # Warning print "ACK: " . $req2->getParam("ACK") . "\r\n"; # Assuming success, we'll have these params: print "AMT: " . $req2->getParam("AMT") . "\r\n"; print "CURRENCYCODE: " . $req2->getParam("CURRENCYCODE") . "\r\n"; print "AVSCODE: " . $req2->getParam("AVSCODE") . "\r\n"; print "CVV2MATCH: " . $req2->getParam("CVV2MATCH") . "\r\n"; print "TRANSACTIONID: " . $req2->getParam("TRANSACTIONID") . "\r\n"; print "TIMESTAMP: " . $req2->getParam("TIMESTAMP") . "\r\n"; print "CORRELATIONID: " . $req2->getParam("CORRELATIONID") . "\r\n"; print "VERSION: " . $req2->getParam("VERSION") . "\r\n"; print "BUILD: " . $req2->getParam("BUILD") . "\r\n"; # On failure, some of the above params will be set, but these # params will also be present: print "L_ERRORCODE0: " . $req2->getParam("L_ERRORCODE0") . "\r\n"; print "L_SHORTMESSAGE0: " . $req2->getParam("L_SHORTMESSAGE0") . "\r\n"; print "L_LONGMESSAGE0: " . $req2->getParam("L_LONGMESSAGE0") . "\r\n"; print "L_SEVERITYCODE0: " . $req2->getParam("L_SEVERITYCODE0") . "\r\n"; } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2009 Chilkat Software, Inc. All Rights Reserved.