我正在尝试通过其REST API在PayU上创建新订单。我正在发送“获取访问令牌”,并且我有正确的答案。然后我发送“创建新订单”,aaaa,我收到103错误,错误语法。
我尝试使用https://webhook.site/时,意识到语法为何不好-列表中没有值。
在创建新订单时发送POST的代码:
data = {
"notifyUrl": "https://your.eshop.com/notify",
"customerIp": "127.0.0.1",
"merchantPosId": "00000",
"description": "RTV market",
"currencyCode": "PLN",
"totalAmount": "15000",
"products": [{
"name": "Wireless mouse",
"unitPrice": "15000",
"quantity": "1"}]}
headers = {
"Content-Type": "application/json",
"Authorization": str('Bearer ' + access_token).encode()}
r = requests.post('https://webhook.site/9046f3b6-87c4-4be3-8544-8a3454412a55',
data=payload,
headers=headers)
return JsonResponse(r.json())
Webhooc显示我发布的内容:
customerIp=127.0.0.1¬ifyUrl=https%3A%2F%2Fyour.eshop.com%2Fnotify¤cyCode=PLN&products=name&products=unitPrice&products=quantity&description=RTV+market&merchantPosId=00000&totalAmount=15000
没有“名称”,“单价”和“数量”的值。 PayU确认这就是唯一的问题。
为什么?怎么了?
发送简单的POST请求以获取令牌始终是成功的。
答案 0 :(得分:1)
如果要发送JSON,请使用json
的{{1}}参数:
post()
否则,数据将以表单编码数据的形式发送,鉴于您希望发送嵌套的r = requests.post('https://webhook.site/9046f3b6-87c4-4be3-8544-8a3454412a55',
json=payload, # Use the json argument
headers=headers)
列表,我想这不是您想要的。
使用products
参数时,内容类型会自动设置为json
,因此您不必自己进行设置。
application/json
有关使用请求发送JSON here
的更多信息