我试图使用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的仪表板上没有任何关于此充电试用的日志。看起来Stripe从未收到请求。
我试图从我的服务器ping api.stripe.com
,效果很好。
本地站点和实时站点上的代码是相同的,条带键可以很好地复制/粘贴(它适用于本地,所以...)。
My Stripe的帐户已经过验证,因此我可以使用Live Keys(但实时和测试密钥都不像我说的那样工作)。
API是最新的。
我不知道在哪里搜索:我联系了Stripe的支持,我还在等待答案。
感谢您的兴趣...
答案 0 :(得分:1)
所以,在与@YvesLeBorg(感谢man)和大量研究进行了一次谈话之后,我终于能够通过将其添加到我的iptables'规则文件中来完成所有这些工作:
iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
根据我的理解,它允许任何本地发起的流量。正如你所看到的那样,我对这些事情并不是很专业,所以如果有人认为这是错误的(即使它是使所有这些工作成功的唯一因素),请告诉我。