我们使用PHP进行条带支付。它适用于本地计算机,但在实时服务器中,它没有按预期工作。我们分享了我们使用的代码,并附上了错误的屏幕截图。不确定我们在哪里犯了错误,你能指导我们吗?
条纹代码:
require_once('Stripe.php');
Stripe::setApiKey('secret key');
echo '<form action="" method="post">
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="publish key"
data-description="Access for a year"
data-amount="5000"
data-locale="auto"></script>
</form>';
if($_POST) {
$token = $_POST['stripeToken'];
$customer = Stripe_Customer::create(array(
'email' => 'customer@example.com',
'source' => $token
));
$charge = Stripe_Charge::create(array(
'customer' => $customer->id,
'amount' => 5000,
'currency' => 'usd'
));
echo '<h1>Successfully charged $50.00!</h1>';
}
本地机器
Live Server
答案 0 :(得分:0)
1)看起来您可能无法将带有条带php绑定的data
文件夹复制到您的服务器上 - 这包含ca-certificates.crt
文件中引用的failed loading cafile
文件{1}}错误。确保服务器上存在此文件夹,看看是否能解决问题!
2)如果您仍然遇到问题,则问题可能是您的服务器无法通过TLS 1.2与Stripe进行通信。从您的语法看起来,您使用的是旧版本的Stripe的PHP库,因此您希望在此处使用第二个示例test that。
如果curl能够首先建立TLS 1.2连接,您还可以运行测试脚本like this来帮助确定libcurl和openssl版本。如果您需要升级curl和openssl,一些有用的建议是here。您也可以就此问题与您的系统管理员或网络主机聊天。