Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
DH Key Exchange
DSA
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

 

 

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.

Download Chilkat C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C++ Libraries for VC++ 6.0 / Win32

#include <CkHttpRequest.h>
#include <CkHttp.h>
#include <CkString.h>
#include <CkHttpResponse.h>

void ChilkatSample(void)
    {
    CkHttpRequest req;
    CkHttp http;

    bool success;

    //  Any string unlocks the component for the 1st 30-days.
    success = http.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("%s\n",http.lastErrorText());
        return;
    }

    //  These are obviously not real credentials...
    CkString username;
    username = "seller_1999999893_biz_api1.chilkatsoft.com";
    CkString password;
    password = "1992299958";
    CkString signature;
    signature = "ALgNZbbbUgjlBaRnvTKJg8-C6AGpAepaaa1rysDXe1OnF7pJcaccccmN";
    CkString 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.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.
    CkString domain;
    int port;
    bool ssl;
    domain = "api-3t.sandbox.paypal.com";
    port = 443;
    ssl = true;
    CkHttpResponse *resp = 0;

    //  120-second non-activity timeout.
    http.put_ReadTimeout(15);

    resp = http.SynchronousRequest(domain,port,ssl,req);
    if (resp == 0 ) {
        printf("%s\n",http.lastErrorText());
    }
    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...
        CkString fakeUrl;

        fakeUrl = "http://www.test.com/abc.asp?";
        fakeUrl.append(resp->bodyStr());

        //  We're only using this request object to parse the NVP-formatted response body.
        CkHttpRequest req2;
        req2.SetFromUrl(fakeUrl);

        //  The ACK param can have these values:
        //  Successful responses:
        //  Success
        //  SuccessWithWarning
        //  Error responses:
        //  Failure
        //  FailureWithWarning
        //  Warning
        printf("ACK: %s\n",req2.getParam("ACK"));

        //  Assuming success, we'll have these params:
        printf("AMT: %s\n",req2.getParam("AMT"));
        printf("CURRENCYCODE: %s\n",req2.getParam("CURRENCYCODE"));
        printf("AVSCODE: %s\n",req2.getParam("AVSCODE"));
        printf("CVV2MATCH: %s\n",req2.getParam("CVV2MATCH"));
        printf("TRANSACTIONID: %s\n",req2.getParam("TRANSACTIONID"));
        printf("TIMESTAMP: %s\n",req2.getParam("TIMESTAMP"));
        printf("CORRELATIONID: %s\n",req2.getParam("CORRELATIONID"));
        printf("VERSION: %s\n",req2.getParam("VERSION"));
        printf("BUILD: %s\n",req2.getParam("BUILD"));

        //  On failure, some of the above params will be set, but these
        //  params will also be present:
        printf("L_ERRORCODE0: %s\n",req2.getParam("L_ERRORCODE0"));
        printf("L_SHORTMESSAGE0: %s\n",req2.getParam("L_SHORTMESSAGE0"));
        printf("L_LONGMESSAGE0: %s\n",req2.getParam("L_LONGMESSAGE0"));
        printf("L_SEVERITYCODE0: %s\n",req2.getParam("L_SEVERITYCODE0"));

    }

    }

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2009 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Mail Component · XML Parser