首页 > 编程问答 >使用令牌的 Paytabs 定期付款请求给出 [422 - 无法处理您的请求] 错误

使用令牌的 Paytabs 定期付款请求给出 [422 - 无法处理您的请求] 错误

时间:2024-08-07 03:45:40浏览次数:7  
标签:python payment-gateway tokenize paytabs

我通过 Paytabs Tokenization 方法创建了一个令牌,然后使用生成的令牌再次请求 tran_class: recurring 但我得到 {'code': 422, 'message': 'Unable to process your request', 'trace': 'PMNT0102.65DCFAF6.0002C7A0'} 作为响应

第一次付款请求有效负载

payload = {
    "profile_id": PROFILE_ID,
    "tran_type": "sale",
    "tran_class": "ecom",
    "cart_id": cart_id,
    "cart_currency": "EUR",
    "cart_amount": amount,
    "cart_description": "Advertising Services",
    "paypage_lang": "en",
    "customer_details": customer_details,
    "shipping_details": customer_details,
    "tokenise": 2,
    "callback": "url",
    "return": "url"
}

从上面我得到了令牌我保存它以供将来的付款请求,但是当我尝试使用此令牌请求时,我收到错误 {'code': 422, 'message': 'Unable to process your request', 'trace': 'PMNT0102.65DCFAF6.0002C7A0'}

带有令牌的付款请求有效负载

payload = {
    "profile_id": PROFILE_ID,
    "tran_type": "sale",
    "tran_class": "recurring",
    "cart_id": cart_id,
    "cart_currency": "EUR",
    "cart_amount": amount,
    "cart_description": "Advertising Services",
    "payment_token": payment_token,
    "tran_ref": tran_ref,
    "callback": "url",
    "return": "url"
}

任何人都可以指导我在这里做错了什么


根据提供的代码,在使用 Paytabs 进行定期付款时,看起来出现了几个潜在的问题,这些问题可能导致“无法处理的请求 [422]”错误:

  1. tran_class 的使用不正确: 虽然在初始令牌化请求中正确使用了 tran_class: 'ecom' ,但在随后的定期付款请求中,不应在第一次交易后使用 tran_class: 'recurring' 。 Paytabs 处理定期付款的方式不同,它依赖于初始令牌化交易中设置。

  2. 缺少参数: 对于定期付款,Paytabs 通常要求某些特定于定期付款的参数,这些参数在的第二个有效负载中缺失。最重要的是,可能需要包含 recurring_type (使用“定期”等值)和 recurring_period (指定定期付款频率,例如“每月”)。请参阅 Paytabs 文档,了解确切的必需参数及其可能的值。

  3. 令牌使用不当: Paytabs 生成的令牌通常特定于交易类型。不能将用于初始销售交易的令牌用于后续的定期付款。相反,初始的成功响应应该返回可以用于设置未来定期付款的定期令牌或 ID。

  4. tran_ref 不一致: 确保在定期付款请求中发送的 tran_ref 在的系统中是唯一的,并且与之前的任何交易(包括初始令牌化)不匹配。

建议操作:

  1. 查看 Paytabs 文档: 彻底咨询 Paytabs API 文档,了解定期付款的具体说明。重点关注与令牌化、定期参数和必需字段相关的部分。

  2. 确认令牌用途: 验证收到的令牌是否旨在用于定期付款,以及它是否有任何使用限制。

  3. 使用正确的定期参数: 在的定期付款请求中包含所有必需的定期特定参数,例如 recurring_type recurring_period ,如 Paytabs 文档中所述。

  4. 调试和联系支持: 如果问题仍然存在,请启用详细日志记录以捕获请求和响应,包括标头。这些信息可以帮助识别问题。如果无法自行解决问题,请考虑联系 Paytabs 支持以获得进一步的帮助。

修改后的有效负载示例(仅供说明 - 请参考 Paytabs 文档以获取准确的参数):

payload = {
    "profile_id": PROFILE_ID,
    "tran_type": "sale",
    "cart_id": cart_id, # 确保这是唯一的
    "cart_currency": "EUR",
    "cart_amount": amount,
    "cart_description": "Advertising Services",
    "payment_token": recurring_token,  # 使用正确的定期令牌 
    "tran_ref": unique_tran_ref,  # 确保这是唯一的
    "recurring_type": "periodic",  # 根据 Paytabs 规范调整
    "recurring_period": "monthly",  # 根据 Paytabs 规范调整 
    "callback": "your_callback_url",
    "return": "your_return_url"
}

请记住用的实际端点、令牌和基于 Paytabs 文档的正确值的唯一 tran_ref 替换占位符。

通过仔细审查 Paytabs 文档和实施这些调整,应该能够解决“无法处理的请求 [422]”错误,并成功处理定期付款。

标签:python,payment-gateway,tokenize,paytabs
From: 78066187

相关文章

  • ArcPro (3.2+) Python 脚本工具中从 .atbx Toolbox 相对导入本地模块
    我设置了一个库和关联的ArcGISToolbox,以便:/root├──Toolbox.atbx├──mylib│└──my_function.py├──my_tools│└──my_gp_script.py我将代码存储库的开发克隆保存在公司共享服务器上的一个位置,并在GitHub上托管一份副本。当我进行更新时,我会......
  • Python vs. R:揭秘机器学习领域的双璧
    一、引言1.1背景介绍随着大数据和人工智能技术的飞速发展,机器学习已经成为了一个热门领域。在机器学习领域,Python和R是两种广泛使用的编程语言。Python因其简洁易读的语法和强大的库支持,成为了最受欢迎的编程语言之一。而R则以其强大的统计分析和数据可视化能力,在统计学......
  • Windows10 安装编译后的 pysqlcipher3-1.2.1 基于 Python 3.8.10
    Windows10安装编译后的pysqlcipher3-1.2.1基于Python3.8.10本文主要是将直接安装编译后的文件,不一定的成功,但是可以尝试使用,若无法直接安装,请参考编译过程,自行编译安装,编译过程见这里安装pysqlcipher3这里用32位举例因为64位安装完全相同,只需要把对应的位数换成64......
  • 【Python】Python基础语法知识点汇集
    Python是一种高级的、解释型的编程语言,以其清晰的语法和代码可读性而闻名。本篇文章将汇集Python编程的基础语法知识点,为初学者提供一个全面的学习指南。......
  • 启动Python 的内置服务器访问本地图片
    要使用Python的内置服务器访问本地图片并正确地显示在浏览器中,你需要将图片文件放在内置服务器的根目录或其子目录中。以下是详细步骤:1.将图片文件复制到服务器根目录:例如,将zheng.jpeg文件复制到一个特定的目录中(例如,你的项目目录)。假设你将图片文件复制到C:\Users\panda......
  • 17:Python数据类型练习题
    #1获取c1,c2相同的元素列表c1=[11,22,33]c2=[22,33,44]foriinc1:ifiinc2:print(i)#2获取c1中有,c2没有的元素列表foriinc1:ifinotinc2:print(i)#3获取c2中有,c1没有的元素列表foriinc2:ifinotinc1:print(i)#4获......
  • (Jmeter新玩法)Python 调 Jmeter执行参数化jmx脚本
    #Python调Jmeter执行参数化jmx脚本importosfromos.pathimportjoinimporttimeimportrefromstringimportTemplatejmeter_Home=r"F:\softtotal\xxx\bin\jmeter.bat"#jmx文件路径currpath=os.path.dirname(os.path.realpath(__file__))#要运行的jmx脚......
  • python爬虫预备知识三-多进程
    python实现多进程的方法:fork、multiprocessing模块创建多进程。os.fork方法os.fork方法只适合于unix/linux系统,不支持windows系统。fork方法调用一次会返回两次,原因在于操作系统将当前进程(父进程)复制出一份进程(子进程),这两个进程几乎完全相同,fork方法分别在父进程和子进程中......
  • PEP 8 – Python 代码风格指南中文版(七)
    编程建议(2) 定义异常时,应该从Exception类继承,而不是从BaseException类继承。直接从BaseException继承的异常通常是那些几乎不应该被捕获的异常。设计异常层次结构时,应该基于捕获异常的代码可能需要进行的区分,而不是基于异常被抛出的位置。目标是通过编程方式回答“出了......
  • Python-记录一次迭代求和
    importitertoolsdefget_result(hope,list_input):""":paramhope:#期望相加所得参数:paramlist_input:#所有数值:return:"""defgenerate_combination(items,length):forcombinationinitertools.co......