Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correct HTTP Request Structure #2

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open

Conversation

indepndnt
Copy link
Contributor

Summary

In the process of upgrading CiviCRM from version 3.3 (on Drupal) to 5.46.3 (on Wordpress), we discovered
that the request structure recommended in the API Explorer (and implemented by civipy) is inconsistent
with the documentation, even though it works
in version 3.3 running on Drupal 7.

Issue

When making a REST API v3 request, an error is returned. In researching the issue, the thing I’ve seen in
common with other folks seeing this issue is running CiviCRM on Wordpress.

Example:

Request

{REST_BASE}?entity=Contribution&action=GET&api_key={USER_KEY}&debug=1&key={SITE_KEY}&json=%7B%22sequential%22%3A+1%2C+%22trxn_id%22%3A+%22{trxn_id}%22%7D

Response

civipy.base.CiviAPIError: {'is_error': 1, '0': 'error_message', '1': 'Unable to decode supplied JSON.'}

Solution

Correcting the call according to the documentation solves the issue. The difference is the json query
field in the request URI: it should be set to 1, and the component fields added to the query as separate
fields.

This request structure works both on CiviCRM 3.3 on Drupal and CiviCrm 5.46.3 on Wordpress.

Example:

Request

{REST_BASE}?entity=Contribution&action=GET&api_key={USER_KEY}&debug=1&key={SITE_KEY}&json=1&sequential=1&trxn_id={trxn_id}

Response

{"is_error":0,"undefined_fields":["is_template","contribution_test","trxn_id"],"version":3,"count":1,"id":<...>,"values":[{<...>}],"xdebug":[]}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant