为什么Stripe API无法在实时网站上运行?

问题描述 投票:2回答:1

我正在尝试使用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的支持,我还在等待答案。

谢谢你的兴趣......

php stripe-payments
1个回答
1
投票

因此,在与@YvesLeBorg(感谢man)和大量研究进行了一次谈话之后,我终于能够通过将其添加到我的iptables规则文件中来完成所有这些工作:

api.stripe.com

根据我的理解,它允许任何本地发起的流量。正如你所看到的,我对这些事情并不是很擅长,所以如果有人认为这是错误的(即使这是使所有这些工作成功的唯一因素),请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.