Здравствуйте, я пытался интегрировать PayPal с корзиной для своего сайта, используя Omnipay PayPal с Laravel 4. В основном я использовал ЭТО руководство.
Я все еще на начальном этапе, но я попал в загвоздку. Когда я пытаюсь оформить заказ, я получаю сообщение об ошибке «Требуется параметр суммы».
Я немного нуб, поэтому я могу делать что-то глупое, но если я жестко запрограммирую сумму (т. Е. «Цена» => 25,00), тогда она работает как надо. Описание и валюта также извлекаются из базы данных и отправляются на страницу PayPal. Вопросы, которые я нашел здесь, похоже, не заставляют людей динамически извлекать данные на свой контроллер, так что, может быть, я делаю что-то не так?
Вот соответствующая часть моего контроллера:
<?php
use Omnipay\Omnipay;
class PaymentController extends Controller {
public function postPayment() {
$params = array(
'cancelUrl' => 'http://localhost/cancel_order',
'returnUrl' => 'http://localhost/payment_success',
'name' => Input::get('name'),
'description' => Input::get('description'),
'price' => Input::get('price'),
'currency' => Input::get('currency') );
Session::put('params', $params);
Session::save();
$gateway = Omnipay::create('PayPal_Express');
$gateway->setUsername('my username');
$gateway->setPassword('my pass');
$gateway->setSignature('my signature');
$gateway->setTestMode(true);
$response = $gateway->purchase($params)->send();
Вот моя кнопка оформления корзины:
{{ Form::open([ 'url' => 'pay_via_paypal', 'method' => 'post' ]) }}
{{Form::hidden('product',Product::find($productID)->name)}}
{{Form::hidden('description',Product::find($productID)->description)}}
{{Form::hidden('amount',Product::find($productID)->price)}}
{{Form::hidden('currency',Product::find($productID)->currency)}}
{{Form::submit('CHECKOUT')}}
{{Form::close()}}
Форма может выглядеть немного запутанной, но все значения отображаются в форме до того, как я отправлю ее.
Спасибо за любую помощь.