定制 innoweb/silverstripe-silvershop-stripe 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

innoweb/silverstripe-silvershop-stripe

最新稳定版本:2.1.1

Composer 安装命令:

composer require innoweb/silverstripe-silvershop-stripe

包简介

Adds stripe customer and creditcard saving to silvershop

README 文档

README

Stripe uses a little different payment flow than other processors in that you have to do some clientside javascript work to set it up and you get a token back instead of credit card processing fields.

This module uses Omnipay's Stripe adapter but overrides SilverShop's default checkout component to inject the right JavaScript.

Based on Mark Guinn's SS3 version, extended with saving of the token to the Member object for later use.

Requirements

uses Stripe.js v3

Installation

composer require innoweb/silverstripe-silvershop-stripe

Configuration

Payment Intents

Create a file at app/_config/payment.yml that looks something like the following:

---
Name: payment
---
SilverStripe\Omnipay\Model\Payment:
  allowed_gateways:
    - 'Stripe_PaymentIntents'

SilverStripe\Omnipay\GatewayInfo:
  Stripe_PaymentIntents:
    failureUrl: '/checkout/summary'
    parameters:
      apiKey: sk_test_SECRET-KEY-FOR-YOUR-TEST-ACCOUNT
      publishableKey: pk_test_PUBLISHABLE-KEY-FOR-TEST-ACCOUNT

---
Only:
  environment: 'live'
---
SilverStripe\Omnipay\GatewayInfo:
  Stripe_PaymentIntents:
    failureUrl: '/checkout/summary'
    parameters:
      apiKey: sk_live_SECRET-KEY-FOR-YOUR-LIVE-ACCOUNT
      publishableKey: pk_live_PUBLISHABLE-KEY-FOR-LIVE-ACCOUNT

If needed, the customer will be redirected to Stripe or his bank to verify the transaction via SCA or 3D-Secure.

A custom failure URL can be specified here for when a payment fails (for example, the card was declined).

Saving credit cards

The Stripe_PaymentIntents gateway creates Stripe customers and cards when a payment is processed and stores their tokens in the Silverstripe database.

To disable the storage of card tokens and the use of previously stored cards in the checkout process, add the following to your config:

---
Name: app-stripe-config
After: silvershop-stripe-config
---
Innoweb\SilvershopStripe\Checkout\Components\StripeOnsitePayment:
  enable_saved_cards: false

This will disable storing creadit card tokens in the database and hide the field to select previsouly stored cards in the payment form.

Stripe still records the card tokens on their platform in order to be able to process refunds etc. But there is no reference to the cards in the Silverstripe database.

Selecting a previously stored card

To select an existing card, the cards are shown as radio buttons in the payment form.

When there are more than 3 cards stored for a user, the field is displayed as a dropdown.

You can change that threshold by adding the following to your config:

Innoweb\SilvershopStripe\Checkout\Components\StripeOnsitePayment:
  radio_button_limit: 100

Styling the card selection radio buttons

The radio button labels include a rudimentary HTML structure to allow styling. You can add and amend the following styles to your CSS:

.field.optionset.existingCreditCards label .cc {
    display: inline-flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    width: 100%;
    max-width: 20rem;
}
.field.optionset.existingCreditCards label .cc-brand {
    margin-right: auto;
}

Stripe Charge (deprecated)

Create a file at app/_config/payment.yml that looks something like the following:

---
Name: payment
---
SilverStripe\Omnipay\Model\Payment:
  allowed_gateways:
    - 'Stripe'

SilverStripe\Omnipay\GatewayInfo:
  Stripe:
    parameters:
      apiKey: sk_test_SECRET-KEY-FOR-YOUR-TEST-ACCOUNT
      publishableKey: pk_test_PUBLISHABLE-KEY-FOR-TEST-ACCOUNT

---
Only:
  environment: 'live'
---
SilverStripe\Omnipay\GatewayInfo:
  Stripe:
    parameters:
      apiKey: sk_live_SECRET-KEY-FOR-YOUR-LIVE-ACCOUNT
      publishableKey: pk_live_PUBLISHABLE-KEY-FOR-LIVE-ACCOUNT

License

BSD 3-Clause License, see License

统计信息

  • 总下载量: 3.42k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2018-12-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固