基于django-rest框架的instamojo集成

drf-instamojo的Python项目详细描述


Instamojo | Django REST框架

django rest框架中instamojo集成的包

Instamojo | Django REST Framework是一个django打包的应用程序,它提供了基于django rest的必要的views 框架。它使Instamojo支付网关与Web/Mobile应用程序以及RESTful API的轻松集成成为可能 基于服务器。

投稿人:我们正在寻找可以在文档中投稿的人

安装
  • 通过pip
  • 下载并安装
pip install drf_instamojo


通过easy_install下载并安装

easy_install drf_instamojo
  • 如果需要,在INSTALLED_APPS中添加drfaddons(尽管这不是必需的!)
INSTALLED_APPS = [
    ...
    'drf_instamojo',
    ...
]
  • 还可以在INSTALLED_APPS
    中添加其他依赖项
INSTALLED_APPS = [
    ...
    'drfaddons',
    ...
]
  • urls.py中包含drf_instamojo的URL
urlpatterns = [
    ...
    path('api/instamojo/', include('drf_instamojo.urls')),
    ...
]

# or

urlpatterns = [
    ...
    url(r'^api/instamojo/', include('drf_instamojo.urls')),
    ...
]
  • 运行migrate命令:
python manage.py migrate

型号

应用程序有三种型号:

  • InstamojoConfiguration:您需要在此模型中定义instamojo配置。只有一个对象可以 is_active设置为True,将与Instamojo API一起使用
  • PaymentRequest:这将包含使用instamojo创建的所有instamojo付款请求。
  • Payment:这将包含从instamojo api收到的所有付款响应。

视图

应用程序有以下视图:

  • ListAddPaymentRequestView:应在此视图上发出所有付款请求。需要登录用户。 它将为用户提供所需的数据,包括用于付款的longurl
  • ListAddPaymentView:所有响应数据都应发布在此视图上不需要登录用户

网址

  • request/:通过此url发出的所有付款请求。
  • payment/:要发布在此url上的所有付款报告。

快速启动指南

  • 完成Installation Steps(上述)
  • 通过Django AdminInstamojo Configuration
  • 中创建配置
  • is_active设置为True
  • 注意:首先使用沙盒模式凭据

如何与应用程序集成

  • 使用serializers与自定义应用程序集成。

创建付款请求

示例
  • 创建视图:PaymentView
  • 使用PaymentRequestSerializer创建付款请求。
  • 检查serializers.py中的示例代码:
# Initialize serializer with proper data
prs = PaymentRequestSerializer(data={'amount': 120.00, 'purpose': 'Test', 'send_sms': False,
                                     'redirect_url': 'http://127.0.0.1/api/test/'})

# Check if data is valid
prs.is_valid(raise_exception=True)

instance = prs.save(created_by=user)
  • instance另存为app中的外键,指向发出付款请求的账单。
  • 退回longurl给客户付款
序列化程序的.save()中的“按要求创建”有问题
  • 如果应用程序不需要用户登录,请使用以下逻辑:
    • 在“付款”视图中,从用户获取以下数据:
      • 客户名称
      • 客户手机号mobile: 9987987345
      • 客户的电子邮件email: test@abc.com
    • 使用下面的代码创建一个逻辑来获取现有的或创建新的用户:
from django.contrib.auth import get_user_model

user_model = get_user_model()
try:
    user = user_model.objects.get(email=email)
except user_model.DoesNotExist:
    try:
        user = user_model.objects.get(mobile=mobile)
    except user_model.DoesNotExist:
        # Now you're dead sure that user does not exists.
        user = user_model.objects.create(name=name, mobile=mobile, email=email, password="RANDOM_PASSWORD")

  • 否则,只需在序列化程序上调用.save()时使用user = request.user作为用户。
  • 奖金指针:签出Django REST Framework - User

付款完成
  • 使用payment_done信号
  • 使用app中的__init__.py, handlers.py创建signalspython目录
  • handlers.py中,创建用于处理payment_done信号的函数
from django.dispatch import receiver

from drf_instamojo.models import PaymentRequest
from drf_instamojo.signals import payment_done


@receiver(signal=payment_done, sender=PaymentRequest)
def payment_done_handler(instance: PaymentRequest, sender, *args, **kwargs):
    ...
    # Payment completed
    # bill.paid()
    # item.dispatch()
    ...

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修复无法解析从未使用过的符号和变量的错误   java lucene搜索   java无法获取可用的提供程序解析程序   java问题使用引发SAXException的方法编译类   是否可以编辑抽象类?JAVA   java AppletViewer出现错误并试图加入计时器   基于java JNI的Android库,在没有NDK的情况下使用   Java如何使用Jenkins中的环境变量?   XMLHttpRequestJavaJavaScript   JPA实体中的java枚举类型字段   java泛型方法将一种枚举类型转换为另一种枚举类型   java Liveconnect小程序问题   java SpringBoost应用程序和Apache Ignite配置:启动ApplicationContext时出现问题   反射从Java8中的类对象获取方法引用   调试时Eclipse在java 8类加载器上中断