1

我们已经使用PHP支付条形支付。它在本地机器上工作,但在实时服务器中,它不像预期的那样工作。我们分享了我们使用的代码,并附上错误的屏幕截图。不知道我们犯了什么错误,你能指导我们吗?条纹支付SSL协议错误WordPress

条纹代码:

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' => '[email protected]', 
     'source' => $token 
)); 

    $charge = Stripe_Charge::create(array(
     'customer' => $customer->id, 
     'amount' => 5000, 
     'currency' => 'usd' 
)); 

    echo '<h1>Successfully charged $50.00!</h1>'; 

} 

本地计算机

Local Machine output result

Live服务器

Live Server error report

回答

0

1)它看起来像有可能你没有复制的data文件夹附带的条带php绑定到您的服务器---这包含failed loading cafile错误中引用的ca-certificates.crt文件。确保该文件夹存在于您的服务器上,并查看是否可以解决问题!

2)如果您仍然遇到问题,则可能是您的服务器无法通过TLS 1.2与Stripe进行通信。从你的语法看来,你使用的是旧版本的Stripe的PHP库,所以你需要在这里使用第二个示例test that

如果curl能够首先创建TLS 1.2连接,那么您还可以运行测试脚本like this以帮助确定您的libcurl和openssl版本。如果你需要升级卷曲和openssl一些有用的建议是here。您也可以在此问题上与您的系统管理员或网络主持人聊天。