2014-10-26 2 views
0

У меня есть следующий SuccessPayment метод:OmniPay - Laravel - Доработка Paypal Pyment

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

    # FINALIZZZE PAYPAL PAYMENT 
    $response = $gateway->completePurchase($this->getApiInfos())->send(); 
    $data = $response->getData(); 

    # IF SUCCESSFULLLLLLL 
    if($data['ACK'] == 'Success'): 
     $order = Order::where('paypalToken',$data['TOKEN'])->first(); 
     # Set Status 
     $order->orderSuccess = 4; 
     $order->orderPaid = 1; 
     # Set PP ID 
     $order->paypalTransactionId = $data['PAYMENTINFO_0_TRANSACTIONID']; 
     $order->save(); 

     # Destroy Cart 
     Cart::destroy(); 

     # Send Confirm Mail 
     $this->sendConfirmOrderMail($order->id, Auth::user()->id); 

     return View::make('pages.checkout.success', compact(['order','data'])); 
    endif; 
} 

$ this-> 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 xxxxxx - Order #', 
    'currency' => 'EUR' 
); 
} 

Посмотрите на описание. Как я могу получить orderID в описании, после перенаправления на Paypal и после того, как я был перенаправлен обратно на мою страницу?
Я теряю сеанс и порядок (я думаю!), Так как я могу это сделать?

Кроме того, вы знаете, как я могу отправить стоимость доставки, налог и изображение заголовка в PayPal через Omnipay?

+0

Я не совсем знаком с Omnipay, но должно быть где-то, что он создает фактический запрос API. В пределах этого вы можете установить параметры для INVOICE, SHIPPINGAMT, TAXAMT и т. Д. Я видел, как многие люди жалуются на Omnipay с помощью PayPal, фактически, из-за ограничений и несовместимости. В зависимости от того, насколько глубоко вы интегрируетесь в интеграцию, я бы рекомендовал взглянуть на мою [библиотеку классов PHP для PayPal] (https://packagist.org/packages/angelleye/paypal-php-library). Он разработан специально для PayPal и является полнофункциональным и очень простым в использовании. –

+0

Как интегрировать его в Laravel? – Marek123

+0

Эта ссылка, которую я вам отправил, представляет собой пакет Packagist, поэтому вы можете включить его в свой проект Laravel, как и любой другой пакет через Composer. Просто добавьте следующее в строку запроса: «angelleye/paypal-php-library»: «2.0. *». Вот [руководство по установке видео] (https://www.youtube.com/watch?v=f9wi8m7_FDc). –

ответ

3

Чтобы получить Код транзакции, которые вы послали в Paypal, вы можете сделать

$response->getTransactionReference(); 

Для второй половины вашего вопроса:
шлюз PayPal Экспресс имеет следующие функции для настройки изображения:

$gateway->setHeaderImageUrl() 
$gateway->setLogoImageUrl() 

Все просьбы имеют следующие функции

$request->setTaxAmount() 
$request->setShippingAmount() 
$request->setHandlingAmount() 
$request->setShippingDiscount() 
$request->setInsuranceAmount() 
+1

Awesome. Именно то, что мне нужно! – Marek123

+0

большое спасибо. это полезно. –

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