2017-01-17 2 views
-1

Вы, ребята, знаете, как реализовать paypal с laravel 5.3? Я искал некоторую информацию, но я не уверен в этом. Если вы знаете о каком-либо учебном курсе, пожалуйста, дайте мне знать.
Спасибо!Paypal с Laravel 5.3

+1

Этого недостаточно, так как есть много пакетов, которые помогут облегчить работу с API PayPal. Различные пакеты могут принести пользу вам более или менее на основе логики, требуемой от вашего веб-сайта/приложения. Я предлагаю просмотреть некоторые пакеты github и задать вопрос более конкретно о том, который вы выбрали. https://www.google.ca/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=paypal%20laravel%20github. Кроме того, если вы просто ищете поставщика платежей и не привязаны к Paypal, я бы посмотрел на Stripe. https://laracasts.com/series/billing-with-stripe – MMMTroy

+0

Вопросы, предлагающие нам ** рекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой ресурс вне сайта **, не относятся к теме для переполнения стека как они склонны привлекать упрямые ответы и спам. Вместо этого [описать проблему] (http://meta.stackoverflow.com/questions/254393) и что было сделано до сих пор, чтобы решить эту проблему. –

ответ

1

Для моего личного опыта я использовал Paypal PHP SDK link here

Я также построил помощник, содержащий интеграцию, которую я поделюсь здесь. Это полный поток, и есть шаги, которые я бы посоветовал прочитать.

class PaypalHelper { 

    private $apiContext; 
    protected $payer; 
    protected $transaction; 
    protected $payment; 
    protected $redirectUrls; 

    /** 
    * Instantiate a new helper instance. 
    * 
    * @return void 
    */ 
    public function __construct() { 
    $this->payer = new Payer(); 
    $this->transaction = new Transaction(); 
    $this->redirectUrls = new RedirectUrls(); 
    $this->payment = new Payment(); 
    $this->redirectUrls = new RedirectUrls(); 

    $this->apiContext = new \PayPal\Rest\ApiContext(
     new \PayPal\Auth\OAuthTokenCredential(
     config('paypal')['client_id'], 
     config('paypal')['secret'] 
     ) 
    ); 

    $this->apiContext->setConfig(
     config('paypal')['settings'] 
    ); 
    } 

    /** 
    * Get api context. 
    * 
    * @return void 
    */ 
    public function getApiContext() { 
    return $this->apiContext; 
    } 

    /** 
    * Set payment method. 
    * 
    * @return void 
    */ 
    public function setPaymentMethod($method) { 
    $this->payer->setPaymentMethod($method); 
    } 

    /** 
    * Set funding instrument. 
    * 
    * @return void 
    */ 
    public function setFundingInstrument($fi) { 
    $this->payer->setFundingInstruments([$fi]); 
    } 

    /** 
    * Set redirect urls. 
    * 
    * @return void 
    */ 
    public function setRedirectUrls($return_url, $cancel_url) { 
    $this->redirectUrls 
     ->setReturnUrl($return_url) 
     ->setCancelUrl($cancel_url); 
    } 

    /** 
    * Build product list. 
    * 
    * @return void 
    */ 
    public function buildProductList($products) { 
    $productList = new ItemList(); 

    $products->each(function($product, $key) use ($productList) { 
     $item = new Item(); 
     $description = ''; 

     $product->attributes->each(function($attribute, $key) use (&$description) { 
     if(!is_object($attribute)) { 
      if($key !== 0) { 
      $description = $description . ' | ' . $attribute; 
      } else { 
      $description = $attribute; 
      } 
     } 
     }); 

     $item->setName($product->name) 
     ->setDescription($description) 
     ->setCurrency('EUR') 
     ->setQuantity($product->quantity) 
     ->setSku($product->reference) 
     ->setPrice($product->price); 

     $productList->addItem($item); 
    }); 

    return $productList; 
    } 

    /** 
    * Calculate details 
    * 
    * @return Response 
    */ 
    public function calculateDetails($totals) { 
    $details = new Details(); 

    $details->setShipping(0) 
     ->setTax(0) 
     ->setSubtotal($totals['total']); 

    return $details; 
    } 

    /** 
    * Calculate total amount 
    * 
    * @return Response 
    */ 
    public function calculateTotalAmount($totals, $details) { 
    $amount = new Amount(); 

    $total = $details->getTax() + $details->getShipping() + $totals['total']; 

    $amount->setCurrency('EUR') 
     ->setTotal($total) 
     ->setDetails($details); 

    return $amount; 
    } 

    /** 
    * Build transaction. 
    * 
    * @return void 
    */ 
    public function buildTransaction($amount, $productList) { 
    $this->transaction 
     ->setAmount($amount) 
     ->setItemList($productList) 
     ->setDescription('') 
     ->setInvoiceNumber(uniqid()); 

    return $this->transaction; 
    } 

    /** 
    * Build payment. 
    * 
    * @return void 
    */ 
    public function buildPayment() { 
    $this->payment 
     ->setIntent('sale') 
     ->setPayer($this->payer) 
     ->setRedirectUrls($this->redirectUrls) 
     ->setTransactions([$this->transaction]); 

    return $this->payment; 
    } 
} 

Я бы рассмотрел примеры, которые они имеют в своей документации. Если вы хотите посмотреть проект, вы можете проверить его here. Надеюсь это поможет.

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

  • Нет связанных вопросов^_^