首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成Sagepay (Opayo)与Django -如何创建商家会话密钥

集成Sagepay (Opayo)与Django -如何创建商家会话密钥
EN

Stack Overflow用户
提问于 2021-08-18 18:19:13
回答 1查看 114关注 0票数 0

我正在尝试集成Opayo (SagePay)和Django,我在生成商家会话密钥(MSK)时遇到了问题。

来自sagepays文档,他们说使用下面的curl请求,我应该在响应中收到密钥

代码语言:javascript
复制
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响应(无法处理的实体响应)。

代码语言:javascript
复制
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)

你知道我在这方面可能出了什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-18 20:39:02

您向requests.post()传递了错误的参数,应该使用json而不是params

代码语言:javascript
复制
r = requests.post(
    "https://pi-test.sagepay.com/api/v1/merchant-session-keys",
    headers=headers,
    json=data
)

这样,就不需要指定Content-Type头了,它是自动添加的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68837515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档