# booktics/1.0.27/core/payment/contracts/payment-method-interface.php

Booktics – Appointment Booking Calendar for Service Businesses, version 1.0.27. 71 lines.

- Page: https://pluginprobe.com/plugins/booktics/1.0.27/code/core/payment/contracts/payment-method-interface.php
- Raw: https://pluginprobe.com/plugins/booktics/1.0.27/raw/core/payment/contracts/payment-method-interface.php
- Modified: 2026-09-28T15:21:16+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/booktics/1.0.27/code/core/payment/contracts/payment-method-interface.php#L10-L20`.

```php
<?php

namespace Booktics\Payment\Contracts;

use Booktics\Models\Order_Model;

/**
 * Interface for a payment method.
 *
 * A payment method is an object that encapsulates all of the data and
 * behavior associated with a particular payment method. It must
 * implement the methods defined by this interface.
 *
 * @package Booktics\Core\Payment\Contracts
 */
interface Payment_Method_Interface {

    /**
     * Get the unique identifier for this payment method
     *
     * @return string
     */
    public function get_id(): string;

    /**
     * Get the display name of the payment method
     *
     * @return string
     */
    public function get_name(): string;

    /**
     * Process the payment
     *
     * @return \WP_Error|array Result of payment processing
     */
    public function process_payment( $order );

    /**
     * Validate payment data before processing
     *
     * @return \WP_Error|bool
     */
    public function validate_payment_data();

    /**
     * Get payment status
     *
     * @param $order
     *
     * @return string
     */
    public function get_payment_status( $order ): string;

    /**
     * Process a refund through Stripe.
     *
     * @param Order_Model $order The order to process refund for
     */
    public function process_refund( $order );

    /**
     * Decide the reservation action for a stale unpaid order: repair, release or wait.
     *
     * @param Order_Model $order The order whose held slot is being evaluated.
     *
     * @return string One of the Abstract_Payment_Method::RESERVATION_* constants.
     */
    public function resolve_reservation_action( $order ): string;
}

```
