Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Omnipay将PayPal REST API集成到Laravel中-需要卡参数_Php_Rest_Laravel_Paypal_Omnipay - Fatal编程技术网

Php 使用Omnipay将PayPal REST API集成到Laravel中-需要卡参数

Php 使用Omnipay将PayPal REST API集成到Laravel中-需要卡参数,php,rest,laravel,paypal,omnipay,Php,Rest,Laravel,Paypal,Omnipay,我正在使用L5,希望将我购买的PayPal集成到该系统中。沙箱已经设置好,我可以使用真正的PayPal API包进行所有支付,但由于我想尝试使用Omnipay进行支付,我有点挣扎: 当我执行此代码时: Route::get('test', function() { $gateway = Omnipay::create('PayPal_Rest'); $gateway->setClientId('{my id}'); $gateway->setSecret('{my secret}')

我正在使用L5,希望将我购买的PayPal集成到该系统中。沙箱已经设置好,我可以使用真正的PayPal API包进行所有支付,但由于我想尝试使用Omnipay进行支付,我有点挣扎:

当我执行此代码时:

Route::get('test', function()
{
$gateway = Omnipay::create('PayPal_Rest');
$gateway->setClientId('{my id}');
$gateway->setSecret('{my secret}');
$gateway->setTestMode(true);

$params = array(
    'cancelUrl' => 'http://webshop.app',
    'returnUrl' => 'http://webshop.app/testresp',
    'name'  => 'Your Purchase',
    'description' => 'Your Description',
    'amount' => '15.99',
    'currency' => 'EUR'
);

Session::put('params', $params);
Session::save();

$resp = $gateway->purchase($params)->send();

if ($resp->isSuccessful()) {
    // payment was successful: update database
    print_r($resp);
} elseif ($resp->isRedirect()) {
    // redirect to offsite payment gateway
     $resp->redirect();
} else {
    // payment failed: display message to customer echo
     $resp->getMessage();
}
});
我明白了: AbstractRequest.php第122行中的InvalidRequestException: 卡片参数是必需的

似乎我必须用客户的信用卡信息开始购买,我不想收集这些信息(因此首先使用PayPal)。有没有办法不用信用卡就能使用API


我不喜欢使用Express API,因为我不希望在代码中包含我的PayPal用户名和密码。有几个原因。

卡阵列字段是必需的。不需要插入信用卡号,但您需要提供一些信息

从官方文件:

即使是非现场网关也会使用信用卡对象,因为您通常需要将客户账单或发货详细信息传递给网关。


查看omnipay paypal网关代码my fork的以下分支:

这包括允许您不通过信用卡并让PayPal进行支付处理的代码


我已经提交了一份PR,但它还没有被合并到omnipay paypal的主存储库中。

好吧,没有使用的例子,在我看来,它只是分叉的omnipay。与最初的omnipay相比,它有什么不同之处?它已经合并到主分支中,因此请查看docblocks类中的用法和示例