此插件为与Stripe接口的Elgg API层提供支持

安装: 125

依赖: 0

建议: 0

安全: 0

星级: 5

关注者: 13

分支: 4

开放问题: 0

类型: elgg-plugin

2.1.7 2017-10-13 13:11 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:17 UTC


README

Elgg的Stripe.com API层

此插件主要面向需要实现支付流程的开发者。

简介

此插件实现了与Elgg接口的API层,包括创建和更新客户、创建费用、添加和删除卡等大多数常用方法。

目标是提供一个与Elgg实体架构兼容的统一API,这包括维护例如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中添加处理程序来处理'plugin hook'中的$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);