Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2015, 01:20
akrogonac
 
Fecha de Ingreso: diciembre-2007
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Laravel 5 + Paypal, la pesadilla definitiva

Buenas de nuevo amigos.

Sigo con mi primera aplicacion en laravel y a cada paso que doy me encuentro un nuevo problema. Estoy utilizando en API de paypal para integrarlo en mi web. El caso es que el ejemplo que viene por defecto, viene con valores establecidos manualmente, se proponen 3 items y yo solo necesito 1. En el momento que quito los 2 items que me sobran me reporta un error de una excepcion.

he utilizado: http://learninglaravel.net/integrate...laravel-5/link

y el codigo de la discordia es:

Código:
  public function postPayment(Request $request)
{

    $payer = new Payer();
    $payer->setPaymentMethod('paypal');

    $item_1 = new Item();

    $item_1->setName($request->installation." ".$request->day) // item name
        ->setCurrency('USD')
        ->setQuantity(2)
        ->setPrice('15')
        ->setSku('1234556');
         // unit price

    $item_2 = new Item();
    $item_2->setName('Item 2')
        ->setCurrency('USD')
        ->setQuantity(4)
        ->setPrice('7');

    $item_3 = new Item();
    $item_3->setName('Item 3')
        ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice('20')
        ;

    // add item to list
    $item_list = new ItemList();
    $item_list->setItems(array($item_1, $item_2, $item_3));

    $amount = new Amount();
    $amount->setCurrency('USD')
        ->setTotal(78);

    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($item_list)
        ->setDescription('Your transaction description');

    $redirect_urls = new RedirectUrls();
    $redirect_urls->setReturnUrl(URL::route('payment.status'))
        ->setCancelUrl(URL::route('payment.status'));

    $payment = new Payment();
    $payment->setIntent('Sale')
        ->setPayer($payer)
        ->setRedirectUrls($redirect_urls)
        ->setTransactions(array($transaction));

    try {
        $payment->create($this->_api_context);
    } catch (\PayPal\Exception\PPConnectionException $ex) {
        if (\Config::get('app.debug')) {
            echo "Exception: " . $ex->getMessage() . PHP_EOL;
            $err_data = json_decode($ex->getData(), true);
            exit;
        } else {
            die('Some error occur, sorry for inconvenient');
        }
    }

    foreach($payment->getLinks() as $link) {
        if($link->getRel() == 'approval_url') {
            $redirect_url = $link->getHref();
            break;
        }
    }

    // add payment ID to session
    Session::put('paypal_payment_id', $payment->getId());

    if(isset($redirect_url)) {
        // redirect to paypal
        return Redirect::away($redirect_url);
    }

    return Redirect::route('original.route')
        ->with('error', 'Unknown error occurred');
}
Logicamente los valores del item que quiero mantener sera dinamico, pero en el momento que cambio cantidades o precios me reporta tambien error.

A ver si alguien me puede ayudar