nlybe/stripe

此插件提供了一种与 Stripe 交互的 Elgg API 层

维护者

详细信息

github.com/nlybe/stripe

主页

源代码

安装: 3

依赖: 0

建议: 0

安全性: 0

星标: 0

关注者: 2

分支: 4

类型: elgg-plugin

3.1.10 2022-03-18 07:41 UTC

This package is auto-updated.

Last update: 2024-09-21 12:33:53 UTC


README

Elgg 3.0

Elgg 的 Stripe.com API 层

此插件主要用于开发者,他们正在实施支付流程。

简介

此插件实现了一个用于与 Elgg 交互的 API 层。它实现了大多数常见方法,包括创建和更新客户、创建收费、添加和删除卡片等。

目标是提供一个统一的 API,它能够与 Elgg 的实体架构协同工作,这包括维护例如 Elgg 用户和 Stripe 客户之间的引用。

此外,该插件还提供了一个用户界面,用户可以通过该界面管理他们的支付方式、查看他们的交易历史等。

架构设计旨在尽可能避免在 Elgg 中存储数据,这样您的网站就能保持 PCI 合规性,同时提供广泛的电子商务可能性。

此插件提供 API 用于创建/更新/删除/查看

  • 客户
  • 卡片
  • 收费
  • 计划
  • 订阅
  • 发票

其他功能,如 Stripe Connect 或转账,可以/可能通过单独的插件实现。

安全考虑

网站所有者有责任启用 SSL 加密,并采取额外的预防措施来保护用户免受未经授权访问其个人数据(尽管这些数据未存储在 Elgg 数据库中,但某些信息将实时提供给观众)以及防止未经授权的网站商品支付(如果信用卡存储在客户实体中)。

可能是一个好主意确保用户会话定期超时,或者对与 stripe 相关的页面进行密码保护。

Webhooks

为了确保 Elgg 接收一些关键更新,请按以下方式设置您的 Stripe webhooks

测试 https://YOUR-SITE/services/api/rest/json?method=stripe.webhooks&environment=sandbox

生产 https://YOUR-SITE/services/api/rest/json?method=stripe.webhooks&environment=production

设置好 webhooks 后,您可以在 Elgg 中添加处理程序,以处理 $stripe_event_type, 'stripe.events' 插件钩子,以实现额外的逻辑。您的回调函数将接收到一个 Stripe 事件对象和环境描述符。

Stripe 事件的列表可以在以下位置找到: https://stripe.com/docs/api#event_types

客户

每当您通过 API 传递电子邮件、用户 guid 或用户实体时,都会自动创建客户。

每当有用户通过电子邮件注册并拥有 Stripe 客户账户时,Stripe 客户账户将被映射到该用户,并且交易历史将可供用户查看。

示例:添加一张卡片

$token = get_input('token'); // this would have been generated by stripe.js
$user = elgg_get_logged_in_user_entity();

$client = new StripeClient();
$client->createCard($user, $token);

示例:创建收费

$user_guid = elgg_get_logged_in_user_guid();

$charge = array(
	'amount' => 12545, // amount in cents
	'currency' => 'USD',
	'card' => $card_id, // optional if the customer has a card on file
	'metadata' => array(
		'cart_guid' => $cart_guid,
		'shop_guid' => $shop_guid,
	),
);

$client = new StripeClient();
$client->createCharge($user_guid, $charge);