После адаптивного платежа PayPal никаких действий не выполняется - PullRequest
2 голосов
/ 29 февраля 2020

Я пробовал это ( Метод ) для адаптивных платежей Paypal. Первая часть идет хорошо, но после завершения второй части ничего не происходит и нет ошибок для просмотра. Я знаю, что это уже опубликовано, но я вижу все остальные ответы, но все напрасно. Я пытался найти другой вариант, чтобы сделать эту функциональность, но он в основном доступен на "Ruby" или других платформах, но мне это нужно в PHP

Здесь это PHP код

class PaypalTest{
public $app_id = "APP-80W284485P519543T";
public $apiUrl = 'https://svcs.sandbox.paypal.com/AdaptivePayments/';
public $paypalUrl="https://www.paypal.com/webscr?cmd=_ap-payment&paykey=";
public $headers;

function __construct(){
    $this->headers = array(
        "X-PAYPAL-SECURITY-USERID: ".$this->api_user,
        "X-PAYPAL-SECURITY-PASSWORD: ".$this->api_pass,
        "X-PAYPAL-SECURITY-SIGNATURE: ".$this->api_sig,
        "X-PAYPAL-REQUEST-DATA-FORMAT: JSON",
        "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON",
        "X-PAYPAL-APPLICATION-ID: ".$this->app_id,
    );

    $this->envelope = array(
        "errorLanguage" => "en_US",
        "detailLevel" => "ReturnAll"
    );
}

function getPaymentOptions($paykey){
    $packet = array(
        "requestEnvelope" => $this->envelope,
        "paykey" => $paykey
    );

    return $this->_paypalSend($packet,"getPaymentOptions");
}
function setPaymentOptions(){

}
function _paypalSend($data,$call){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $this->apiUrl.$call);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers);
    $response = json_decode(curl_exec($ch),true);
    return $response;

}
function splitPay(){

// create the pay request
    $createPacket = array(
        "actionType" =>"PAY",
        "currencyCode" => "USD",
        "receiverList" => array(
            "receiver" => array(
                array(
                    "amount"=> "200.00",
                    "email"=>"sb-3oe0y636987@personal.example.com"
                )
            )
        ),
        "returnUrl" => "http://test.local/payments/confirm",
        "cancelUrl" => "http://test.local/payments/cancel",
        "requestEnvelope" => $this->envelope
    );

    $response = $this->_paypalSend($createPacket,"Pay");
    print_r($response);
    $payKey = $response['payKey'];
    $detailPacket = array(
        "requestEnvelope" => $this->envelope,
        "payKey" => $payKey,
        "receiverOptions" => array(
            array(
                "receiver" => array("email"=>"sb-3oe0y636987@personal.example.com"),
                "invoiceData" => array(
                    "item" => array(
                        array(
                            "name" => "Product 1",
                            "price" => "100.00",
                            "identifier" => "p1"
                        ),
                        array(
                            "name" => "Product 2",
                            "price" => "100.00",
                            "identifier" => "p1"
                        )
                    )
                )
            )
        )
    );

    $response = $this->_paypalSend($detailPacket,"setPaymentOptions");
    echo $response;
    print_r($response);
    $dets = $this->getPaymentOptions($payKey);
    print_r($dets);
}
}

$payment = new PaypalTest();
$payment->splitPay();

1 Ответ

1 голос
/ 29 февраля 2020

Адаптивные платежи больше не поддерживаются для новых интеграций и не должны использоваться.

Вместо этого переключитесь на поддерживаемую интеграцию, такую ​​как PayPal Checkout .

(Есть это также более специализированная коммерческая платформа PayPal , доступная только утвержденным партнерам PayPal.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...