是否需要使用PayPal权限才能将SetExpressCheckout用于第三方?

时间:2017-03-28 16:01:38

标签: api paypal permissions

我们正在使用SetExpressCheckout代表第三方处理付款。即使第三方未授予我们权限,它似乎也能正常工作。我们这样做了吗?

根据我的理解,为了处理第三方的付款,第三方应该转到工具> API凭据>在其PayPal帐户中授予API权限并授予我们的API用户名使用Express Checkout处理付款的权限。但是,我们注意到两个问题:

  1. 如果第三方PayPal帐户只是个人帐户(不是商家帐户),则无权授予API权限
  2. 即使非商业第三方PayPal帐户未授予此权限,我们仍然可以将付款存入其帐户。
  3. 所以问题是,第三方是否真的有必要授予我们这项许可,以便我们能够处理将其PayPal帐户记入贷方的付款?

    如果您需要更多信息,请参阅我们用于启动SetExpressCheckout请求的PHP代码的简化版本。我们使用请求的SUBJECT参数指定第三方,此参数使用第三方PayPal帐户的电子邮件地址填写。

        // Parameters for SetExpressCheckout
        $requestParams = array(
            'METHOD' => 'SetExpressCheckout',
            'VERSION' => $this->_version,
            'PAYMENTREQUEST_0_DESC' => "Order number",
            'PAYMENTREQUEST_0_AMT' => 10,
            'PAYMENTREQUEST_0_CURRENCYCODE' = 'EUR',
            'PAYMENTREQUEST_0_ITEMAMT' => 10,
            'RETURNURL' => "http://SUCCESS_URL_TO_RETURN_TO",
            'CANCELURL' => "http://FAILURE_URL_TO_RETURN_TO",
            'USER' => 'OUR_API_USERNAME',
            'PWD' => 'OUR_API_PASSWORD',
            'SIGNATURE' => 'OUR_API_SIGNATURE',
            'SUBJECT' => 'THIRD_PARTY_EMAIL'
        );
    
        // Options for curl
        $curlOptions = array (
            CURLOPT_URL => 'https://api-3t.paypal.com/nvp',
            CURLOPT_VERBOSE => 1,
            CURLOPT_SSL_VERIFYPEER => true,
            CURLOPT_SSL_VERIFYHOST => 2,
            CURLOPT_CAINFO => 'cacert.pem', //CA cert file
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_POST => 1,
            CURLOPT_POSTFIELDS => http_build_query($requestParams)
        );
    
        // Send the curl request
        $ch = curl_init();
        curl_setopt_array($ch,$curlOptions);
        $response = curl_exec($ch);
    
        // Handle possible errors
        if (curl_errno($ch)) {
            //Handle errors
        } else  {
            // Handle success
        }
        curl_close($ch);
    

    如果第三方帐户不需要授予我们许可,那么我们可以通过简单地询问他们的PayPal帐户的电子邮件地址来简化PayPal的设置,而不必通过授予权限来打扰他们。

    非常感谢您提供的任何信息。

1 个答案:

答案 0 :(得分:1)

有两种方法可以代表其他人进行API调用。 1)从商家PayPal帐户向API来电者授予API权限或2)将SUBJECT NVP变量与商家PayPal帐户电子邮件地址一起使用(' SUBJECT' =>' THIRD_PARTY_EMAIL')。

因此,只需将SUBJECT NVP变量与商家PayPal帐户电子邮件地址一起使用即可代表商家进行API调用,此处商家无需向您授予API权限。