Пользовательское значение CodeIgniter с omnipay

Я пытаюсь передать пользовательское значение для платежа через PayPal - OmniPay

Вот код, который я использую:

$response = $gateway->purchase(
    array(
        'cancelUrl'=>base_url().'checkout/cancel',
        'returnUrl'=>base_url().'checkout/confirm',
        'amount' =>  number_format($retn['invoiceDatas']['price'], 2, '.', ''),
        'description' => 'Facture #'.$id,
        'currency' => 'EUR',
        'transactionid'=> $id,
        'custom' => $id,
        'description' => 'Facture'
    )
)->send();
$response->redirect();

А вот код со страницы оформления заказа:

$response = $gateway->completePurchase(array('amount' => 75.00, 'currency' => 'EUR'))->send();
$data = $response->getData(); // this is the raw response object
echo '<pre>';
print_r($data);
echo '</pre>';

Но в напечатанном массиве данных у меня много информации, но нет информации о «transactionID» или «пользовательской» переменной.

Пожалуйста помоги. Спасибо


person user3720154    schedule 08.06.2014    source источник
comment
Я не понимаю, в чем твоя проблема. Ваш код выглядит нормально. Paypal успешно проводит платеж?   -  person Adrian Macneil    schedule 16.06.2014


Ответы (2)


В Omnipay/PayPal нет такого понятия, как параметр custom.

Вы должны хранить эти данные в своей базе данных, а затем искать их на основе идентификатора транзакции. параметр.

Поскольку PayPal не передает это обратно вам, самое простое решение — создать собственный returnUrl. Например:

'returnUrl' => base_url().'checkout/confirm/'.$id,

Затем, когда ваш клиент попадает на returnUrl, вы можете найти транзакцию в своей базе данных на основе сегмента 3 (идентификатор транзакции) и пометить ее как оплаченную.

person Adrian Macneil    schedule 15.06.2014
comment
Отличная идея ! Спасибо :) - person user3720154; 17.06.2014

Я думаю, вам следует передать 'transactionID'=> $id, с большой буквы, а не 'transactionid'=> $id,.

person MacEncrypted    schedule 08.06.2014
comment
Теперь у меня фатальная ошибка: необработанное исключение «Omnipay\Common\Exception\RuntimeException» с сообщением «Этот ответ не поддерживает перенаправление». в - person user3720154; 08.06.2014