所以我试图使用Mollie为学校项目支付虚假的考试费用。付款和付款后的重定向工作正常,但似乎没有调用 Webhook.php。这是付款脚本中发生的情况:
$payment = $mollie->payments->create([
"amount" => [
"currency" => "EUR",
"value" => "7.50"
],
"description" => "Ad Highlight",
"redirectUrl" => "https://[mysite]/redirect.php [working]",
"webhookUrl" => "https://[mysite]/webhook.php"]);
这是网络钩子的样子:
$servername = "localhost";
$username = "[workingusername]";
$password = "[workingpassword]";
$dbname = "[workingDB]";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO test (te)
VALUES ('TEST')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
require_once("mollie/vendor/autoload.php");
require_once("mollie/examples/functions.php");
$mollie = new MollieApiMollieApiClient();
$mollie->setApiKey("[validkey]");
$payment = $mollie->payments->get($_POST["id"]);
$orderId = $payment->metadata->order_id;
/*
* Update the order in the database.
*/
database_write($orderId, $payment->status);
if ($payment->isPaid() && !$payment->hasRefunds() && !$payment->hasChargebacks()) {
/*
* The payment is paid and isn't refunded or charged back.
* At this point you'd probably want to start the process of delivering the product to the customer.
*/
}
如您所见,我进行了测试查询,只是为了检查 webhook 是否正在执行任何操作。当我打开浏览器并直接转到 webhook.php 文件时。它实际上执行查询,我可以在数据库中看到它。因此,我得出结论,Webhook 文件没问题,但由于某种原因,Mollie 在付款后不会调用它。
我也找不到任何错误日志或任何内容。该网站由Directadmin控制,它确实有一个错误日志,但也没有有用的信息。
有人有什么想法吗?
我刚刚在这里遇到了你的问题,作为 Mollie 的员工,我能够在我们的系统中找到您的测试付款。事实证明,您的SSL证书无效。错误消息显示:
SSL: certificate subject name 'localhost' does not match target host name '[mysite]'
如果您需要更多信息,可以随时联系Mollie支持。对于技术问题,电子邮件通常效果最好。
在您的付款脚本中,您只创建付款,但您实际上是否对响应执行任何操作并将用户重定向到给定的 URL(在 _links.checkout 中(以实际开始实际付款?
有关 API 响应的参考,请参阅 https://docs.mollie.com/reference/v2/payments-api/create-payment,有关付款流程使用的流的概述,请参阅 https://docs.mollie.com/payments/overview!