我使用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();
}
});
我明白了:
InvalidRequestException in AbstractRequest.php line 122:
The card parameter is required
似乎我不得不用客户的信用卡信息开始购买,我不想收集(因此首先使用PayPal)。有没有办法在不使用信用卡的情况下使用该API?
我不喜欢Express API的使用,因为我不想在我的代码中使用我的PayPal用户名和密码。有几个原因。
答案 0 :(得分:1)
需要卡阵列字段。它不需要插入信用卡号,但您需要提供一些信息。
来自官方文档:
即使是非现场网关也会使用CreditCard对象,因为您需要将客户结算或运送详细信息传递到网关。
答案 1 :(得分:0)
查看我的omnipay-paypal网关代码分支的以下分支:https://github.com/delatbabel/omnipay-paypal/tree/accept-paypal-payments
包括允许您不通过信用卡并让PayPal进行付款处理的代码。
我已经提交了PR,但它还没有合并到主要的omnipay-paypal存储库中。