Je rencontre des problèmes en utilisant le API OpenPay.mx (paiements banques mexicaines & autres services de paiements). Cette API renvoie JSON. J'essaie d'accéder à l'API avec CFHTTP, mais il renvoie une erreur de requête HTTP 400 incorrecte.Coldfusion CFHTTP accès API Openpay.mx Caractère inattendu ('m' (code 109)): attendu une valeur valide
erreur complète:
https://sandbox-api.openpay.mx/v1/maidzkihk7utcvzhucwk/charges {"category":"request","description":"Unexpected character ('m' (code 109)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')","http_code":400,"error_code":1001,"request_id":"79a19194-61a2-49e5-8cbc-c83f5c93ce69"}
Dans la liste des erreurs de l'aide de l'API sur les erreurs 1001-400, voici l'explication:
The request format is JSON, the fields do not have the correct format, or the request does not have fields that are required.
Code ColdFusion:
<cfset request_id = "sk_722a9645ea0040899ccd1f0a53dfcf53">
<cfset method="store">
<cfset amount=100>
<cfset description="Cargo con tienda">
<cfset customer="Gabriel Villafuerte">
<cfhttp url="https://sandbox-api.openpay.mx/v1/maidzkihk7utcvzhucwk/charges"
method="post" charset="utf-8" username="#request_id#" password=""
throwonerror="no">
<cfhttpparam type="header" name="Content-Type" value="application/json"/>
<cfhttpparam name="method" type="formfield" value="#method#">
<cfhttpparam name="amount" type="FormField" value="#amount#">
<cfhttpparam name="description" type="FormField" value="#description#">
<cfhttpparam name="customer" type="FormField" value="#customer#">
</cfhttp>
<CFDUMP var="#cfhttp#">
<!---display results--->
<cfoutput>
HTTP Response = #cfhttp.statusCode# <br>
<textarea cols=80 rows=10>
https://sandbox-api.openpay.mx/v1/maidzkihk7utcvzhucwk/charges
#cfhttp.fileContent#
</textarea>
</cfoutput>
Voici les règles pour l'accès API OpenPay.mx:
Quelqu'un at-il une idée sur la façon dont je peux donner le format correct des champs?
Sensationnel !! Merci Leigh, vous savez beaucoup de Json, cela fonctionne correctement, j'ai fait les ajustements nécessaires et le code de réponse est "OK", merci encore. Cordialement –
[Le format JSON est assez simple] (http://stackoverflow.com/questions/15840003/using-json-data-with-coldfusion/15841047#15841047). Les structures sont notées '{}' et contiennent une ou plusieurs valeurs au format '{" keyName ":" SomeValue "}'. J'ai simplement copié la chaîne de requête cURL dans les charges via l'exemple de magasin et j'ai changé quelques valeurs :) – Leigh