Laravel — Omnipay с Paypal Express

Я пытаюсь отправить платежи на PayPal из моего приложения Laravel через Omnipay. Это отлично работает, я получаю ответ, getData () показывает успех и прочее, но …

Как узнать, какой платеж я получил?

Допустим, я плачу 1 евро за заказ № 100 — как назначить заказ № 100 для оплаты?

У меня есть три метода:

postOrder () который имеет:

                $paypal_setitems = [];
foreach(Cart::contents() as $item) {
$paypal_setitems[] = array('name' => $item->name, 'quantity' => $item->quantity, 'price' => ($item->price * (1 + 19.00 / 100.0) ));
}
# Send response to PP
$response = $gateway->purchase($this->getApiInfos($order->id))->setItems($paypal_setitems)->send();

return $response->redirect();

getSuccessPayment () который имеет:

    public function getSuccessPayment() {
$gatewayFactory = new \Omnipay\Common\GatewayFactory;
$gateway = $gatewayFactory->create('PayPal_Express');
#Test API Sandbox
$gateway->setUsername('buy-facilitator_api1.xxxxxx.de');
$gateway->setPassword('xxxxx');
$gateway->setSignature('xxxxx.xxxxx.xxxx.xxxxx');
$gateway->setTestMode(true);

$response = $gateway->completePurchase($this->getApiInfos())->send();
$data = $response->getData(); // this is the raw response object

if($data['ACK'] == 'Success'):
echo '<pre>';
print_r($data);
//return Redirect::to('order/success')->with('order', $this->order);
endif;
}

и getApiInfos () с:

public function getApiInfos($order = NULL) {
return array(
'amount'=> Cart::total(),
'cancelUrl' => \URL::route('paypal_cancel_order'),
'returnUrl' => \URL::route('paypal_return'),
'description' => 'Your Payment at - Order #',
'currency' => 'EUR',
'order' => $order
);
}

Я пытался назначить 'order' => $order в массив, но это не работает.

Есть идеи?
Мне просто нужно сохранить успешный платеж (и идентификатор транзакции и другие данные) в заказе, но я не знаю, как.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]