我在我的网站上制作了一个使用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的信息 谢谢大家
答案 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不会在测试模式下发送电子邮件收据,只能在实时模式下发送。