条带支付模块上的SSL证书错误

时间:2018-06-14 12:51:41

标签: php wordpress stripe-payments

我在我的网站上制作了一个使用Stripe的个人插件。我有两个问题。 首先,当verifCertSsl为true时,我有这个错误:  "错误设置证书验证位置:CAfile:CApath:/ etc / ssl / certs"。我的网站正在使用OVH和HTTPS连接。  我不知道为什么会有这个错误。当verifCertSsl方法为false时,一切正常,但没有数据安全性。

第二个问题,我如何将客户数据传递给条纹,如名字,姓氏,电子邮件,地址。我有这个:

 var form = document.getElementById('payment-form');
//add owne info
var ownerInfo = {
amount: document.querySelector('#amount'),
currency: 'eur',
owner: {
  nom: document.querySelector('#name'),
  prenom: document.querySelector('#prenom'),
  adresse: document.querySelector('#adresse'),
  zip: document.querySelector('#zip'),
  ville: document.querySelector('#ville'),
  email: document.querySelector('#email')
},
};
form.addEventListener('submit', function(event) {
event.preventDefault();

stripe.createToken(card, ownerInfo).then(function(result) {
  if (result.error) {
    // Inform the user if there was an error
    var errorElement = document.getElementById('card-errors');
    errorElement.textContent = result.error.message;
  } else {
    // Send the source to your server
    stripeTokenHandler(result.token);
  }
});

});

但我没有找回任何东西。 付款成功后,我没有收到电子邮件,而我使用" receipt_email" :

            \Stripe\Stripe::setApiKey($secret_key);

        $charge = \Stripe\Charge::create(array(
                'amount' => $amount, // $10
                'currency' => 'eur',
                'card' => $token,
                //"customer" => "cus_AFGbOSiITuJVDs",
                //"source" => "src_18eYalAHEMiOZZp1l9ZTjSU0",
                'receipt_email' => $email,
            )
        );

我使用wordpress的信息 谢谢大家

1 个答案:

答案 0 :(得分:0)

  

首先,当verifCertSsl为true时,我遇到此错误:“错误设置证书验证位置:CAfile:CApath:/ etc / ssl / certs”。我的网站正在使用OVH eand HTTPS连接。我不知道为什么我有这个错误。当verifCertSsl方法为false时,一切正常,但没有数据安全性。

此错误的常见原因是data/ca-certificates.crt文件未包含在PHP installation中,或者它具有阻止您的代码访问它的文件权限。一旦你完成了这个,你应该没问题(你的服务器和我们的API之间的SSL握手应该可以正常工作)。

  

第二个问题,我如何将客户数据传递给条纹状态   名字,姓氏,电子邮件,地址。

这里的问题是您没有正确地将地址信息传递给API。 Stripe的API具有每个属性或参数的特定名称,并且还具有英语。要传递有关标记化的地址信息,您的代码将如下所示:

var options = {
  name: document.getElementById('name').value,
  address_line1: document.getElementById('address-line1').value,
  address_line2: document.getElementById('address-line2').value,
  address_city: document.getElementById('address-city').value,
  address_state: document.getElementById('address-state').value,
  address_zip: document.getElementById('address-zip').value,
  address_country: document.getElementById('address-country').value,
};
stripe.createToken(card, options).then(setOutcome);

您可以在此处查看基本示例:https://jsfiddle.net/4o5msan0/

  

付款成功后,我没有收到电子邮件,而我使用“receipt_email”:

我认为这里的问题是你没有正确传递receipt_email$email变量可能是空的。您需要确保已从浏览器中检索此值,这意味着您的表单需要显式发布。它不会从令牌中检索。如果这样做,请记住Stripe不会在测试模式下发送电子邮件收据,只能在实时模式下发送。