public function SquareApi::refund in Commerce Square Connect 7
Refunds a transaction.
Parameters
object $transaction: The payment transaction.
int $amount: The amount.
Return value
\SquareConnect\Model\CreateRefundResponse The transaction response.
File
- includes/SquareApi.php, line 111 
- Square Connect SDK wrapper.
Class
- SquareApi
- A wrapper around the Square Connect SDK.
Code
public function refund($transaction, $amount) {
  $payment_method = commerce_payment_method_instance_load($transaction->instance_id);
  $mode = $payment_method['settings']['mode'];
  $location_id = $mode = $payment_method['settings'][$mode . '_location_id'];
  list($transaction_id, $tender_id) = explode('|', $transaction->remote_id);
  $transaction_api = new TransactionsApi($this
    ->getClient());
  $refund_request = new CreateRefundRequest(array(
    'idempotency_key' => uniqid(),
    'tender_id' => $tender_id,
    'amount_money' => new Money(array(
      'amount' => (int) $amount,
      'currency' => $transaction->currency_code,
    )),
    'reason' => 'Refunded through store backend',
  ));
  return $transaction_api
    ->createRefund($location_id, $transaction_id, $refund_request);
}