【问题标题】:WooCommerce: why is get_transaction_id() returning empty?WooCommerce:为什么 get_transaction_id() 返回空?
【发布时间】:2021-01-26 01:01:57
【问题描述】:

我正在尝试构建自定义支付网关。这个网关的要求之一是我向他们发送一个名为merchantTransactionId 的参数。我猜这 $order->get_transaction_id() 正是我在这种情况下所需要的,但该方法返回一个空字符串。为什么?

【问题讨论】:

    标签: wordpress woocommerce payment-gateway


    【解决方案1】:

    $order->get_transaction_id() 返回一个空字符串,这意味着交易 id 未设置为订单。 先将交易id设置为选中的订单,然后检查,通过$order->get_transaction_id()获取交易id。

    $order->set_transaction_id($transaction_id);
    $order->save();
    

    其中 $transaction_id 是唯一编号。在您的情况下,您可以将其作为 MercerTransactionId。

    您可以通过 wc_get_order($order_id); 创建订单对象 ($order);

    $order = wc_get_order( $order_id );
    

    【讨论】:

    • 那么我必须手动设置交易ID吗?不是自动生成的吗?我将如何生成此交易 ID?
    • 您正在创建一个自定义支付网关,因此您可以在收到支付网关的成功响应后设置交易 ID。您可以通过适当的逻辑生成唯一的 id 并设置为事务 id。大多数支付网关都会返回一个唯一的交易 ID,您可以将此 ID 用作订单的交易 ID。
    猜你喜欢
    • 2023-03-19
    • 2017-01-17
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    • 2018-02-01
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多