本文整理汇总了PHP中PayPal\Api\ItemList类的典型用法代码示例。如果您正苦于以下问题:PHP ItemList类的具体用法?PHP ItemList怎么用?PHP ItemList使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ItemList类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CreateTransaction
function CreateTransaction($transactionType, $itemArray, $details)
{
$payer = new Payer();
$payer->setPaymentMethod($GLOBALS['PAYPAL']['payment_method']);
$itemList = new ItemList();
$itemList->setItems($itemArray);
$amount = new Amount();
$amount->setCurrency($GLOBALS['PAYPAL']['currency'])->setTotal(GetDetailsTotal($details))->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($itemList)->setDescription($GLOBALS['TRANSACTION_TYPE']['DONATION']['payment_desc'])->setInvoiceNumber(uniqid());
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($GLOBALS['TRANSACTION_TYPE']['DONATION']['return_url'])->setCancelUrl($GLOBALS['TRANSACTION_TYPE']['DONATION']['cancel_url']);
$payment = new Payment();
$payment->setIntent($GLOBALS['TRANSACTION_TYPE']['DONATION']['intent'])->setPayer($payer)->setRedirectUrls($redirectUrls)->setTransactions(array($transaction));
$request = clone $payment;
try {
$payment->create($GLOBALS['PAYPAL']['api_context']);
} catch (Exception $ex) {
ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex);
return false;
}
$approvalUrl = $payment->getApprovalLink();
echo $approvalUrl;
return array('request' => $request, 'payment' => $payment, 'approvalUrl' => $approvalUrl);
}
示例2: actionCheckout
public function actionCheckout()
{
if ($postData = Yii::$app->request->post()) {
$model = new Product();
$order = new Order();
$order->shipping_address = $postData['address'];
$order->city = $postData['city'];
$order->country = $postData['country'];
$order->postal_code = $postData['postal_code'];
$order->status = 0;
$order->save();
$order_id = $order->order_id;
$items = [];
foreach ($postData['qty'] as $key => $val) {
$order_detail = new OrderDetail();
$order_detail->order_id = $order_id;
$order_detail->prod_id = $postData['prod_id'][$key];
$order_detail->quantity = $postData['qty'][$key];
$order_detail->unit_price = $postData['prod_price'][$key];
$order_detail->unit_sum = $postData['prod_price'][$key] * $order_detail->quantity;
$order_detail->save();
$item = new Item();
$item->setName($postData['prod_name'][$key])->setCurrency('USD')->setQuantity($val)->setPrice($postData['prod_price'][$key]);
$items[] = $item;
}
$itemList = new ItemList();
$itemList->setItems($items);
$payment = preparePaypal($itemList);
print_r($items);
}
exit;
}
示例3: postPayment
public function postPayment($producto_id)
{
$producto = Producto::find($producto_id);
if (is_null($producto)) {
App::abort(404);
}
$productoYaComprado = User::find(Auth::user()->id)->Productos()->whereProducto_id($producto->id)->first();
if (!is_null($productoYaComprado)) {
App::abort(404);
}
\Session::put('producto_id', $producto_id);
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$items = array();
$subtotal = 0;
$currency = 'MXN';
$item = new Item();
$item->setName($producto->nombre)->setCurrency($currency)->setDescription($producto->nombre)->setQuantity(1)->setPrice($producto->precio);
$items[] = $item;
$subtotal += $producto->precio;
$item_list = new ItemList();
$item_list->setItems($items);
$details = new Details();
$details->setSubtotal($subtotal);
//->setShipping(100);
//$total = $subtotal + 100;
$total = $subtotal;
$amount = new Amount();
$amount->setCurrency($currency)->setTotal($total)->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($item_list)->setDescription('');
$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 {
return \Redirect::route('home')->with('message', 'Algo salió mal, inténtalo de nuevo más tarde.');
}
}
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('home')->with('message', 'Ups! Error desconocido. Inténtalo de nuevo más tarde.');
}
示例4: testGetters
/**
* @depends testSerializationDeserialization
* @param ItemList $obj
*/
public function testGetters($obj)
{
$this->assertEquals($obj->getItems(), ItemTest::getObject());
$this->assertEquals($obj->getShippingAddress(), ShippingAddressTest::getObject());
$this->assertEquals($obj->getShippingMethod(), "TestSample");
$this->assertEquals($obj->getShippingPhoneNumber(), "TestSample");
}
示例5: startPayment
/**
* @return Payment
* @throws CheckoutException
*/
public function startPayment()
{
$total_amount = ($this->request->amount + $this->request->tax_amount - $this->request->discount_amount) * 100;
$apiContext->setConfig(array('service.EndPoint' => "https://test-api.sandbox.paypal.com"));
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$item1 = new Item();
$item1->setName('Product1')->setCurrency('EUR')->setPrice(10.0)->setQuantity(2)->setTax(3.0);
$itemList = new ItemList();
$itemList->setItems(array($item1));
$details = new Details();
$details->setShipping(1.2)->setTax(1.3)->setSubtotal(17.5);
$amount = new Amount();
$amount->setCurrency('EUR')->setTotal(20)->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($itemList)->setDescription('Payment')->setInvoiceNumber('transactionid');
$baseUrl = getBaseUrl();
$redir = new RedirectUrls();
$redir->setReturnUrl($baseUrl . '/');
$redir->setCancelUrl($baseUrl . '/');
$payment = new Payment();
$payment->setIntent('sale')->setPayer($payer)->setRedirectUrls($redir)->setTransactions(array($transaction));
$request = clone $payment;
try {
$payment->create($apiContext);
} catch (\Exception $e) {
throw new CheckoutException('Paypal error', 500, $e);
}
$approvalUrl = $payment->getApprovalLink();
ResultPrinter::printResult("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", "<a href='{$approvalUrl}' >{$approvalUrl}</a>", $request, $payment);
return $payment;
}
示例6: init
/**
* @param PaymentInterface $payment
*/
public function init(PaymentInterface $payment)
{
$credentials = new OAuthTokenCredential($this->options['client_id'], $this->options['secret']);
$apiContext = new ApiContext($credentials);
$apiContext->setConfig(['mode' => $this->options['mode']]);
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$amount = new Amount();
$amount->setCurrency($this->options['currency']);
$amount->setTotal($payment->getPaymentSum());
$item = new Item();
$item->setName($payment->getDescription());
$item->setCurrency($amount->getCurrency());
$item->setQuantity(1);
$item->setPrice($amount->getTotal());
$itemList = new ItemList();
$itemList->addItem($item);
$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription($payment->getDescription());
$transaction->setItemList($itemList);
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($payment->getExtraData('return_url'));
$redirectUrls->setCancelUrl($payment->getExtraData('cancel_url'));
$paypalPayment = new Payment();
$paypalPayment->setIntent('sale');
$paypalPayment->setPayer($payer);
$paypalPayment->setTransactions([$transaction]);
$paypalPayment->setRedirectUrls($redirectUrls);
$paypalPayment->create($apiContext);
$payment->setExtraData('paypal_payment_id', $paypalPayment->getId());
$payment->setExtraData('approval_link', $paypalPayment->getApprovalLink());
}
示例7: credit_card
public function credit_card()
{
return "Hello?";
$card = new CreditCard();
$card->setType("visa")->setNumber("4148529247832259")->setExpireMonth("11")->setExpireYear("2019")->setCvv2("012")->setFirstName("Joe")->setLastName("Shopper");
$fi = new FundingInstrument();
$fi->setCreditCard($card);
$payer = new Payer();
$payer->setPaymentMethod("credit_card")->setFundingInstruments(array($fi));
$item1 = new Item();
$item1->setName('Ground Coffee 40 oz')->setDescription('Ground Coffee 40 oz')->setCurrency('USD')->setQuantity(1)->setTax(0.3)->setPrice(7.5);
$item2 = new Item();
$item2->setName('Granola bars')->setDescription('Granola Bars with Peanuts')->setCurrency('USD')->setQuantity(5)->setTax(0.2)->setPrice(2);
$itemList = new ItemList();
$itemList->setItems(array($item1, $item2));
$details = new Details();
$details->setShipping(1.2)->setTax(1.3)->setSubtotal(17.5);
$amount = new Amount();
$amount->setCurrency("USD")->setTotal(20)->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($itemList)->setDescription("Payment description")->setInvoiceNumber(uniqid());
$payment = new Payment();
$payment->setIntent("sale")->setPayer($payer)->setTransactions(array($transaction));
$request = clone $payment;
try {
$payment->create($apiContext);
} catch (Exception $ex) {
ResultPrinter::printError('Create Payment Using Credit Card. If 500 Exception, try creating a new Credit Card using <a href="https://ppmts.custhelp.com/app/answers/detail/a_id/750">Step 4, on this link</a>, and using it.', 'Payment', null, $request, $ex);
exit(1);
}
ResultPrinter::printResult('Create Payment Using Credit Card', 'Payment', $payment->getId(), $request, $payment);
return $payment;
}
示例8: postPayment
public function postPayment()
{
$data = array();
if (is_array(Input::get('room_id'))) {
foreach (Input::get('room_id') as $key => $val) {
$data[$key] = array('am_id' => Input::get('am_id.' . $key), 'rooms' => $val);
}
}
$data2 = array();
if (is_array(Input::get('add_Am'))) {
foreach (Input::get('add_Am') as $key => $val) {
$data2[$key] = array('am_id' => Input::get('am_id.' . $key), 'rooms' => $val);
}
}
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$name = Input::get('packname');
$price = Input::get('amount');
$input_dFrom = Input::get('package_datefrom');
$input_dTo = Input::get('package_dateto');
$input_nPax = Input::get('num_pax');
$input_fName = Input::get('fullN');
$postData = new Reservation();
$postData->dataInsertPost($name, $price, $input_dFrom, $input_dTo, $input_nPax, $input_fName, json_encode($data), 'PayPal', json_encode($data2));
$item_1 = new Item();
$item_1->setName($name)->setCurrency('PHP')->setQuantity('1')->setPrice(intval($price));
// unit price
// add item to list
$item_list = new ItemList();
$item_list->setItems(array($item_1));
$amount = new Amount();
$amount->setCurrency('PHP')->setTotal(intval($price));
$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'));
// $redirect_urls->setReturnUrl(URL::to('/dashboard/accommodation'))
// ->setCancelUrl(URL::to('/dashboard/accommodation'));
$payment = new Payment();
$payment->setIntent('Sale')->setPayer($payer)->setRedirectUrls($redirect_urls)->setTransactions(array($transaction));
try {
$payment->create($this->_api_context);
} catch (PayPal\Exception\PayPalConnectionException $e) {
echo $e->getData();
// This will print a JSON which has specific details about the error.
exit;
}
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)) {
return json_encode(['url' => $redirect_url]);
}
return Redirect::route('dashboard.packages.accommodation')->with('error', 'Unknown error occurred');
}
示例9: createPayment
/**
* Create the Payment request and process
* @return null|string The approval url to which the user has to be redirected
*/
public function createPayment()
{
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$this->validateData();
if (!is_null($this->details)) {
$this->getAmount()->setDetails($this->details);
}
$transaction = new Transaction();
$transaction->setAmount($this->getAmount())->setDescription($this->getDescription())->setInvoiceNumber($this->getInvoiceNumber());
if (count($this->itemList->getItems())) {
$transaction->setItemList($this->itemList);
}
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($this->getSuccessUrl(self::paymentMethod))->setCancelUrl($this->getCancelUrl(self::paymentMethod));
$payment = new Payment();
$payment->setIntent(self::ACTION)->setPayer($payer)->setRedirectUrls($redirectUrls)->setTransactions(array($transaction));
try {
$payment->create($this->getApiContext($this->clientId, $this->clientSecret));
} catch (\Exception $ex) {
$this->container->get('logger')->error($ex);
return null;
}
$approvalUrl = $payment->getApprovalLink();
return $approvalUrl;
}
示例10: postPayment
public function postPayment()
{
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$items = [];
$num = 1;
$total = 0;
foreach (Auth::user()->cart as $item) {
${"item_" . $num} = new Item();
${"item_" . $num}->setName($item->product->name)->setCurrency('USD')->setQuantity($item->amount)->setPrice($item->product->price);
$items[] = ${"item_" . $num};
$num++;
$total += $item->product->price * $item->amount;
}
if (Session::has('coupon')) {
$discount = $total * Session::get('coupon.discount') / 100;
$total = $total - $discount;
${"item_" . $num} = new Item();
${"item_" . $num}->setName('discount')->setCurrency('USD')->setQuantity(1)->setPrice(-$discount);
$items[] = ${"item_" . $num};
}
// add item to list
$item_list = new ItemList();
$item_list->setItems($items);
$amount = new Amount();
$amount->setCurrency('USD')->setTotal($total);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($item_list)->setDescription(Auth::user()->email);
$redirect_urls = new RedirectUrls();
$redirect_urls->setReturnUrl(route('payment.status'))->setCancelUrl(route('home'));
// ->setCancelUrl(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('/')->with('error', 'Unknown error occurred');
}
示例11: postPayment
public function postPayment()
{
$payer = new Payer();
$payer->setPaymentMethod('paypal');
// $item_1 = new Item();
// $item_1->setName('Item 1') // item name
// ->setCurrency('PHP')
// ->setQuantity('1')
// ->setPrice('0.01'); // unit price
$package1 = Input::get('packname');
$amount1 = Input::get('amount');
$item_1 = new Item();
$item_1->setName($package1)->setCurrency('PHP')->setQuantity('1')->setPrice($amount1);
// unit price
// add item to list
$item_list = new ItemList();
$item_list->setItems(array($item_1));
$amount = new Amount();
$amount->setCurrency('PHP')->setTotal($package1);
$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');
// }
// }
try {
$payment->create($this->_api_context);
} catch (PayPal\Exception\PayPalConnectionException $e) {
echo $e->getData();
// This will print a JSON which has specific details about the error.
exit;
}
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');
}
示例12: actionPay
public function actionPay($id)
{
$return = [];
$total = 0;
if (isset(Yii::$app->user->id)) {
$user = User::findOne(Yii::$app->user->id);
$race = Race::findOne($id);
if ($user && $race) {
/* paypal */
$clientId = 'AYSq3RDGsmBLJE-otTkBtM-jBRd1TCQwFf9RGfwddNXWz0uFU9ztymylOhRS';
$clientSecret = 'EGnHDxD_qRPdaLdZz8iCr8N7_MzF-YHPTkjs6NKYQvQSBngp4PTTVWkPZRbL';
$apiContext = $this->getApiContext($clientId, $clientSecret);
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$total = $race->cost;
$item1 = new Item();
$item1->setName('Inscripción ' . $race->name)->setCurrency('USD')->setQuantity(1)->setPrice($total);
/*$item1 = new Item();
$item1->setName('Ground Coffee 40 oz')
->setCurrency('USD')
->setQuantity(1)
->setPrice(7.5);
$item2 = new Item();
$item2->setName('Granola bars')
->setCurrency('USD')
->setQuantity(5)
->setPrice(2);*/
$itemList = new ItemList();
$itemList->setItems(array($item1));
$details = new Details();
/*$details->setShipping(5)
// ->setTax(1.3)
->setSubtotal($total);*/
$details->setSubtotal($total);
$amount = new Amount();
$amount->setCurrency("USD")->setTotal($total)->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($itemList)->setDescription("Inscripción en Aurasur")->setInvoiceNumber('1234567890');
$baseUrl = Url::base(true);
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($baseUrl . "/user/view?id=" . $user->id . "&r=ins")->setCancelUrl($baseUrl . "/race/pay?success=false&id=" . $id);
$payment = new Payment();
$payment->setIntent("sale")->setPayer($payer)->setRedirectUrls($redirectUrls)->setTransactions(array($transaction));
try {
$payment->create($apiContext);
} catch (Exception $ex) {
print_r($ex);
exit(1);
}
$approvalUrl = $payment->getApprovalLink();
/* --- */
}
} else {
return $this->redirect(Yii::getAlias('@web') . '/site/login?ins=' . $id);
}
return $this->render('pay', ['race' => $race, 'aurl' => $approvalUrl]);
}
示例13: pay
public function pay()
{
$payer = new Payer();
$payer->setPaymentMethod('paypal');
//agregar items de base de datos
$items = array();
$subtotal = 0;
$productos = DB::table('carrito')->Join('producto', 'carrito.ItemCode', '=', 'producto.ItemCode')->where('carrito.user_id', Auth::user()->id)->get();
//dd(Auth::user()->id);
$currency = 'MXN';
foreach ($productos as $key => $p) {
$pIva = $p->precio * 0.16;
$precioIva = $p->precio + $pIva;
$item = new Item();
$item->setName($p->ItemName)->setCurrency($currency)->setDescription($p->tipo)->setQuantity($p->cantidad)->setPrice($precioIva);
$items[$key] = $item;
$subtotal += $p->cantidad * $precioIva;
}
// add item to list
$item_list = new ItemList();
$item_list->setItems($items);
$details = new Details();
$details->setSubtotal($subtotal)->setShipping(100);
$total = $subtotal + 100;
$amount = new Amount();
$amount->setCurrency($currency)->setTotal($total)->setDetails($details);
$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')) {
return Redirect::route('carrito.failed');
exit;
} else {
return Redirect::route('carrito.failed');
}
}
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('carrito.failed');
}
示例14: postPayment
public function postPayment()
{
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$items = array();
$subtotal = 0;
$cart = \Session::get('cart');
$currency = 'MXN';
foreach ($cart as $producto) {
$item = new Item();
$item->setName($producto->name)->setCurrency($currency)->setDescription($producto->extract)->setQuantity($producto->quantity)->setPrice($producto->price);
$items[] = $item;
$subtotal += $producto->quantity * $producto->price;
}
$item_list = new ItemList();
$item_list->setItems($items);
//costo de envio de la compra
$details = new Details();
$details->setSubtotal($subtotal)->setShipping(100);
//total de envio sumando el subtotal mas el envio
$total = $subtotal + 100;
$amount = new Amount();
$amount->setCurrency($currency)->setTotal($total)->setDetails($details);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($item_list)->setDescription('Pedido de prueba con laravel para La Central Mueblera');
//la ruta para direccionar si se cancela o se envia conrectamente el pedido
$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('Ups! Algo salió mal');
}
}
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('cart-show')->with('error', 'Ups! Error desconocido.');
}
示例15: preparePayment
public static function preparePayment($payment, $domain)
{
$items = array();
$currency = null;
$total = 0;
foreach ($payment->items as $item) {
$tmpItem = new PayPalItem();
$tmpItem->setName($item->description)->setCurrency($item->currency)->setQuantity($item->quantity)->setSku($item->sku)->setPrice($item->price);
$items[] = $tmpItem;
//
$total += (double) $item->price;
$currency = $item->currency;
}
$itemList = new ItemList();
$itemList->setItems($items);
$payer = new PayPalPayer();
switch ($payment->payer->paymentMethod) {
case Payer::PAYMENT_CREDIT_CARD:
$payer->setPaymentMethod($payment->payer->paymentMethod);
$card = new PayPalCreditCard();
$card->setType($payment->payer->creditCard->type)->setNumber($payment->payer->creditCard->number)->setExpireMonth($payment->payer->creditCard->expireMonth)->setExpireYear($payment->payer->creditCard->expireYear)->setCvv2($payment->payer->creditCard->cvv2)->setFirstName($payment->payer->creditCard->firstName)->setLastName($payment->payer->creditCard->lastName);
$fi = new FundingInstrument();
$fi->setCreditCard($card);
$payer->setFundingInstruments(array($fi));
break;
case Payer::PAYMENT_PAYPAL:
$payer->setPaymentMethod($payment->payer->paymentMethod);
break;
}
$amount = new Amount();
$amount->setCurrency($currency);
$amount->setTotal($total);
$transaction = new Transaction();
$transaction->setAmount($amount)->setItemList($itemList)->setDescription($payment->description);
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($payment->returnUrl);
$redirectUrls->setCancelUrl($payment->cancelUrl);
$paypalPayment = new PayPalPayment();
$paypalPayment->setRedirectUrls($redirectUrls);
$paypalPayment->setIntent($payment->intent);
$paypalPayment->setPayer($payer);
$paypalPayment->setTransactions(array($transaction));
try {
$paypalPayment->create(static::getApiContext($domain));
return static::getPayment($paypalPayment->getId(), $domain)->then(function ($payment) use($paypalPayment) {
$payment->approvalUrl = static::getLink($paypalPayment->getLinks(), "approval_url");
return $payment;
});
} catch (PayPalConnectionException $e) {
return When::reject($e);
} catch (PayPalInvalidCredentialException $e) {
return When::reject($e);
}
}