2016-01-13 8 views
0

У меня есть этот код:Получить обратный вызов оплаты Paypal в PHP

<form action="<?php echo $paypal_url; ?>" method="post" name="frmPayPal1"> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
    <input type="hidden" name="business" value="<?php echo $paypal_id; ?>"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="item_name" value="Suscripcion 1 Mes"> 
    <input type="hidden" name="userid" value="{{ Auth::User()->id }}"> 
    <input type="hidden" name="amount" value="0.1"> 
    <input type="hidden" name="currency_code" value="EUR"> 
    <input type="hidden" name="handling" value="0"> 
    <input type="hidden" name="cancel_return" value="http://betea.cf/cancel"> 
    <input type="hidden" name="return" value="http://betea.cf/success"> 
    <input type="hidden" name="invoice" value="<?php echo $random ?>"> 
    <input type="image" src="https://www.sandbox.paypal.com/es_ES/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - La manera mas segura de comprar online!"> 
    <img alt="" border="0" src="https://www.sandbox.paypal.com/es_ES/i/scr/pixel.gif" width="1" height="1"> 
    <input name="notify_url" value="http://betea.cf/success" type="hidden"> 
</form> 

И в успехе, это:

$id = $_POST['userid']; 
    $fecha = Carbon::now()->addMonths(1); 
    User::where('id', $id) 
     ->update(['role' => 'premium', 'expire' => $fecha]); 

Но когда PayPal идти к успеху, говорит, что userid не существовать. Как я могу передать пользовательскую переменную в оплату и получить ее в успех?

+0

Вы используете IPN? –

+0

Нет, я не использую его – Sergio

+0

Это действительно способ пойти, проверить онлайн для учебника по Paypal IPN, а затем в вашей платежной форме вы сможете добавить вход, у которого будет имя «custom», где вы можете добавьте пользовательские значения. Затем вы скажете paypal в IPN (Instant Payment Notification), чтобы найти файл php. В этом файле PHP вы сможете получить доступ ко всему почтовому запросу, сделанному в paypal, с дополнительным полем, созданным paypal –

ответ

1

IPN - действительно лучший способ обновить вашу систему после совершения транзакций, но самая большая проблема здесь заключается в том, что вы не можете просто добавить свои собственные имена полей в форму. «userid» ничего не значит для системы PayPal, поэтому ее просто игнорируют.

Они предоставляют одно настраиваемое поле, которое буквально называется обычным. В пределах этого поля вы можете включить любое значение, которое вы хотите иметь до 256 символов, чтобы вы могли передать свой ID там, а затем он вернется $ _POST ['custom'].

Опять же, лучше использовать IPN для последующей обработки транзакций.

Смежные вопросы