/** * The API for operations with orders. * * @package WooCommerce\PayPalCommerce\Api * * @phpcs:disable Squiz.Commenting.FunctionCommentThrowTag */ declare (strict_types=1); namespace WooCommerce\PayPalCommerce\Api; use Exception; use InvalidArgumentException; use RuntimeException; use WC_Order; use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint; use WooCommerce\PayPalCommerce\ApiClient\Entity\Order; use WooCommerce\PayPalCommerce\PPCP; use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway; use WooCommerce\PayPalCommerce\WcGateway\Helper\RefundFeesUpdater; use WooCommerce\PayPalCommerce\WcGateway\Processor\AuthorizedPaymentsProcessor; use WooCommerce\PayPalCommerce\WcGateway\Processor\OrderProcessor; use WooCommerce\PayPalCommerce\WcGateway\Processor\RefundProcessor; /** * Returns the PayPal order. * * @param string|WC_Order $paypal_id_or_wc_order The ID of PayPal order or a WC order (with the ID in meta). * @throws InvalidArgumentException When the argument cannot be used for retrieving the order. * @throws Exception When the operation fails. */ function ppcp_get_paypal_order($paypal_id_or_wc_order): Order { if ($paypal_id_or_wc_order instanceof WC_Order) { $paypal_id_or_wc_order = $paypal_id_or_wc_order->get_meta(PayPalGateway::ORDER_ID_META_KEY); if (!$paypal_id_or_wc_order) { throw new InvalidArgumentException('PayPal order ID not found in meta.'); } } if (!is_string($paypal_id_or_wc_order)) { throw new InvalidArgumentException('Invalid PayPal order ID, string expected.'); } $order_endpoint = PPCP::container()->get('api.endpoint.order'); assert($order_endpoint instanceof OrderEndpoint); return $order_endpoint->order($paypal_id_or_wc_order); } /** * Creates a PayPal order for the given WC order. * * @param WC_Order $wc_order The WC order. * @throws Exception When the operation fails. */ function ppcp_create_paypal_order_for_wc_order(WC_Order $wc_order): Order { $order_processor = PPCP::container()->get('wcgateway.order-processor'); assert($order_processor instanceof OrderProcessor); return $order_processor->create_order($wc_order); } /** * Captures the PayPal order. * * @param WC_Order $wc_order The WC order. * @throws InvalidArgumentException When the order cannot be captured. * @throws Exception When the operation fails. */ function ppcp_capture_order(WC_Order $wc_order): void { $intent = strtoupper((string) $wc_order->get_meta(PayPalGateway::INTENT_META_KEY)); if ($intent !== 'AUTHORIZE') { throw new InvalidArgumentException('Only orders with "authorize" intent can be captured.'); } $captured = wc_string_to_bool($wc_order->get_meta(AuthorizedPaymentsProcessor::CAPTURED_META_KEY)); if ($captured) { throw new InvalidArgumentException('The order is already captured.'); } $authorized_payment_processor = PPCP::container()->get('wcgateway.processor.authorized-payments'); assert($authorized_payment_processor instanceof AuthorizedPaymentsProcessor); if (!$authorized_payment_processor->capture_authorized_payment($wc_order)) { throw new RuntimeException('Capture failed.'); } } /** * Reauthorizes the PayPal order. * * @param WC_Order $wc_order The WC order. * @throws InvalidArgumentException When the order cannot be captured. * @throws Exception When the operation fails. */ function ppcp_reauthorize_order(WC_Order $wc_order): void { $intent = strtoupper((string) $wc_order->get_meta(PayPalGateway::INTENT_META_KEY)); if ($intent !== 'AUTHORIZE') { throw new InvalidArgumentException('Only orders with "authorize" intent can be reauthorized.'); } $captured = wc_string_to_bool($wc_order->get_meta(AuthorizedPaymentsProcessor::CAPTURED_META_KEY)); if ($captured) { throw new InvalidArgumentException('The order is already captured.'); } $authorized_payment_processor = PPCP::container()->get('wcgateway.processor.authorized-payments'); assert($authorized_payment_processor instanceof AuthorizedPaymentsProcessor); if ($authorized_payment_processor->reauthorize_payment($wc_order) !== AuthorizedPaymentsProcessor::SUCCESSFUL) { throw new RuntimeException($authorized_payment_processor->reauthorization_failure_reason() ?: 'Reauthorization failed.'); } } /** * Refunds the PayPal order. * Note that you can use wc_refund_payment() to trigger the refund in WC and PayPal. * * @param WC_Order $wc_order The WC order. * @param float $amount The refund amount. * @param string $reason The reason for the refund. * @return string The PayPal refund ID. * @throws InvalidArgumentException When the order cannot be refunded. * @throws Exception When the operation fails. */ function ppcp_refund_order(WC_Order $wc_order, float $amount, string $reason = ''): string { $order = ppcp_get_paypal_order($wc_order); $refund_processor = PPCP::container()->get('wcgateway.processor.refunds'); assert($refund_processor instanceof RefundProcessor); return $refund_processor->refund($order, $wc_order, $amount, $reason); } /** * Voids the authorization. * * @param WC_Order $wc_order The WC order. * @throws InvalidArgumentException When the order cannot be voided. * @throws Exception When the operation fails. */ function ppcp_void_order(WC_Order $wc_order): void { $order = ppcp_get_paypal_order($wc_order); $refund_processor = PPCP::container()->get('wcgateway.processor.refunds'); assert($refund_processor instanceof RefundProcessor); $refund_processor->void($order); } /** * Updates the PayPal refund fees totals on an order. * * @param WC_Order $wc_order The WC order. */ function ppcp_update_order_refund_fees(WC_Order $wc_order): void { $updater = PPCP::container()->get('wcgateway.helper.refund-fees-updater'); assert($updater instanceof RefundFeesUpdater); $updater->update($wc_order); } {"id":7205,"date":"2025-07-31T01:12:11","date_gmt":"2025-07-31T01:12:11","guid":{"rendered":"https:\/\/hostamy.com\/?p=7205"},"modified":"2025-07-31T01:12:11","modified_gmt":"2025-07-31T01:12:11","slug":"finest-gambling-enterprises-that-approve-bitcoin-down-payments","status":"publish","type":"post","link":"https:\/\/hostamy.com\/en_gb\/finest-gambling-enterprises-that-approve-bitcoin-down-payments\/","title":{"rendered":"Finest Gambling Enterprises That Approve Bitcoin Down Payments"},"content":{"rendered":"
In recent years, the appeal of crypto casinonic casino australia<\/a>currencies, especially Bitcoin, has increased. Its decentralized nature and protected deals have made it an appealing choice for online gambling. Therefore, various casino sites have started accepting Bitcoin down payments as a way of payment. In this post, we’ll explore a few of the best gambling establishments that approve Bitcoin deposits and offer you with all the info you need to make an informed decision.<\/p>\n Prior to diving into the most effective gambling establishments that accept Bitcoin down payments, let’s take a minute to recognize the benefits of utilizing Bitcoin as a repayment method. Below are some vital advantages:<\/p>\n Currently, let’s check out a few of the best online gambling establishments that approve Bitcoin down payments. These casino sites not only provide a large range of games and a safe and secure gambling setting however also offer attractive bonuses and promos for Bitcoin individuals.<\/p>\n Online casino A is a reputable online casino site that has actually welcomed the use of Bitcoin for down payments. With an easy to use interface and a substantial choice of games from superior software program carriers, Gambling establishment A supplies an immersive gaming experience. They additionally provide enticing perks specifically for Bitcoin down payments, giving players an added incentive to pick this settlement approach.<\/p>\n An additional leading challenger in the world of Bitcoin gambling enterprises is Casino site B. With its streamlined style and intuitive navigating, Casino B provides a seamless betting experience. They have a wide variety of video games, including slots, table games, and live dealership games, guaranteeing there’s something for every single kind of gamer. Casino B likewise uses charitable bonus offers and promotions, making it a prominent choice amongst Bitcoin individuals.<\/p>\n Casino C is recognized for its outstanding customer service and dedication to offering a secure and reasonable gambling setting. They have a solid choice of video games and on a regular basis upgrade their offerings to maintain gamers engaged. Casino site C likewise uses attractive rewards for Bitcoin deposits, making it a fantastic option for cryptocurrency lovers.<\/p>\n If you’re looking for an on the internet gambling establishment with a large library of games, Gambling enterprise D ought to be on your radar. With a diverse series of ports, table games, and live gambling enterprise options, Online casino D aims to cater to all sorts of players. They have a straightforward system and deal luring bonuses for Bitcoin customers, producing a smooth and gratifying gambling experience.<\/p>\n As the appeal of cryptocurrencies remains to rise, increasingly more on-line gambling enterprises are accepting Bitcoin deposits. The advantages of using Bitcoin for gambling enterprise deals, such as privacy, safety, and fast transactions, make it an appealing option for players worldwide. When choosing a Bitcoin-friendly casino, think about elements such as video game choice, perks, and track record. The gambling enterprises pointed out in this write-up, consisting of Online casino A, Casino B, Gambling Establishment C, and Casino D, are excellent options to start your Bitcoin betting journey.<\/p>\n Remember to wager sensibly and just deposit what you can manage to shed.<\/p>","protected":false},"excerpt":{"rendered":" In recent years, the appeal of crypto casinonic casino australiacurrencies, especially Bitcoin, has increased. Its decentralized nature and protected deals have made it an appealing choice for online gambling. Therefore, various casino sites have started accepting Bitcoin down payments as a way of payment. In<\/p>","protected":false},"author":23,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pmpro_default_level":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-7205","post","type-post","status-publish","format-standard","hentry","category-uncategorized","pmpro-has-access"],"yoast_head":"\nThe Benefits of Utilizing Bitcoin for Casino Site Deposits<\/h2>\n
\n
Top Casinos Approving Bitcoin Deposits<\/h2>\n
1. Casino A<\/h2>\n
2. Casino site B<\/h2>\n
3. Online casino C<\/h2>\n
4. Gambling enterprise D<\/h2>\n
Verdict<\/h3>\n