Вы, ребята, знаете, как реализовать paypal с laravel 5.3? Я искал некоторую информацию, но я не уверен в этом. Если вы знаете о каком-либо учебном курсе, пожалуйста, дайте мне знать.
Спасибо!Paypal с Laravel 5.3
-1
A
ответ
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. Надеюсь это поможет.
Этого недостаточно, так как есть много пакетов, которые помогут облегчить работу с 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
Вопросы, предлагающие нам ** рекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой ресурс вне сайта **, не относятся к теме для переполнения стека как они склонны привлекать упрямые ответы и спам. Вместо этого [описать проблему] (http://meta.stackoverflow.com/questions/254393) и что было сделано до сих пор, чтобы решить эту проблему. –