如何在Python中使用Phonepe api并集成phonepe网关

如何在python中使用phonepe api并集成phonepe网关

介绍

phonepe 是印度流行的数字支付平台,为个人和企业提供一系列支付解决方案。如果您希望将 phonepe 支付集成到您的应用程序或网站中,本指南将引导您完成使用 phonepe api 和集成 phonepe 网关的过程。
您可以在这里查看完整的代码。

您可以在这里查看phonepe api 文档。

第 1 步:注册 phonepe 商家帐户

要开始使用 phonepe api,您需要在 phonepe 网站上注册商家帐户。这将为您提供必要的凭据以及对 api 文档的访问权限。
商业登记 – https://www.phonepe.com/business-solutions/ payment-gateway/

第 2 步:设置您的开发环境

在开始集成 phonepe api 之前,您需要设置开发环境。这通常涉及安装任何所需的依赖项并设置项目结构。
这里我们将查看 python 示例,但是您可以使用任何其他语言,因为我们这里没有使用 sdk。

第 3 步:获取 api 凭证

设置商家帐户后,您将需要获取 api 凭据。这些凭据将用于验证您对 phonepe api 的请求。

要进行测试,您可以按照示例进行操作 – https://developer.phonepe.com/v1/docs/uat-testing/

此处给出的示例适用于商户 id 和 salt_key 现在可能可以工作。

立即学习“Python免费学习笔记(深入)”;

所以,尝试使用这些凭据进行测试 –
商家_id – pgtestpayuat86
salt_index – 1
salt_key – 96434309-7796-489d-8924-ab56988a6076

第 4 步:了解 phonepe api 端点

phonepe api 提供了多个端点,您可以使用它们来发起付款、检查付款状态以及管理集成的其他方面。了解不同的端点及其各自的参数非常重要,以确保集成过程顺利进行。

第 5 步:实施支付流程

要使用 phonepe api 发起付款,您需要向 /pg/v1/pay 端点发出 post 请求。该接口需要支付金额、商户id、商户交易id、回调url等各种参数。

这是一个 python 示例代码片段,演示了如何使用 phonepe api 发起付款:

import hashlibimport requestsimport base64import uuidimport jsonimport constantsdef create_sha256_string(input_string):    sha256_hash = hashlib.sha256(input_string.encode())    encoded_string = sha256_hash.hexdigest()    return encoded_stringdef string_to_base64(input_string):    encoded_string = base64.b64encode(input_string.encode())    return encoded_string.decode()def phonepePaymentURL(amount: int):    orderID = "pp-"+str(uuid.uuid4())    userID = "user-"+str(uuid.uuid4())    merchantTransactionID = "MT"+str(uuid.uuid4())    mobileNumber = "9999999998" # test mobile number    email = "test@gmai.com"    payload = {        "amount": amount*100,        "merchantId": constants.merchant_id,        "merchantTransactionId": merchantTransactionID,        "merchantUserId": userID,        "redirectUrl": constants.webhook_url,        "redirectMode": "POST",        "callbackUrl": constants.webhook_url,        "merchantOrderId": orderID,        "mobileNumber": mobileNumber,        "email": email,        "message": "Payment for " + orderID,        "paymentInstrument": {            "type": "PAY_PAGE"        }    }    json_data = json.dumps(payload)    base64_request = string_to_base64(json_data)    # X-VERIFY header -- SHA256(Base64 encoded payload + “/pg/v1/pay” + salt key) + ### + salt index    finalXHeader = create_sha256_string(base64_request + "/pg/v1/pay" + constants.salt_key)+"###"+constants.salt_index    req = {        "request": base64_request    }    finalHeader = {        "Content-Type": "application/json",        "X-VERIFY": finalXHeader        }    response = requests.post(constants.payment_url, headers=finalHeader, json=req)    if response.status_code == 200:        return response.json()    else:        return "Something went wrong - " + response.textres = phonepePaymentURL(100)data = res.json()print(json.dumps(data))print()paymentURL = data["data"]["instrumentResponse"]["redirectInfo"]["url"]transactionID = data["data"]["merchantTransactionId"]print("transaction_id - ",transactionID)print("payment_url - ",paymentURL)print()

在此示例中,我们生成唯一的订单 id、用户 id 和商户交易 id。然后,我们使用必要的参数构造一个有效负载,并将其编码为 base64。
我们还使用有效负载、端点和盐密钥生成 x-verify 标头。最后,我们使用适当的标头和负载向 phonepe api 端点发出 post 请求。

在浏览器中打开 payment_url 并使用这些测试卡详细信息进行付款 – https://developer.phonepe.com/v1/docs/uat-testing/#debit-card

第 6 步:处理付款回调

发起支付后,phonepe 会向指定的回调 url 发送回调。正确处理此回调对于确保无缝的支付体验非常重要。回调通常包含有关付款状态、交易 id 和其他相关详细信息的信息。

为了测试 webhook,可以使用这个网站 – https://webhook.site/

以上就是如何在Python中使用Phonepe api并集成phonepe网关的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1348149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 11:46:28
下一篇 2025年12月13日 11:46:36

相关推荐

  • 使用 Asyncio 进行异步编程

    在编程世界中,“非阻塞”的概念无处不在。 javascript 开发人员经常使用术语“异步”,因为它是 javascript 的优势之一。然而,要真正理解异步编程,必须掌握并发和并行编程的概念。 并发编程 当几个独立的实体同时工作时,编程是并发的。这并不一定意味着这些任务在完全相同的时间运行。相反,…

    好文分享 2025年12月13日
    000
  • 编程提示和技巧:提升您的编码游戏水平

    每个程序员都喜欢发现新的技巧和窍门,以使他们的工作更轻松、更高效。以下是一些提升编码游戏水平的实用技巧: 更好的 console.logs:尝试使用 console.table() 代替通常的 console.log(),以便在记录数组或对象时获得更好的可读性。它以漂亮的表格格式显示数据。 停止使用…

    2025年12月13日
    000
  • 打造完美展示:Gallery Window 时尚网站的创建

    在 Gallery Window Fashion,我们为向休斯顿及其他地区提供卓越的窗帘解决方案而感到自豪。为了体现我们对质量和客户满意度的承诺,我们投资创建了一个最先进的网站,展示我们的产品并增强用户体验。本文深入探讨了我们如何构建网站、使用的编程语言以及我们未来的愿望的复杂性。 1.设计愿景我们…

    2025年12月13日
    000
  • Python:从初学者到专业人士第 4 部分

    文件处理:学习读取和写入文件 文件处理对于任何程序员来说都是一项至关重要的技能。每个开发人员都应该能够访问外部来源的数据并与之交互,并实现计算和存储。 文件用于在磁盘上存储数据。它们可以包含文本、数字或二进制数据。在 python 中,我们使用内置函数和方法来处理文件。 要打开文件,我们使用 ope…

    2025年12月13日 好文分享
    000
  • Python 播客的可能主题

    我多年来一直向人文学科的学生教授编程。这也是我们有时可以在编程社区中谈论的事情。 在这样的对话中你能关注什么? 这是对话计划的大纲: 人文专业的学生为什么要学习Python?通过代码解决的常见问题。为什么选择 Python 而不是 R 或 Fortran?人道主义者需要哪些图书馆? 人道主义者学习发…

    2025年12月13日
    000
  • 每个开发人员都应该知道的顶级 Python 库

    Python 是一种流行的编程语言,以其简单性、多功能性以及大量的库和模块而闻名,这使其成为开发人员的首选。这些库提供了广泛的工具和功能来构建各种类型的应用程序。让我们探索每个开发人员都应该了解的不同应用程序的一些顶级 Python 库。 1.网页开发: Python 是 Web 开发的首选,因为它…

    2025年12月13日
    000
  • 人工智能交易模型

    介绍 人工智能(ai)通过提供先进的工具来分析大型数据集并做出预测,彻底改变了交易。该项目演示了如何使用历史价格数据构建简单的 ai 模型进行交易。 入门 这些说明将帮助您在本地机器上设置并运行人工智能交易模型。 先决条件 python 3.8 或更高版本pip(python 包安装程序)jupyt…

    2025年12月13日
    000
  • 你是什​​么蟒蛇?

    Python 是一种多范式解释型编程语言,这意味着它支持面向对象编程、命令式编程以及部分函数式编程和脚本编写。 重要的是要知道Python是跨平台和开源的;它允许开发人员创建大量的库或模块,以便能够用它做几乎任何事情。 因此,它是一种功能强大且易于学习的语言;它具有高效和高级的数据结构以及简单有效的…

    2025年12月13日
    000
  • 在 Python 中使用 Factory-Boy 生成假批量数据

    您经常需要假数据来进行测试。当然,您可以在测试中使用一些示例数据。但是,如果您需要数百条甚至数千条测试数据怎么办?那么创建和维护就会变得乏味。有时,您只需要程序中类的假版本,但您希望它是行为类似于真实类的真实数据。工厂和假货让这一切成为可能。 在本文中,我们将使用 python 中的 factory…

    2025年12月13日 好文分享
    000
  • Python – 索引和切片

    索引和切片是python中的一个重要概念,尤其是当我们使用字符串时。 索引: wkt,字符串只不过是字符序列。 因此,每个字符都有一个位置,即 index,访问它们在该特定字符串中的位置称为 indexing。 在python中,我们有基于零的索引,即字符串的第一个字符的索引(位置)为0而不是1,然…

    2025年12月13日
    000
  • Python

    Python 由 Guido Van Rossum 开发,于 1991 年发布。• Python 是简单且流行的编程语言。• 可以在服务器上使用Python来创建Web应用程序。• Python 用于网络开发、软件开发、复杂数学和系统脚本编写。• 集成开发环境,即软件帮助我们创建其他软件。• 可以在…

    2025年12月13日
    000
  • 用有限的资源微调 LLAMA 或文本分类

    我最近需要对工作中的特定用例进行句子分类。记得 jeremy howard 的第 4 课:针对绝对初学者的 nlp 入门,我首先改编了他的笔记本来微调 deberta。 它有效,但并不令我满意,所以我很好奇如果我使用像 llama 3 这样的 llm 会发生什么。问题是什么? gpu 资源有限。我只…

    2025年12月13日
    000
  • 在 AWS Lambda 中使用 Application Load Balancer (ALB) 时获取实际客户端 IP

    当我刚接触 aws 时,我在执行对文档进行数字签名的任务时遇到了一个有趣的挑战,该任务需要客户的 ip 作为电子签名的一部分。最初,当第一次实现似乎完美运行时,我感到很兴奋。然而,我的兴奋是短暂的。在测试过程中,我注意到即使我从不同的机器访问应用程序,也会返回相同的 ip 地址。就在那时,我意识到我…

    2025年12月13日
    000
  • Python教程的努力成果——四

    from meimayakkam_ruleset import *print (“மெய்ம்மயக்கம் விளையாட்டை விளையாடலாமா”)print (“மெய்ம்மயக்க விளையாட்டை விளையாடப் படிநிலைகளுள் ஒன்றைத் தெரிவுசெய…

    2025年12月13日
    000
  • 通过Python培训课程取得的成果——三

    from MeiMayakkam_Ruleset import *print (“மெய்ம்மயக்கம் விளையாட்டை விளையாடலாமா”)print (“மெய்ம்மயக்க விளையாட்டை விளையாடப் படிநிலைகளுள் ஒன்றைத் தெரிவுசெய…

    2025年12月13日
    000
  • 通过Python教程取得的成果 – 一

    from meymayakkamfinal1 import *print (“மெய்ம்மயக்கம் விளையாட்டை விளையாடலாமா”)print (“மெய்ம்மயக்க விளையாட்டை விளையாடப் படிநிலைகளுள் ஒன்றைத் தெரிவுசெய்க…

    2025年12月13日
    000
  • 字符串和尾随逗号,耦合并成为,Tuple ():将错误复制并粘贴到错误和概念

    今天,我将讲述一个关于我的复制粘贴错误的故事,以及如何在我的 python 程序中将带有逗号的字符串耦合并成为 tuple()。奇怪的是,在犯这个错误之前我并不是没有意识到这个概念。 那么,让我们开始快速学习 python 中的字符串和元组。 细绳 定义: 用于存储和操作文本的字符序列。语法: 用单…

    2025年12月13日
    000
  • 使用自定义 Django 命令自动重新加载 Celery 工作线程

    celery 之前有一个 –autoreload 标志,现已被删除。然而,django 在其manage.py runserver 命令中内置了自动重新加载功能。 celery workers 中缺乏自动重新加载会造成令人困惑的开发体验:更新 python 代码会导致 django 服务…

    2025年12月13日
    000
  • “从概念到代码:使用 Python 构建提醒应用程序”

    大家好!我很高兴向您介绍我的最新项目 Promptly – 一款桌面提醒应用程序,旨在帮助您掌握任务和事件。这个项目结合了我对编码的热情和高效时间管理的实际需求。 项目概况: 在忙碌的生活中,我们很容易忘记重要的任务和事件。及时赶到是为了确保不会发生这种情况。借助 Promptly,您可以为任务设置…

    2025年12月13日
    000
  • Python 中的并发和并行编程(课程)

    刚刚完成了有关 Python 并发和并行编程的精彩课程,我很高兴分享我的经验!作为首席工程师,我一直在寻找优化性能和扩展知识的方法。 Max S 在 Udemy 上开设的这门课程是对异步编程、并行计算和线程的精彩回顾。 突出之处: 对复杂概念的清晰解释实际的、真实的例子动手编码的机会 讲师轻松分解 …

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信