跳转到主要内容

在django-oscar-api之上提供更灵活的结账API,具有可插拔的支付方法界面。

项目描述

build coverage license kit format

在django-oscar-api之上提供更灵活的结账API,具有可插拔的支付方法界面。

兼容支付插件

  • django-oscar-cybersource: 提供使用Cybersource Secure Acceptance Silent Order POST符合PCI SAQ A-EP的信用卡处理订单支付。

  • django-oscar-wfrs: 提供使用富国银行零售服务SOAP API进行融资的订单支付。

安装

  1. 使用文档安装django-oscar-api。

  2. 安装django-oscar-api-checkout软件包。

    $ pip install django-oscar-api-checkout
  3. 将oscarapicheckout添加到您的INSTALLED_APPS中

    # myproject/settings.py
    ...
    INSTALLED_APPS = [
        ...
        'oscarapicheckout',
    ] + get_core_apps([])
    ...
  4. 配置Oscar的订单状态管道。

    # myproject/settings.py
    ...
    # Needed by oscarapicheckout
    ORDER_STATUS_PENDING = 'Pending'
    ORDER_STATUS_PAYMENT_DECLINED = 'Payment Declined'
    ORDER_STATUS_AUTHORIZED = 'Authorized'
    
    # Other statuses
    ORDER_STATUS_SHIPPED = 'Shipped'
    ORDER_STATUS_CANCELED = 'Canceled'
    
    # Pipeline Config
    OSCAR_INITIAL_ORDER_STATUS = ORDER_STATUS_PENDING
    OSCARAPI_INITIAL_ORDER_STATUS = ORDER_STATUS_PENDING
    OSCAR_ORDER_STATUS_PIPELINE = {
        ORDER_STATUS_PENDING: (ORDER_STATUS_PAYMENT_DECLINED, ORDER_STATUS_AUTHORIZED, ORDER_STATUS_CANCELED),
        ORDER_STATUS_PAYMENT_DECLINED: (ORDER_STATUS_AUTHORIZED, ORDER_STATUS_CANCELED),
        ORDER_STATUS_AUTHORIZED: (ORDER_STATUS_SHIPPED, ORDER_STATUS_CANCELED),
        ORDER_STATUS_SHIPPED: (),
        ORDER_STATUS_CANCELED: (),
    }
    
    OSCAR_INITIAL_LINE_STATUS = ORDER_STATUS_PENDING
    OSCAR_LINE_STATUS_PIPELINE = {
        ORDER_STATUS_PENDING: (ORDER_STATUS_SHIPPED, ORDER_STATUS_CANCELED),
        ORDER_STATUS_SHIPPED: (),
        ORDER_STATUS_CANCELED: (),
    }
  5. 配置启用哪些支付方法以及谁可以使用它们。

    # myproject/settings.py
    ...
    API_ENABLED_PAYMENT_METHODS = [
        {
            'method': 'oscarapicheckout.methods.Cash',
            'permission': 'oscarapicheckout.permissions.StaffOnly',
        },
        {
            'method': 'some.other.methods.CreditCard',
            'permission': 'oscarapicheckout.permissions.Public',
        },
    ]
  6. 在oscarapi之前直接将oscarapicheckout添加到您的根URL配置中。

    # myproject/urls.py
    ...
    from django.apps import apps
    from oscarapi.app import application as oscar_api
    from oscarapicheckout.app import application as oscar_api_checkout
    
    urlpatterns = patterns('',
        ...
        url(r'^api/', include(apps.get_app_config("oscarapicheckout").urls[0])), # Must be before oscar_api.urls
        url(r'^api/', include(oscar_api.urls)),
        ...
    )

用法

以下是使用API将商品添加到购物车并结账的基本步骤。

  1. 将商品添加到购物车。

    POST /api/basket/add-product/
    
    {
        "url": "/api/products/1/",
        "quantity": 1
    }
  2. 列出当前用户可用的支付方法。

    GET /api/checkout/payment-methods/
  3. 提交订单,指定要使用的支付方法。

    POST /api/checkout/
    
    {
        "guest_email": "joe@example.com",
        "basket": "/api/baskets/1/",
        "shipping_address": {
            "first_name": "Joe",
            "last_name": "Schmoe",
            "line1": "234 5th Ave",
            "line4": "Manhattan",
            "postcode": "10001",
            "state": "NY",
            "country": "/api/countries/US/",
            "phone_number": "+1 (717) 467-1111",
        },
        "billing_address": {
            "first_name": "Joe",
            "last_name": "Schmoe",
            "line1": "234 5th Ave",
            "line4": "Manhattan",
            "postcode": "10001",
            "state": "NY",
            "country": "/api/countries/US/",
            "phone_number": "+1 (717) 467-1111",
        },
        "payment": {
            "cash": {
                "enabled": true,
                "amount": "10.00",
            },
            "creditcard": {
                "enabled": true,
                "pay_balance": true,
            }
        }
    }
  4. 检查每个启用的支付选项的状态。

    GET /api/checkout/payment-states/

项目详情


下载文件

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

源代码分发

django_oscar_api_checkout-3.5.0.tar.gz (32.2 kB 查看哈希值)

上传时间 源代码

构建分发

django_oscar_api_checkout-3.5.0-py3-none-any.whl (39.7 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面