'vibe_payment_session_token_failed', 'The secure payment session could not be created.', array( 'status' => 500, ) ); } $web_session_hash = hash( 'sha256', $web_session_token ); set_transient( 'vibe_pay_' . $web_session_hash, array( 'user_id' => (int) $user_id, 'order_id' => (int) $order->get_id(), 'order_key' => (string) $order_key, ), 2 * MINUTE_IN_SECONDS ); /* * The Android WebView removes vibe_session before loading * the real WooCommerce order-pay URL. */ $payment_url = add_query_arg( 'vibe_session', $web_session_token, $payment_url ); /** * -------------------------------------------------------- * SUCCESS RESPONSE * -------------------------------------------------------- */ return new WP_REST_Response( array( 'success' => true, 'stage' => 'payment_ready', 'message' => 'WooCommerce order created and ready for secure payment.', 'authenticated' => true, 'woocommerce_available' => true, 'cart_token_received' => true, 'cart_loaded' => true, 'cart_item_count' => count( $cart_data['items'] ), 'customer' => array( 'id' => (int) $user_id, 'email' => sanitize_email( $user->user_email ), ), 'order_created' => true, 'order_id' => (int) $order->get_id(), 'order_number' => (string) $order->get_order_number(), 'order_key' => (string) $order_key, 'order_status' => (string) $order->get_status(), 'order_total' => (string) $order->get_total(), 'currency' => (string) $order->get_currency(), 'payment_url' => esc_url_raw( $payment_url ), ), 200 ); } Privacy Policy - Vibe