Stripe 签帐卡出现致命错误 php rest api
Stripe charge card get fatal error with php rest api
我正在使用 stripe charge card api 进行卡支付。令牌已成功创建,此信息也将发送到条带服务器。但是当去收费时它给出了致命错误。
我正在使用亚马逊 ubuntu 实例来发布我的网站。
我的 php 代码是:-
$token=$this->input->post('stripeToken');
var_dump($token);
\Stripe\Stripe::setApiKey("xxx");
// Get the credit card details submitted by the form
//$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => 100, // amount in cents, again
"currency" => "usd",
"source" => $token,
"description" => "Example charge"
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
它给出了致命错误。
Fatal error: Uncaught exception 'Stripe\Error\ApiConnection' with message 'Could not connect to Stripe
(https://api.stripe.com/v1/charges). Please check your internet
connection and try again. If this problem persists, you should check
Stripe's service status at https://twitter.com/stripestatus, or let us
know at support@stripe.com. (Network error [errno 28]: Connection
timed out after 30055 milliseconds)' in
/opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/HttpClient/CurlClient.php:216
Stack trace: #0
/opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/HttpClient/CurlClient.php(178):
Stripe\HttpClient\CurlClient->handleCurlError('https://api.str...',
28, 'Connection time...') #1
/opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/ApiRequestor.php(184):
Stripe\HttpClient\CurlClient->request('post', 'https://api.str...',
Array, Array, false) #2
/opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/ApiRequestor.php(59):
Stripe\ApiRequestor->_requestRaw('post', '/v1/charges', Array, Ar in
/opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/HttpClient/CurlClient.php
on line 216
我不知道这背后的原因。
消息显示网络错误 [errno 28],这是一个 curl error,定义为 CURLE_OPERATION_TIMEDOUT 错误。这是一个连接错误。
连接错误通常是由于安全组设置和不允许出站 https,在本例中为 API 端点 (https://api.stripe.com/v1/charges)。
您可以尝试 curl https://api.stripe.com/v1/charges
并确认您可以连接吗?
您应该得到以下信息:
{
"error": {
"type": "invalid_request_error",
"message": "You did not provide an API key. You need to provide your API key in the Authorization header, using Bearer auth (e.g. 'Authorization: Bearer YOUR_SECRET_KEY'). See https://stripe.com/d
ocs/api#authentication for details, or we can help at https://support.stripe.com/."
}
}
如果您在服务器上的命令行中没有得到该响应,那么您的代码也将无法连接。检查您的传出安全组设置,并允许出站 HTTPS 到端点的 IP 或 0.0.0.0/0。
我正在使用 stripe charge card api 进行卡支付。令牌已成功创建,此信息也将发送到条带服务器。但是当去收费时它给出了致命错误。
我正在使用亚马逊 ubuntu 实例来发布我的网站。
我的 php 代码是:-
$token=$this->input->post('stripeToken');
var_dump($token);
\Stripe\Stripe::setApiKey("xxx");
// Get the credit card details submitted by the form
//$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => 100, // amount in cents, again
"currency" => "usd",
"source" => $token,
"description" => "Example charge"
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
它给出了致命错误。
Fatal error: Uncaught exception 'Stripe\Error\ApiConnection' with message 'Could not connect to Stripe (https://api.stripe.com/v1/charges). Please check your internet connection and try again. If this problem persists, you should check Stripe's service status at https://twitter.com/stripestatus, or let us know at support@stripe.com. (Network error [errno 28]: Connection timed out after 30055 milliseconds)' in /opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/HttpClient/CurlClient.php:216 Stack trace: #0 /opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/HttpClient/CurlClient.php(178): Stripe\HttpClient\CurlClient->handleCurlError('https://api.str...', 28, 'Connection time...') #1 /opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/ApiRequestor.php(184): Stripe\HttpClient\CurlClient->request('post', 'https://api.str...', Array, Array, false) #2 /opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/ApiRequestor.php(59): Stripe\ApiRequestor->_requestRaw('post', '/v1/charges', Array, Ar in /opt/lampp/htdocs/devbeacon/application/libraries/stripe/lib/HttpClient/CurlClient.php on line 216
我不知道这背后的原因。
消息显示网络错误 [errno 28],这是一个 curl error,定义为 CURLE_OPERATION_TIMEDOUT 错误。这是一个连接错误。
连接错误通常是由于安全组设置和不允许出站 https,在本例中为 API 端点 (https://api.stripe.com/v1/charges)。
您可以尝试 curl https://api.stripe.com/v1/charges
并确认您可以连接吗?
您应该得到以下信息:
{
"error": {
"type": "invalid_request_error",
"message": "You did not provide an API key. You need to provide your API key in the Authorization header, using Bearer auth (e.g. 'Authorization: Bearer YOUR_SECRET_KEY'). See https://stripe.com/d
ocs/api#authentication for details, or we can help at https://support.stripe.com/."
}
}
如果您在服务器上的命令行中没有得到该响应,那么您的代码也将无法连接。检查您的传出安全组设置,并允许出站 HTTPS 到端点的 IP 或 0.0.0.0/0。