/users/patterns/www/payment/paypal.class.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
class MyPayPal {
        
    function 
PPHttpPost($methodName_$nvpStr_$PayPalApiUsername$PayPalApiPassword$PayPalApiSignature$PayPalMode) {
            
// Set up your API credentials, PayPal end point, and API version.
            
$API_UserName urlencode($PayPalApiUsername);
            
$API_Password urlencode($PayPalApiPassword);
            
$API_Signature urlencode($PayPalApiSignature);
            
            
//$paypalmode = ($PayPalMode=='sandbox') ? '.sandbox' : '';
            
$paypalmode '';
    
            
//$API_Endpoint = "https://api-3t".$paypalmode.".paypal.com/nvp";
            
$API_Endpoint "https://api-3t.paypal.com/nvp";
            
$version urlencode('109.0');
        
            
// Set the curl parameters.
            
$ch curl_init();
            
curl_setopt($chCURLOPT_URL$API_Endpoint);
            
curl_setopt($chCURLOPT_VERBOSE1);
        
            
// Turn off the server and peer verification (TrustManager Concept).
            
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
            
curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);
        
            
curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
curl_setopt($chCURLOPT_POST1);
        
            
// Set the API operation, version, and API signature in the request.
            
$nvpreq "METHOD=$methodName_&VERSION=$version&PWD=$API_Password&USER=$API_UserName&SIGNATURE=$API_Signature$nvpStr_";
        
            
// Set the request as a POST FIELD for curl.
            
curl_setopt($chCURLOPT_POSTFIELDS$nvpreq);
        
            
// Get response from the server.
            
$httpResponse curl_exec($ch);
        
            if(!
$httpResponse) {
                exit(
"$methodName_ failed: ".curl_error($ch).'('.curl_errno($ch).')');
            }
        
            
// Extract the response details.
            
$httpResponseAr explode("&"$httpResponse);
        
            
$httpParsedResponseAr = array();
            foreach (
$httpResponseAr as $i => $value) {
                
$tmpAr explode("="$value);
                if(
sizeof($tmpAr) > 1) {
                    
$httpParsedResponseAr[$tmpAr[0]] = $tmpAr[1];
                }
            }
        
            if((
== sizeof($httpParsedResponseAr)) || !array_key_exists('ACK'$httpParsedResponseAr)) {
                exit(
"Invalid HTTP Response for POST request($nvpreq) to $API_Endpoint.");
            }
        
        return 
$httpParsedResponseAr;
    }
        
}
?>