授权失败
这是我的代码:
$gateway = Omnipay::create('PayPal_Express');
// Initialise the gateway
$gateway->initialize(array(
'clientId' => 'AZzCeImpURKHH0LIFSBTrEWGY-NKLCnUUQdHT049pRLvwBXg9BnlpbnsiGLPFQH43DU4eL-Qi96nrZU6',
'secret' => 'EFP_mny9dfaaAfW1oyNM8R05weA5eIkU51KUSAdbvcoh3v4bo7txRBm-uzDZ2nOlZ0KmqS-JalgujFok',
'testMode' => true, // Or false when you are ready for live transactions
));
// Do an authorisation transaction on the gateway
$transaction = $gateway->authorize(array(
'returnUrl' => 'http://client.com',
'cancelUrl' => 'http://localhost:8000/cancel',
'amount' => '10.00',
'currency' => 'AUD',
'description' => 'This is a test authorize transaction.',
// 'card' => $card,
));
$response = $transaction->send();
if ($response->isSuccessful()) {
// Find the authorization ID
$authResponse = $response->getTransactionReference();
echo "Authorize transaction was successful!'n" . $authResponse;
} else {
echo "Failed to auth transaction";
dd($response);
}
// Once the transaction has been approved, we need to complete it.
$transaction = $gateway->completePurchase(array(
'payerId' => $request->PayerID,
'transactionReference' => $authResponse
));
$finalResponse = $transaction->send();
dd($finalResponse);
if ($finalResponse->getData()) {
echo "Transaction was successful!'n";
// Find the authorization ID
$results = $finalResponse->getTransactionReference();
dd($results);
} else {
dd($finalResponse->getData());
}
我正在尝试使用我的 laravel 应用程序设置PayPal发送框。这段代码在 get 方法中,当我调用它时,我得到:
Failed to auth transaction
ExpressAuthorizeResponse {#354 ▼
#liveCheckoutEndpoint: "https://www.paypal.com/cgi-bin/webscr"
#testCheckoutEndpoint: "https://www.sandbox.paypal.com/cgi-bin/webscr"
#request: ExpressAuthorizeRequest {#349 ▶}
#data: array:9 [▼
"TIMESTAMP" => "2016-02-12T15:06:21Z"
"CORRELATIONID" => "68efe51d8aca6"
"ACK" => "Failure"
"VERSION" => "119.0"
"BUILD" => "18308778"
"L_ERRORCODE0" => "10002"
"L_SHORTMESSAGE0" => "Authentication/Authorization Failed"
"L_LONGMESSAGE0" => "You do not have permissions to make this API call"
"L_SEVERITYCODE0" => "Error"
]
}
有人知道问题是什么吗?谢谢
返回
的错误代码是 10002:"L_ERRORCODE0" => "10002"
PayPal API 错误和警告代码文档指出:
此错误可能是由不正确的 API 用户名、不正确的 API 密码或无效的 API 签名。确保所有三个 这些值是正确的。为了您的安全,PayPal不会报告 确切地说,这三个值中的哪一个可能是错误的。
API 用户名和/或密码错误。 重置这些,然后重试。
传递给 initialize()
方法的数组结构适用于 REST API。
改变:
$gateway = Omnipay::create('PayPal_Express');
自:
$gateway = Omnipay::create('PayPal_Rest');
可以通过调用getDefaultParameters()
方法来获取可用参数的列表。
对于PayPal_Rest
,它将为您提供:
array:4 [▼
"clientId" => ""
"secret" => ""
"token" => ""
"testMode" => false
]
而这PayPal_Express
:
array:10 [▼
"username" => ""
"password" => ""
"signature" => ""
"testMode" => false
"solutionType" => array:2 [▶]
"landingPage" => array:2 [▶]
"brandName" => ""
"headerImageUrl" => ""
"logoImageUrl" => ""
"borderColor" => ""
]