跳转到主要内容

用于处理使用Django Google Sheets集成退款的库

项目描述

mitol-django-google-sheets-refunds

这是Open Learning Django Google Sheets库,用于处理通过Google Sheets的退款请求

设置

在设置此库之前,请确保首先设置了 mitol-django-google-sheets。请按照这里的说明进行。

安装 mitol-django-google-sheets 后,

pip install mitol-django-google-sheets-refunds

settings.py

INSTALLED_APPS = [
    ...
    "mitol.google_sheets_refunds.apps.GoogleSheetsRefundsApp",
]
MITOL_GOOGLE_SHEETS_REFUNDS_PLUGINS = [
    "ecommerce.plugins.RefundPlugin"
]

ecommerce/plugins.py

from mitol.google_sheets_refunds.hooks import hookimpl

class RefundPlugin:
    @hookimpl
    def refunds_process_request(refund_request: RefundRequestRow) -> RefundResult:
        # TODO: look up the user/order
        # TODO: mark the order as refunded
        # TODO: unenroll the user

创建您的Google Sheets文件夹

文件夹结构应如下所示

  1. 包含具有“退款表单响应”和“退款”工作表的电子表格,这些工作表正在处理。
  2. 请求表单

向开发者请求模板文件夹以复制此结构。

将设置添加到您的应用程序中

在您的 .env 文件中设置 MITOL_GOOGLE_SHEETS_REFUNDS_REQUEST_WORKSHEET_ID。这是必需的。

一些设置有默认值,您可能需要根据您的表格更新它们。

设置说明(除 mitol-django-google-sheets 中描述的之外)

  • MITOL_GOOGLE_SHEETS_REFUNDS_REQUEST_WORKSHEET_ID

    入学变更电子表格中退款和延期工作表的ID。这些可以通过打开电子表格,选择“退款”或“延期”工作表,并从URL中复制 gid 值来找到。

    示例: https://docs.google.com/spreadsheets/d/<MITOL_GOOGLE_SHEETS_ENROLLMENT_CHANGE_SHEET_ID>/edit#gid=<MITOL_GOOGLE_SHEETS_REFUNDS_REQUEST_WORKSHEET_ID>

  • MITOL_GOOGLE_SHEETS_REFUNDS_PROCESSOR_COL

    包含处理行的用户退款更改工作表列的零索引

  • MITOL_GOOGLE_SHEETS_REFUNDS_COMPLETED_DATE_COL

    退款更改表列的零基索引,包含行完成日期

  • MITOL_GOOGLE_SHEETS_REFUNDS_ERROR_COL

    退款更改表列的零基索引,包含行处理错误消息

  • MITOL_GOOGLE_SHEETS_REFUNDS_SKIP_ROW_COL

    退款更改表列的零基索引,指示是否应跳过行

  • MITOL_GOOGLE_SHEETS_REFUNDS_FIRST_ROW

    数据的第一行(它在电子表格中显示),我们的脚本应将其视为处理退款请求工作表中的数据

用法

要处理您的退款请求的Google表格,请简单添加

refund_request_handler = RefundRequestHandler()
results = refund_request_handler.process_sheet()

以下是当前我们获取Google表格退款处理的两种主要方式

  1. 运行管理命令。例如: ./manage.py process_refund_requests -i "<spreadsheet id>"
  2. 设置计划好的celery任务。例如
from mitol.google_sheets_refunds.api import RefundRequestHandler
from main.celery import app

@app.task
def process_refund_requests():
    """
    Task to process refund requests from Google sheets
    """
    refund_request_handler = RefundRequestHandler()
    if not refund_request_handler.is_configured():
        log.warning("MITOL_GOOGLE_SHEETS_* are not set")
        return
    refund_request_handler.process_sheet()

开发者设置

对于本地开发和测试,请按照以下开发者设置说明操作。

项目详情


下载文件

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

源分布

mitol-django-google-sheets-refunds-2023.12.19.tar.gz (10.5 kB 查看哈希)

上传时间

构建分布

由以下支持

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