vue.js WooCommerce REST API:创建订单并生成付款链接

bkhjykvo  于 2023-03-19  发布在  Vue.js
关注(0)|答案(1)|浏览(205)

我想用VueJS应用程序替换默认的WooCommerce结帐页面。
到目前为止,我已经设法:
1.使用钩子来替换默认的 checkout 字段与vue应用程序
1.收集客户信息、购物车、发货和付款方式
1.使用WooCommerce REST API创建订单
API在成功时返回payment_url,但是,该URL类似于
HOST/checkout/order-pay/36/?pay_for_order=true&key=wc_order_AS4LMhlgr7fgi
理想情况下,我希望这是支付网关的URL,这样我就可以指导客户完成付款。我希望,因为我发送订单详细信息的支付网关,WooCommerce将处理订单,如果未支付将返回支付网关链接。
我是否从错误的Angular 着手?这是可行的,还是我必须集成每个支付网关,并通过它们的API发送请求/管理状态?

ao218c7q

ao218c7q1#

所以,我通过WooCommerce挖掘,看看他们是如何做到的,最终使用了类似的东西。希望它能帮助到一些人。

$order_id = $_REQUEST['order_id'];
$payment_method = $_REQUEST['payment_method'];

$available_gateways = WC()->payment_gateways->get_available_payment_gateways();
if ( ! isset( $available_gateways[ $payment_method ] ) ) {
    return;
}

// Store Order ID in session so it can be re-used after payment failure.
WC()->session->set( 'order_awaiting_payment', $order_id );

// Process Payment.
$result = $available_gateways[ $payment_method ]->process_payment( $order_id );

// Redirect to success/confirmation/payment page.
if ( isset( $result['result'] ) && 'success' === $result['result'] ) {
    $result['order_id'] = $order_id;

    $result = apply_filters( 'woocommerce_payment_successful_result', $result, $order_id );

    if ( ! wp_doing_ajax() ) {
        // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
        wp_redirect( $result['redirect'] );
        exit;
    }

    wp_send_json( $result );
}

相关问题