1

私のウェブサイトから Paypal MassPay API を使用してユーザーに支払いをしようとしています。

public function PPHttppost($methodName,$nvpstr){
        $setting = $this->globalsetting();
        // Set up your API credentials, PayPal end point, and API version.
        $API_Username = $setting->paypal_api_username;
        $API_Password = $setting->paypal_api_password;
        $API_Signature = $setting->paypal_api_signature;
        $API_Environment = $setting->paypal_mode;

        $API_Endpoint = "https://api-3t.sandbox.paypal.com/nvp";
        $API_Version = '116.0';
        if('sandbox' === $API_Environment || 'beta-sandbox' === $API_Environment){
            $API_Endpoint = "https://api-3t.$API_Environment.paypal.com/nvp";
        }
        $version = urlencode($API_Version);
        //set curl paramaeter
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $API_Endpoint);
        curl_setopt($ch, CURLOPT_VERBOSE, 1);

        //Turn of server and pakagemanager
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);

        //set the API operation,version,API signature in requrest

        $nvpreq = "METHOD=$methodName&VERSION=$version&PWD=$API_Password&USER=$API_Username&SIGNATURE=$API_Signature&$nvpstr";
        //set the request as POST field for curl
        curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);

        //get the response from server

        $httpResponse = curl_exec($ch);

        if(!$httpResponse){
            exit("$methodName failed:".curl_error($ch).'('.curl_errno($ch).')');
        }

        //Extract the response details

        $httpResponseArray = explode('&', $httpResponse);

        $httpParsedResponseArray = array();

        foreach ($httpResponseArray as $i=>$value){
            $tmpArray = explode('=', $value);
            if(sizeof($tmpArray) > 1){
                $httpParsedResponseArray[$tmpArray[0]] = $tmpArray[1];
            }
        }
        if((0 == sizeof($httpParsedResponseArray)) || !array_key_exists('ACK',$httpParsedResponseArray)){
            exit("Invalid HTTP Response for POST request($nvpreq) to $API_Endpoint.");
        }
        return $httpParsedResponseArray;
    }

$nvpstr = "RECEIVERTYPE=EmailAddress&EMAILSUBJECT=Your withdraw request was processed&L_EMAIL0=seller@gmail.com&L_AMT0=$amt&CURRENCYCODE=$currency";

public function doMassPay($nvpstr){
    $httpParsedResponseArray = $this->PPHttppost('MassPay', $nvpstr);
    pr($httpParsedResponseArray);exit;
    }

Paypal の MassPay API を呼び出すと、成功が返されます

Array
(
    [TIMESTAMP] => 2014%2d09%2d12T07%3a18%3a12Z
    [CORRELATIONID] => c4c61215cdd72
    [ACK] => Success
    [VERSION] => 116%2e0
    [BUILD] => 12786467
)

しかし、アカウント ログを確認すると、レセプティタントが金額を受け入れることができず、トランザクションが拒否されたことが示されています。

同じ応答を返すたびに、別のテスト アカウントで確認しました。誰かが私がどこで何を間違っているのか教えてもらえますか? 私は Cakephp フレームワークを使用しており、Paypal API を呼び出すためのライブラリを使用していません。

4

0 に答える 0