),
);
+ $amount = $payment['charge'] * 100;
+ // $amount = 403; // decline error
+
$paymentInfo = array(
'card_nonce' => $nonce,
'idempotency_key' => uniqid(),
'amount_money' => array(
- 'amount' => $payment['charge'] * 100,
+ 'amount' => $amount,
'currency' => 'USD',
),
);
# a 200-level HTTP code. This block catches any exceptions that occur from the request.
try {
$result = $transactionApi->charge( $locationId, $txRequest );
- echo "<pre>";
- print_r( $result );
- echo "</pre>";
$resp = array(
'gateway' => 'Square',
'status' => 1,
);
return $resp;
} catch ( \SquareConnect\ApiException $e ) {
+ // Check for nonce already used
+ $responseBody = $e->getResponseBody();
+ if ( $responseBody->errors[0]->code == CARD_TOKEN_USED ) {
+ $description = 'Card already used!';
+ }
+ if ( $responseBody->errors[0]->code == CARD_DECLINED ) {
+ $description = 'Card declined!';
+ }
$resp = array(
'gateway' => 'Square',
'status' => 7,
'authCode' => '',
'transId' => '',
'refId' => $refId,
- 'description' => '<pre>Bad response: ' . print_r( $e->getResponseBody(), true) . '</pre>'
- .'<pre>$txRequest: ' . print_r( $txRequest, true ) . '</pre>',
+ 'description' => $description,
+ // 'description' => '<pre>Bad response: ' . print_r( $e->getResponseBody(), true) . '</pre>'
+ // .'<pre>$txRequest: ' . print_r( $txRequest, true ) . '</pre>',
);
return $resp;
}