Laravel 5

Paypal Erreur 500

  • Avatar de Thomas
    Membre depuis :
    16/11/2014
    Messages :
    64

    Salut à tous,
    J'ai installé le package : anouarabdsslm/laravel-paypalpayment
    https://github.com/anouarabdsslm/laravel-paypalpayment

    J'ai ensuite suivi sont tuto youtube et quand je clique sur mon bouton commandé, je tombe sur cette erreur :

    PayPalConnectionException in PayPalHttpConnection.php line 154: Got Http response code 500 when accessing https://api.sandbox.paypal.com/v1/payments/payment/payment.

    Savez-vous d'où cela peut venir ?

    Merci et bonne journée =)

  • Avatar de Romu
    Membre depuis :
    23/02/2017
    Messages :
    25

    Salut,

    Sans voir ton code c'est un peu compliqué de te répondre ..
    Cependant ..avec les elements que tu donnes .. : Tu as une erreur 500 donc c'est qu'il y a une erreur interne du serveur ..
    Tu as vérifier les id de connection à paypal ? tu as bien pris ceux de la sansdbox pas du live ? tu as creer une clé api sur paypal ?

    Enfin .. il peut y avoir moulte raison pour que ca marche pas.. donc bon :x

  • Avatar de Thomas
    Membre depuis :
    16/11/2014
    Messages :
    64

    Salut,
    Je reviens à vous, alors voilà, j'ai essayé d'intégrer mon panier au package et j'ai l'erreur :
    Class 'cart' not found

    Alors que j'ai tous biens insérés (je le pense)

    c'est ma première e-boutique et je ne trouve pas de tuto avec ce bundle, mais il est top github voilà mon code :

    PaypalPaymentController :

    <?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use App\Http\Requests;
    use Paypalpayment;
    use cart;

    use Auth;
    use Closure;
    use Illuminate\Support\Collection;
    use Illuminate\Session\SessionManager;
    use Illuminate\Database\DatabaseManager;
    use Illuminate\Contracts\Events\Dispatcher;
    use Gloudemans\Shoppingcart\Contracts\Buyable;
    use Gloudemans\Shoppingcart\Exceptions\UnknownModelException;
    use Gloudemans\Shoppingcart\Exceptions\InvalidRowIDException;
    use Gloudemans\Shoppingcart\Exceptions\CartAlreadyStoredException;
    use Gloudemans\Shoppingcart\Contracts\Taxable;

    class PaypalPaymentController extends Controller
    {
    /*
    object to authenticate the call.
    @param object $_apiContext
    /
    private $_apiContext;
    /*
    Set the ClientId and the ClientSecret.
    @param
    string $_ClientId
    string $_ClientSecret
    /
    private $_ClientId='ASjQ7TmNaR7PYSHK2Sx4wFk5l8NfkZpODgKQqBHHfD9cfQIMITOojy0PTI4ASWk4HJxB4LhwASicTeji-etMEY';
    private $_ClientSecret='EKFYgkKwlqXOUet4R_jRUVTZs99ZX3Gqnkm_5a0Q1Bd73E34GlhaZ1Vc3TP769xVPMBXGUa3EgPvfTmt';

    /
    These construct set the SDK configuration dynamiclly,
    If you want to pick your configuration from the sdk_config.ini file
    make sure to update you configuration there then grape the credentials using this code :
    $this->_cred= Paypalpayment::OAuthTokenCredential();
    /
    function __construct()
    {
    // ### Api Context
    // Pass in a ApiContext object to authenticate
    // the call. You can also send a unique request id
    // (that ensures idempotency). The SDK generates
    // a request id if you do not pass one explicitly.

    $this->_apiContext = Paypalpayment::apiContext(config('paypal_payment.Account.ClientId'),config('paypal_payment.Account.ClientSecret'));
    }

    /
    Display form to process payment using credit card
    */
    public function create()
    {

    $panier = Cart::content();
    return View::make('payment.order', ['panier' => $panier]);
    }

    public function store()
    {

    $panier = Cart::content();
    $array = array();
    // ### Payer
    // A resource representing a Payer that funds a payment
    // For paypal account payments, set payment method
    // to 'paypal'.
    $payer = Paypalpayment::payer();
    $payer->setPaymentMethod("paypal");

    // ### Itemized information
    // (Optional) Lets you specify item wise
    // information

    foreach ($panier as $cart) {

    $item = new Item();
    $item->setName($cart->titreproduit)
    ->setCurrency('EUR')
    ->setQuantity($cart->qty)
    ->setPrice($cart->prixht);

    array_push($array, $item);

    }

    $itemList = Paypalpayment::itemList();
    $itemList->setItems(array($item));

    $details = Paypalpayment::details();
    $details->setShipping('1.2')
    ->setTax('1.3')
    //total of items prices
    ->setSubtotal('17.5');

    // ### Additional payment details
    // Use this optional field to set additional
    // payment information such as tax, shipping
    // charges etc.
    $details = Paypalpayment::details();
    $details->setShipping(1.2)
    ->setTax(1.3)
    ->setSubtotal(17.50);

    // ### Amount
    // Lets you specify a payment amount.
    // You can also specify additional details
    // such as shipping, tax.
    $amount = Paypalpayment::amount();
    $amount->setCurrency("USD")
    ->setTotal(20)
    ->setDetails($details);

    // ### Transaction
    // A transaction defines the contract of a
    // payment - what is the payment for and who
    // is fulfilling it.
    $transaction = Paypalpayment::transaction();
    $transaction->setAmount($amount)
    ->setItemList($itemList)
    ->setDescription("Payment description")
    ->setInvoiceNumber(uniqid());

    // ### Redirect urls
    // Set the urls that the buyer must be redirected to after
    // payment approval/ cancellation.
    $baseUrl = "http://localhost:8000";
    $redirectUrls = Paypalpayment::redirectUrls();
    $redirectUrls->setReturnUrl("{$baseUrl}/callback?success=true")
    ->setCancelUrl("{$baseUrl}/callback?success=false");

    // ### Payment
    // A Payment Resource; create one using
    // the above types and intent set to 'sale'
    $payment = Paypalpayment::payment();
    $payment->setIntent("sale")
    ->setPayer($payer)
    ->setRedirectUrls($redirectUrls)
    ->setTransactions(array($transaction));

    // ### Create Payment
    // Create a payment by calling the 'create' method
    // passing it a valid apiContext.
    // (See bootstrap.php for more on ApiContext)
    // The return object contains the state and the
    // url to which the buyer must be redirected to
    // for payment approval
    try {
    $payment->create($this->apiContext);
    } catch (\Exception $ex) {
    \Log::error($ex);
    }

    // ### Get redirect url
    // The API response provides the url that you must redirect
    // the buyer to. Retrieve the url from the $payment->getApprovalLink()
    // method
    $approvalUrl = $payment->getApprovalLink();
    echo "Created Payment Using PayPal. Please visit the URL to Approve.Payment <a href={$approvalUrl}>{$approvalUrl}</a>";
    var_dump($payment);
    }

    /
    Use this call to get a list of payments.
    url:payment/
    /
    public function index()
    {
    echo "<pre>";

    $payments = Paypalpayment::getAll(array('count' => 1, 'start_index' => 0), $this->_apiContext);

    dd($payments);
    }

    /
    Use this call to get details about payments that have not completed,
    such as payments that are created and approved, or if a payment has failed.
    url:payment/PAY-3B7201824D767003LKHZSVOA
    /

    public function show($payment_id)
    {
    $payment = Paypalpayment::getById($payment_id,$this->_apiContext);

    dd($payment);
    }

    }

    La view avec le bouton commandé (je ne mets que le bout de code pour commander) :

    {{ Form::open(array('url' => 'payment', 'method' => 'post', 'class' => 'form-horizontal', 'id'=>'form')) }}

    <button class="btn waves-effect waves-light #A4BB2F darken-2" type="submit" style="width: 264%;">Commander
    <i class="material-icons right">done</i>
    </button>
    {{FORM::close()}} <br>

    Et ma route :

    Route::resource('payment','PaypalPaymentController');

    Si vous savez pourquoi je reçois l'erreur class not found ?
    Merci et bonne journée

  • Avatar de Romu
    Membre depuis :
    23/02/2017
    Messages :
    25

    Sans regardé tout ton code, il me semble que tu as un probleme déjà avec une de tes classe, pas avec paypal pour le moment..
    Il ne trouve pas la classe cart.. Elle se trouve trouve ou dans ton projet ? peut être voir du coté de tes USE ... ?

    En suite pour paypal, j'avais aussi essayer de passer par un package tiers, et en fait je me suis rapatrié sur le sdk de paypal directement c'est tout aussi simple à mettre en place j'ai trouvé, j'avais des besoins plus simple .. mais c'est une autre histoire..

  • Avatar de Thomas
    Membre depuis :
    16/11/2014
    Messages :
    64

    J'ai réussi à tous débuger et j'arrive à la page paiement Paypal, mais dès que je connecte mon compte et paye, je suis redirigé sur une page 404 "ma page introuvable" mais même en retirant ou modifiant mes redirections ça ne marche pas ! PS : j'ai changé de package et c'est plus facile.

  • Avatar de Romu
    Membre depuis :
    23/02/2017
    Messages :
    25

    Norlamement la page de redirection c'est un parametre par rapport a paypal .. un truc du genre return_url = 'blabla.php'
    Mais pareil sans ton code c'est pas facile ;)

  • Avatar de Thomas
    Membre depuis :
    16/11/2014
    Messages :
    64

    J'ai réussis tous marche niquel à présent, merci :)

Vous ne pouvez pas répondre à ce sujet.