我正在尝试使用Stripe在一个小网站上处理一些付款。
在当地,一切都很好:我所有的测试都很好。问题出现在网站上:我可以获得一个令牌(来自javascript),但是php端的\Stripe\Charge::create
是错误的,我无法找出原因。
这是一些信息:
# Making Stripe works
require_once(dirname(__FILE__).'/stripe/init.php');
# Set API Key (Both Live and Test keys don't work)
\Stripe\Stripe::setApiKey("sk_test_****");
# Trying to charge
# $token is defined from the $_POST and works great ($amount and $metas are fine too)
try {
$charge = \Stripe\Charge::create(
array(
'amount' => $amount,
'currency' => 'eur',
'source' => $token,
'metadata' => $metas
)
);
// Blabla
} catch(\Stripe\Error\Card $e) {
// Catching card error
} catch (\Stripe\Error\RateLimit $e) {
// Catching RateLimit API error
} catch (\Stripe\Error\InvalidRequest $e) {
// Catching invalid request (missing param or else)
} catch (\Stripe\Error\Authentication $e) {
// Catching fail authentification from API KEY for example
} catch (\Stripe\Error\ApiConnection $e) {
// Catching fail APIConnection
// The error seems related to this because the catch is done here !
} catch (\Stripe\Error\Base $e) {
// Catching base error
} catch (Exception $e) {
// Catching other errors
}
在本地它工作得很好,但在实时服务器上它捕获\Stripe\Error\ApiConnection
上的错误(一段时间后)没有真正的信息。
#$e contains :
"httpStatus":null,
"httpBody":null,
"jsonBody":null,
"httpHeaders":null,
"requestId":null,
"stripeCode":null
这不是一个很好的迹象。
除了gettin'令牌部分(效果很好),我在Stripe的Dashboard的日志中没有任何关于此计费试用的内容。看起来Stripe从未收到请求。
我试图从我的服务器ping qazxsw poi,效果很好。
本地站点和实时站点上的代码是相同的,条带键可以很好地复制/粘贴(它适用于本地,所以......)。
我的Stripe的帐户是有效的,所以我可以使用Live Keys(但实时和测试密钥都不像我说的那样工作)。
API是最新的。
我不知道在哪里搜索:我联系了Stripe的支持,我还在等待答案。
谢谢你的兴趣......
因此,在与@YvesLeBorg(感谢man)和大量研究进行了一次谈话之后,我终于能够通过将其添加到我的iptables规则文件中来完成所有这些工作:
api.stripe.com
根据我的理解,它允许任何本地发起的流量。正如你所看到的,我对这些事情并不是很擅长,所以如果有人认为这是错误的(即使这是使所有这些工作成功的唯一因素),请告诉我。