使用Omnipay和Laravel 4通过Paypal Express结账列出多个项目

plupiseo  于 2023-04-22  发布在  其他
关注(0)|答案(3)|浏览(121)

是否有可能列出所有产品在一个网站的“购物车”在贝宝。我问,因为贝宝说“描述”,而不是描述,这将是更好的比有一个综合总与无益的描述“你的篮子”

$request = $gateway->purchase([
            'amount' => '150.00',
            'currency' => 'GBP',
            'description' => 'Your basket',
            'returnUrl' => 'http://localhost:8080/checkout/success',
            'cancelUrl' => 'http://localhost:8080/checkout/cancel'
        ])->send();

文档是模糊的,或者我可能忽略了这种可能性,但我已经尝试过了:

$request = $gateway->purchase([
                'amount' => array('100','200'),
                'currency' => 'GBP',
                'description' => array('prod1','prod2'),
                'returnUrl' => 'http://localhost:8080/checkout/success',
                'cancelUrl' => 'http://localhost:8080/checkout/cancel'
            ])->send();

&
$request = $gateway->purchase([data],[data])->send();
其中数据遵循上述布局。

w1e3prcc

w1e3prcc1#

$gateway = Omnipay\Omnipay::create('PayPal_Express');
$gateway->setUsername('....');
$gateway->setPassword('....');
$gateway->setSignature('.....');
$items = new Omnipay\Common\ItemBag();

$items->add(array(
            'name' => 'prova',
            'quantity' => '1',
            'price' => 40.00,
));
$items->add(array(
            'name' => 'prova 2',
            'quantity' => '1',
            'price' => 10.00,
));
$response = $gateway->purchase(
            array(
                'cancelUrl'=>'http://.../pay/',
                'returnUrl'=>'http://.../pay/return_to_site',
                'amount' =>  50.00,
                'currency' => 'EUR'
            )
)->setItems($items)->send();
$response->redirect();
mbjcgjjk

mbjcgjjk2#

项目信息指定项目信息

$item_1 = new Item(); 
$item_1->setName( 'Item 1') /** item name **/
                        ->setCurrency( 'USD') 
                        ->set Quantity(1)
                        ->setPrice($request->get('amount')); /** unit price **/ 
$item_list = new ItemList();
              $item_list->setItems(array($item_1));

金额您可以指定付款金额,也可以指定运费、税费等附加费用。

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

交易交易定义了支付合同-支付的是什么以及谁来履行它。

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

了解更多关于ref

yrefmtwq

yrefmtwq3#

我发现了这个post on Github,它解释了这是如何实现的。
添加了setItems函数,以便可以像这样传递项目数组:

$request = $gateway->purchase([
            'amount'=>'70.00',
            'returnUrl' => 'http://localhost:8080/checkout/success',
            'cancelUrl' => 'http://localhost:8080/checkout/cancel'
        ])->setItems(array(
            array('name' => 'item1', 'quantity' => 2, 'price' => '10.00'),
            array('name' => 'item2', 'quantity' => 1, 'price' => '50.00')
        ))->send();

需要注意

如果购买金额不等于项目数组的总和,则请求将失败。

相关问题