跳转到主要内容

django-plans和django-paypal之间的集成。

项目描述

https://badge.fury.io/py/django-plans-paypal.svg https://github.com/PetrDlouhy/django-plans-paypal/actions/workflows/main.yml/badge.svg https://codecov.io/gh/PetrDlouhy/django-plans-paypal/branch/master/graph/badge.svg

几乎自动集成了django-plansdjango-paypal。这将向订单页面添加订阅按钮,并在支付后自动确认订单。

目前处于实验阶段,仅支持周期性支付(订阅)。

文档

完整文档位于https://django-plans-paypal.readthedocs.io

快速入门

安装和配置django-plansdjango-paypal应用。暂不支持捕获模式,因此带有'capture': FalsePAYMENT_VARINANTS将不会得到确认。

安装Django plans paypal

pip install django-plans-paypal

将其添加到INSTALLED_APPS中,在plans之前

INSTALLED_APPS = (
    ...
    'payments',
    'paypal.standard.ipn',
    'plans_paypal',
    ...
)

将您的业务电子邮件地址添加到设置中

PAYPAL_BUSSINESS_EMAIL = "foo@bar.com"

# To enable encrypted PayPal form:
PAYPAL_ENCRYPTED_FORM = True
PAYPAL_PRIVATE_CERT = os.path.join(BASE_DIR, 'certs/paypal_private.pem')
PAYPAL_PUBLIC_CERT = os.path.join(BASE_DIR, 'certs/paypal_public.pem')
PAYPAL_CERT = os.path.join(BASE_DIR, 'certs/paypal_cert.pem')
PAYPAL_CERT_ID = 'xxxxx'

将Django plans_paypal添加到URL模式中

urlpatterns = [
    ...
    url(r'^plans-paypal', include('plans_paypal.urls')),
    ...
]

重写django-plansCreateOrderView,使get_success_url()返回paypal-payment视图的url

def get_success_url(self):
   return reverse("paypal-payment", kwargs={'order_id': self.object.id})

沙盒测试

设置以下设置

PAYPAL_TEST_BUSSINESS_EMAIL = "foo@bar.com"
PAYPAL_TEST = True

# For encrypted PayPal sandbox form:
PAYPAL_TEST_PRIVATE_CERT = os.path.join(BASE_DIR, 'certs/paypal_private.pem')
PAYPAL_TEST_PUBLIC_CERT = os.path.join(BASE_DIR, 'certs/paypal_public.pem')
PAYPAL_TEST_CERT = os.path.join(BASE_DIR, 'certs/paypal_sandbox_cert.pem')
PAYPAL_TEST_CERT_ID = 'xxxx'

将用户重定向到paypal-payment-sandbox而不是paypal-payment视图。

功能

  • TODO

运行测试

代码是否真的工作?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

致谢

渲染此包时使用的工具

历史

0.7.1 (2024-04-23)

  • 如果请求已完成订单的 PaymentFailureView,则失败

0.7.0 (2024-04-12)

  • 将代码迁移到 RecurringUserPlan.renewal_triggered_by

  • 迁移 payment_provider 为 “paypal-recurring” 且 renewal_triggered_by 为 TASK 的 RecurringUserPlans 的数据,将 renewal_triggered_by 更改为 OTHER

0.6.0 (2023-03-22)

  • 修复定期付款收到的金额,添加测试

0.5.1 (2023-02-11)

  • 只允许已登录用户访问失败视图

0.5.0 (2022-12-14)

  • 修复定期付款收到的税费

  • 更健壮地接收原始订单 ID(如果 PayPal 无法处理 custom_data)

  • 升级到 Django 4.1

  • 修复如果首次订单状态返回则完成定期付款的问题

  • 只有当自定义数据无法解析时才记录错误

0.4.10 (2022-04-29)

  • 修复重复付款的问题

  • PayPalPaymentAdmin:显示连接的 IPN 字段

0.4.9 (2022-03-07)

  • 使自定义数据的解析更健壮

0.4.8 (2022-01-19)

  • 修复上一个版本的问题

  • 添加测试,并通过 GitHub Actions 在所有支持的 Django/Python 版本上进行测试

0.4.7 (2022-01-13)

  • 修复自定义付款数据中存在 ‘ 的问题

0.4.6 (2021-12-02)

  • 修复创建不良 JSON 的问题

0.4.5 (2021-12-01)

  • 修复 PayPalPaymentAdmin 中的 IPN 字段编辑问题

  • 在自定义中存储用户电子邮件,以使 IPN 管理员中可以执行搜索

0.4.4 (2021-12-01)

  • 在完成订单之前创建 PayPalPayment

0.4.3 (2021-11-30)

  • 修复定期付款的问题

  • 添加创建/修改/作者自动字段

0.4.2 (2021-11-08)

  • 修复其他 IPN 类型的问题

0.4.1 (2021-10-18)

  • 返回失败 URL 后取消订单

0.4.0 (2021-10-18)

  • 允许设置加密的 PayPal 表单

0.3.0 (2021-10-15)

  • 对沙盒/生产功能进行修复和改进

  • 反转沙盒逻辑 - 如果没有 PAYPAL_TEST,沙盒视图将返回生产环境,因此没有人可以在生产服务器上通过沙盒进行支付

0.2.2 (2021-10-12)

  • 修复遗忘的 pudb

0.2.1 (2021-10-12)

  • 添加沙盒视图,以便可以在同一服务器上同时使用生产环境和沙盒

0.2.0 (2021-10-11)

  • 修复与 PayPal 最大持续时间不兼容的周期

0.1.0 (2021-10-08)

  • 将 ipn.PayPalIpn 对象与 plans.Order 钩接(用于后续使用,例如确定 PayPal 手续费)

  • 为 django-plans 设置计划续订

0.0.2 (2018-08-05)

  • 应捕获的支付过程应正常工作

  • 自动生成按钮

0.0.1 (2018-07-23)

  • PyPI 上的第一个版本。

项目详情


下载文件

为您的平台下载文件。如果您不确定要选择哪一个,请了解更多关于 安装包的信息

源分布

django-plans-paypal-0.7.1.tar.gz (25.7 kB 查看哈希值)

上传时间

构建分布

django_plans_paypal-0.7.1-py2.py3-none-any.whl (17.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持