簡體   English   中英

python請求iugu返回狀態400

[英]python request iugu return status 400

我正在測試api iugu.com來生成票款支付,並且在發回信息時遇到麻煩,因為有錯誤字典項發送到api(在php中是數組)

代碼是這樣的:

from flask import Flask, Response, jsonify
import requests
from requests.auth import HTTPBasicAuth
import json

app = Flask(__name__)

@app.route("/")
def index():
    dados = {
        'method':'bank_slip',
        'email':'cliente@exemplo.com',
        'items[]':[
            {'description':'Item Um', 'quantity':1, 'price_cents': 100000},
            {'description':'Item Dois', 'quantity':1, 'price_cents': 200000}
        ]
    } 

    url = 'https://api.iugu.com/v1/charge' 
    user = '002f38a6d40b0275fc08aaac503a775b'
    headers = {'content-type': 'application/json'}

    r = requests.post(url, auth=HTTPBasicAuth(user, ''), headers = headers, params = json.dumps(dados))

    return jsonify(
        resposta = [
            r.json(),
            {
                'status': r.status_code,
                'cabecalho': r.headers['Content-Type'],
                'params': dados,
                'text': r.content,
                'url': r.url
            }
        ])

app.debug = True
app.use_reloader=True
app.run()

答案:

{
  "resposta": [
    {
      "errors": "token n\u00e3o \u00e9 v\u00e1lido"
    }, 
    {
      "cabecalho": "application/json; charset=utf-8", 
      "params": {
        "email": "cliente@exemplo.com", 
        "items[]": [
          {
            "description": "Item Um", 
            "price_cents": 100000, 
            "quantity": 1
          }, 
          {
            "description": "Item Dois", 
            "price_cents": 200000, 
            "quantity": 1
          }
        ], 
        "method": "bank_slip"
      }, 
      "status": 400, 
      "text": "{\"errors\":\"token n\\u00e3o \\u00e9 v\\u00e1lido\"}", 
      "url": "https://api.iugu.com/v1/charge?%7B%22email%22:%20%22cliente@exemplo.com%22,%20%22items[]%22:%20[%7B%22price_cents%22:%20100000,%20%22description%22:%20%22Item%20Um%22,%20%22quantity%22:%201%7D,%20%7B%22price_cents%22:%20200000,%20%22description%22:%20%22Item%20Dois%22,%20%22quantity%22:%201%7D],%20%22method%22:%20%22bank_slip%22,%20%22format%22:%20%22json%22%7D"
    }
  ]
}

如果您在網站示例中使用,則如下所示:

'items[][description]':'Item Um', 
'items[][quantity]':'1', 
'items[][price_cents]':'100000', 

答案是正確的,但不能添加多個項目,因為它僅排名第二。 還有另一種發送數據的方式,或者我做錯了什么?

收到小費的iugu.com員工檢查了通過curl發送的數據,就是postcatcher.in 啟動此站點后,可以創建會話並將應用程序的URL定向到瀏覽器中的URL。 如果在其他觀測信息和其他信息之間發送或未發送數據,則可以實時跟蹤正文選項卡(發現它很酷)

在這個站點上,我看到它沒有被發送,沒有物品或任何您想要的東西,它幫助我看到請求行是錯誤的。

代替使用params是使用正確的數據

一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM