我正在尝试集成Opayo (SagePay)和Django,我在生成商家会话密钥(MSK)时遇到了问题。
来自sagepays文档,他们说使用下面的curl请求,我应该在响应中收到密钥
curl https://pi-test.sagepay.com/api/v1/merchant-session-keys \
-H "Authorization: Basic aEpZeHN3N0hMYmo0MGNCOHVkRVM4Q0RSRkxodUo4RzU0TzZyRHBVWHZFNmhZRHJyaWE6bzJpSFNyRnliWU1acG1XT1FNdWhzWFA1MlY0ZkJ0cHVTRHNocktEU1dzQlkxT2lONmh3ZDlLYjEyejRqNVVzNXU=" \
-H "Content-type: application/json" \
-X POST \
-d '{
"vendorName": "sandbox"
}'我尝试用以下代码在我的Django视图中实现这一点,但是我收到了一个422响应(无法处理的实体响应)。
import requests
def BasketView(request):
headers = {
"Authorization": "Basic aEpZeHN3N0hMYmo0MGNCOHVkRVM4Q0RSRkxodUo4RzU0TzZyRHBVWHZFNmhZRHJyaWE6bzJpSFNyRnliWU1acG1XT1FNdWhzWFA1MlY0ZkJ0cHVTRHNocktEU1dzQlkxT2lONmh3ZDlLYjEyejRqNVVzNXU=",
"Content-type": "application/json",
}
data = {"vendorName": "sandbox"}
r = requests.post("https://pi-test.sagepay.com/api/v1/merchant-session-keys", headers=headers, params=data)
print(r)你知道我在这方面可能出了什么问题吗?
发布于 2021-08-18 20:39:02
您向requests.post()传递了错误的参数,应该使用json而不是params
r = requests.post(
"https://pi-test.sagepay.com/api/v1/merchant-session-keys",
headers=headers,
json=data
)这样,就不需要指定Content-Type头了,它是自动添加的。
https://stackoverflow.com/questions/68837515
复制相似问题