【发布时间】:2019-06-04 14:17:38
【问题描述】:
我对编码还很陌生,这是我正在从事的第一个更大的 Python 项目之一,我在提交 Adyen 付款时遇到了问题。
我正在尝试在使用 Adyen 支付网关的网站上进行支付。 Adyen 对您的支付数据客户端进行加密,并且只接受加密请求,否则他们将返回 400 错误请求并且付款将无法通过。
当谈到想法时,我被卡住了,我在手动付款时分析了 Charles 的流量 - 在付款之前,手机会向 Adyen 网站上的 this 链接发送 GET 请求,然后下一个请求是对已加密数据的支付 URL 的 PUT 请求。
我不知道如何加密我的详细信息,让 Adyen 接受它们并成功完成付款。 我是否在付款前使用链接中的代码在我的计算机上创建一个 JS 文件,然后我可以在我的 Python 脚本中调用 JS 来加密详细信息?
我尝试将未加密的数据发送到支付 URL,但就像我之前所说的那样,它只是返回 400 状态代码并且支付没有通过。
正确请求发送的加密数据如下所示:
"encryptedData": "adyenjs_0_1_18$......"
def payment():
payParams = {
'api_key': 'websiteAPIKey',
'channel': 'iphone-mosaic',
'type': 'CARD'
}
payPayload = {
'number': cardN,
'expiryMonth': expM,
'expiryYear': expY,
'cvc': cvc,
'holderName': fName + ' ' + lName
}
pay = s.put('websiteUsingAdyenGateway', headers = payHeaders, params = payParams, data = json.dumps(payPayload))
预期的结果应该是 200 状态码,付款实际通过但没有加密,它总是返回 400 状态码。
【问题讨论】:
-
你读过官方文档吗? docs.adyen.com/classic-integration/cse-integration-ecommerce 此处描述了加密过程示例。它是否缺少您正在寻找的东西?
标签: python encryption adyen