get_one_by( $charge_id, 'receipt_id' ); } if ( ! isset( $payment ) || ! is_object( $payment ) ) { // 3D secure payments use intent id. $payment = $frm_payment->get_one_by( $intent_id, 'receipt_id' ); } if ( ! is_object( $payment ) ) { return; } $entry = FrmEntry::getOne( $payment->item_id, true ); if ( ! is_object( $entry ) || (int) $entry->form_id !== $form_id ) { return; } self::$details_by_form_id[ $form_id ] = array( 'entry' => $entry, 'intent' => $intent, 'payment' => $payment, ); } /** * Check the client secret in the URL, verify it matches the Stripe object and isn't being manipulated. * * @since 6.5.1 * * @param object $intent * @param bool $is_setup_intent * * @return bool True if the client secret is set and valid. */ private static function verify_client_secret( $intent, $is_setup_intent ) { $client_secret_param = $is_setup_intent ? 'setup_intent_client_secret' : 'payment_intent_client_secret'; $client_secret = FrmAppHelper::simple_get( $client_secret_param ); return $client_secret && $client_secret === $intent->client_secret; } }