в PayPal, можно ли получить адрес доставки покупателя со своего адреса электронной почты? - PullRequest
0 голосов
/ 13 мая 2018

Я использую PayPal Rest API и создаю страницу PHP, которая запрашивает у покупателей адреса доставки и производит оплату.

Таким образом, покупатель вводит свой адрес доставки, прежде чем нажать кнопку "Оплатить".

Здесьпри оплате я хочу сравнить этот адрес доставки с адресом доставки PayPal покупателя.Я знаю, что покупатель имеет свой адрес доставки в своей учетной записи PayPal.

Так есть ли способ сделать это?

Может быть, получая адрес доставки покупателя из его электронной почты и сравнивая его с введенным адресом доставки?

Или какой-либо вариант API PayPal для сравнения введенного адреса доставки с адресом учетной записи PayPal?

Это мой код PHP Laravel для работы PayPal.

    $payer = new Payer();
    $payer->setPaymentMethod('paypal');

    $item_1 = new Item();
    $item_1->setName('Item 1') /** item name **/
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice(Input::get('amount')); /** unit price **/
    $item_2 = new Item();
    $item_2->setName('Item 2') /** item name **/
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice(20); /** unit price **/

    $shipping_address = new ShippingAddress();
    $shipping_address->setCity('San Jose');
    $shipping_address->setCountryCode('US');
    $shipping_address->setPostalCode('95132');
    $shipping_address->setLine1('My St');
    $shipping_address->setState('CA');
    $shipping_address->setRecipientName('Recipient Name');

    $billing_address = new Address();
    $billing_address->setCity('San Jose');
    $billing_address->setCountryCode('US');
    $billing_address->setPostalCode('95132');
    $billing_address->setLine1('My St2');
    $billing_address->setState('CA');

    $payer_info = new PayerInfo();
    $payer_info->setBillingAddress($billing_address);
    $payer_info->setEmail('a@2.com');
    $payer->setPayerInfo($payer_info);

    $item_list = new ItemList();
    $item_list->setItems(array($item_1, $item_2));
    $item_list->setShippingAddress($shipping_address);

    $amount = new Amount();
    $amount->setCurrency('USD')
        ->setTotal(Input::get('amount') + 20);

    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($item_list)
        ->setDescription('Your transaction description');

    $payee_email = Input::get('payee');
    if ($payee_email) {
        $payee = new Payee();
        $payee->setEmail($payee_email);
        $transaction->setPayee($payee);
    }

    $redirect_urls = new RedirectUrls();
    $redirect_urls->setReturnUrl(url('paypal/status')) /** Specify return URL **/
        ->setCancelUrl(url('paypal/status'));

    $payment = new Payment();
    $payment->setIntent('Sale')
        ->setPayer($payer)
        ->setRedirectUrls($redirect_urls)
        ->setTransactions(array($transaction));

    try {
        $payment->create(PaypalController::$_api_context);
    } catch (\PayPal\Exception\PPConnectionException $ex) {
        return json_decode($ex->getData());
        return 'Error: ' . $ex->getMessage();
    }

    foreach ($payment->getLinks() as $link) {
        if ($link->getRel() == 'approval_url') {
            $redirect_url = $link->getHref();
                break;
        }
    }

    /** add payment ID to session **/
    Session::put('paypal_payment_id', $payment->getId());
    if (isset($redirect_url)) {
    /** redirect to paypal **/
        return Redirect::away($redirect_url);
    }

    return 'Unknown error occurred';

Это от PayPalПример кода почти такой же, как эта ссылка - http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html

Как я могу это сделать.

Большое спасибо всем, кто помог.

...