arckinteractive / stripe
此插件为与Stripe接口的Elgg API层提供支持
Requires
- php: >=5.3.3
- composer/installers: >=1.0.8
- stripe/stripe-php: 3.*
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);