【发布时间】:2018-11-19 00:51:30
【问题描述】:
我们想通过 webhook 创建退款,但退款金额似乎是退款金额的三倍。
下面是我们的代码,它只触发一次。
$order_id = (isset($_REQUEST["order_id"]) && strlen($_REQUEST["order_id"]) > 0) ? intval($_REQUEST["order_id"]) : false;
$amount = (isset($_REQUEST["amount"]) && strlen($_REQUEST["amount"]) > 0) ? floatval($_REQUEST["amount"]) : false;
$reason = (isset($_REQUEST["reason"]) && strlen($_REQUEST["reason"]) > 0) ? $_REQUEST["reason"] : false;
if ($order_id) {
$order = wc_get_order($order_id);
if ($order->get_remaining_refund_amount() >= $amount) {
$refund = wc_create_refund(array(
'amount' => $amount,
'reason' => $reason,
'order_id' => $order_id,
'refund_payment' => true
));
if (is_wp_error($refund)) {
if ($refund->get_error_message() == 'Invalid refund amount.') {
echo 'Refund requested exceeds remaining order balance of ' . $order->get_formatted_order_total();
} else {
echo $refund->get_error_message();
}
} else {
echo $refund->get_id();
}
} else {
echo 'Refund requested exceeds remaining order balance of ' . $order->get_formatted_order_total();
}
}
但正如您从下面的截图中看到的那样,退款价值似乎是原来的三倍,但不知道为什么
谁能解释一下为什么会发生这种情况。
请求以带有唯一密钥标识符的 post http 请求的形式出现。例如
https://example.com/process-refunds/?key=ff5f61b5a9d6ff2a5d7fb9fc815113d4&order_id=1234&amount=100&reason=Testing
【问题讨论】:
-
您是通过 WooCommerce 挂钩还是直接调用它?
-
@OutsourceWordPress 我通过外部发布请求直接调用它
-
做一件事-尝试在
init钩子中调用相同的脚本并确认它是否工作正常?我没有发现你的代码有什么问题。如果您需要完整的代码,请告诉我。 -
@OutsourceWordPress 正在测试
-
@OutsourceWordPress 问题仍然存在
标签: wordpress woocommerce stripe-payments