Запрошена устаревшая версия PayPal. Интеграция с Laravel - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь интегрировать PayPal с моим проектом Laravel.Я сделал два типа кода шаблона в форме PayPal и получаю 2 разных ошибки с обоими типами кода соответственно.

Я пробовал ниже коды, пожалуйста, проверьте и помогите мне решить эту проблему

1) Код 1:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" name="frmTransaction" id="frmTransaction">
   <input type="hidden" name="business" value="{{$paypal_id}}">
   <input type="hidden" name="cmd" value="_xclick">
   <input type="hidden" name="item_name" value=" {{$product['product']->name}}">
   <input type="hidden" name="item_number" value="{{$product['product']->id}}">
   <input type="hidden" name="amount" value="{{$product['product']->price}}">   
   <input type="hidden" name="currency_code" value="USD">   
   <input type="hidden" name="cancel_return" value="{{ url('payment-cancel')}}">
  <input type="hidden" name="return" value="{{ url('payment-status')}}">
</form>
<script>document.frmTransaction.submit();</script>

Я получил ошибку типа " BAD_INPUT_ERROR ".

2) Код 2:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" name="frmTransaction" id="frmTransaction">
  <input type="hidden" name="business" value="{{$paypal_id}}">
  <input type="hidden" name="cmd" value="_xclick&business=info@gmail.com+&item_name={{str_replace(' ', '_',$product['product']->name)}}&amount={{$product['product']->price}}">
    <input type="hidden" name="item_name" value="{{$product['product']->name}}">
   <input type="hidden" name="item_number" value="{{$product['product']->id}}">
   <input type="hidden" name="amount" value="{{$product['product']->price}}">   
   <input type="hidden" name="currency_code" value="USD">   
   <input type="hidden" name="cancel_return" value="{{ url('payment-cancel')}}">
   <input type="hidden" name="return" value="{{ url('payment-status')}}">
 </form>
<script>document.frmTransaction.submit();</script>

ЯМожно перенаправить на PayPal, но на странице PayPal отображается сообщение « Вы запросили устаревшую версию PayPal. Эта ошибка часто возникает в результате использования закладок. »

Может кто-нибудь, пожалуйста, руководствомне в чем проблема в этом коде.во втором коде значение похоже на это "_xclick&business=info@gmail.com+&item_name=Unlimited_Pizza&amount=199".

Я разрабатываю это приложение на моем локальном сервере в Ubuntu.

1 Ответ

0 голосов
/ 03 января 2019

Пожалуйста, следуйте этим шагам и скажите мне, если это работает:

  1. Проверьте свой Контроллер и добавьте это к своей функции , чтобы показать эту страницу оплаты :)

Значения в массиве:

$values = [
    'charest' => 'utf-8',
    'lc' => 'US',
    'cmd' => '_xclick',
    'amount' => $product['product']->price, // PRICE 
    'business' => $paypal_id, // PAYPAL EMAIL
    'item_name' => $product['product']->name, // NAME
    'item_number' => $product['product']->id, // ITEM ID
    'currency_code' => 'USD',
    'no_note' => '1',
    'tax_rate' => 0, // 0- TO NOT ADD ANY FEES
    'no_shipping' => 1, // NO ADDRESS
    'rm' => '1',
    'page_style' => 'paypal',
    'custom' => '', // ANY VALUES TO RETURN IT AFTER PAYMENT SUCCESS
    'return' => url('payment-status'), // RETURN - MUST BE A VALID URL
    'cancel_return' => url('payment-cancel'),
    'notify_url' => url('payment-success') // IPN PAYPAL - CREATE THIS ROUTE - TO CHECK IF IS PAID
    ];

    $pay_url = "https://www.paypal.com/cgi-bin/webscr";
    // CREATE $payment TO CHECK IF IS SANDBOX or LIVE - FROM CONFIG FILE FOR EXAMPLE
    if ($payment == 'sandbox') :
        $pay_url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
    endif;
// RETURN YOUR VIEW WITH THIS VALUES
return view ('your_view', ['pay_url' => $pay_url, 'values' => $values]);
  1. По вашему мнению - добавьте:

Ваша новая форма HTML:)

<form action='{{ $pay_url }}' method='POST' class='paypal-form' target='_top' id='pay_now_paypal'>
    @foreach ($values as $name => $value) : ?>
    <input type='hidden' name='{{ $name }}' value='{{ $value }}'>
    @endforeach
</form>

И представить:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>

<a href="#" class="btn btn-success paypal-button">Pay with Paypal  <i class="fa fa-angle-double-right"></i></a>

<script>
// update paypal form on paypal button click
$('.paypal-button').on('click', function(e) {
    e.preventDefault();
    $('#pay_now_paypal').submit();
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...