All Projects → Fdom92 → stencil-payment

Fdom92 / stencil-payment

Licence: MIT License
Payment request API implementation in Stenciljs

Programming Languages

HTML
75241 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to stencil-payment

Atoms
Atoms for Blaze UI
Stars: ✭ 1,505 (+5275%)
Mutual labels:  stencil, stenciljs
pdf-viewer
PDF viewer web component built in StencilJS. Reusable in Angular, Ionic, React, Vue.JS, etc.
Stars: ✭ 65 (+132.14%)
Mutual labels:  stencil, stenciljs
gatsby-remark-highlight-code
Adds stylish cards and syntax highlighting to code blocks in markdown files
Stars: ✭ 63 (+125%)
Mutual labels:  stencil, stenciljs
Stencil
A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
Stars: ✭ 9,880 (+35185.71%)
Mutual labels:  stencil, stenciljs
solar-components
Web Components Implementation of Solar Design System
Stars: ✭ 16 (-42.86%)
Mutual labels:  stencil, stenciljs
stencil-realworld-app
An example SPA written with Stencil
Stars: ✭ 56 (+100%)
Mutual labels:  stencil, stenciljs
stencil-boilerplate
A Stencil app boilerplate including routing, Redux etc.
Stars: ✭ 51 (+82.14%)
Mutual labels:  stencil, stenciljs
Ionic Framework
A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.
Stars: ✭ 45,802 (+163478.57%)
Mutual labels:  stencil, stenciljs
generator-stencil
Scaffolding tool 🔨 for Stencil js applications
Stars: ✭ 16 (-42.86%)
Mutual labels:  stencil, stenciljs
web-photo-filter
A Web Component to apply Instagram-like WebGL filters to photos
Stars: ✭ 105 (+275%)
Mutual labels:  stencil, stenciljs
anywhere-webcomponents
A UI work in progress based on custom elements (web components) for use in anywhere.
Stars: ✭ 17 (-39.29%)
Mutual labels:  stencil, stenciljs
nuxt-stencil
Easy Stencil.js component library integration with Nuxt.js.
Stars: ✭ 16 (-42.86%)
Mutual labels:  stencil, stenciljs
block-photos
A photos app built with Ionic and Blockstack as backend.
Stars: ✭ 24 (-14.29%)
Mutual labels:  stencil, stenciljs
capacitor-site
Capacitor website
Stars: ✭ 0 (-100%)
Mutual labels:  stencil, stenciljs
stencil-tailwind-plugin
Plugin for using tailwindcss with StencilJS
Stars: ✭ 17 (-39.29%)
Mutual labels:  stencil, stenciljs
ionic-custom-components
🌈 Ionic Tutorial: Mastering Web Components in Ionic Framework. This repo is an Ionic project showcasing Angular custom components and Stencil custom web components.
Stars: ✭ 30 (+7.14%)
Mutual labels:  stencil, stenciljs
EPAYMENT
EPayment - Multi Payment Provider for .Net Core
Stars: ✭ 43 (+53.57%)
Mutual labels:  payment
awesome-payment
A curated list of payment services
Stars: ✭ 22 (-21.43%)
Mutual labels:  payment
paydash
Worker payments dashboard for MGNREGA
Stars: ✭ 44 (+57.14%)
Mutual labels:  payment
aleph
Aleph is a 3D object viewer and annotation/measurement tool built with A-Frame, AMI, StencilJS, and Ionic
Stars: ✭ 64 (+128.57%)
Mutual labels:  stenciljs

Built With Stencil

wc-payment

wc-payment is a web component built with Stencil that allows you to use the Payment Request API.

Demo

Getting Started

To try this component:

git clone [email protected]:Fdom92/stencil-payment.git
cd my-app
git remote rm origin

and run:

npm install
npm start

Using this component

Script tag

  • Put <script src='https://unpkg.com/stencil-payment@latest/dist/payment.js'></script> in the head of your index.html
  • Then you can use the element like this:
<wc-payment>
    Pay
</wc-payment>

Node Modules

  • Run npm install stencil-payment --save
  • Put a script tag similar to this <script src='node_modules/stencil-payment/dist/payment.js></script> in the head of your index.html
  • Then you can use the element like this:
<wc-payment>
    Pay
</wc-payment>

In a stencil-starter app

  • Run npm install stencil-payment --save
  • Add { name: 'stencil-payment' } to your collections
  • Then you can use the element like this:
<wc-payment>
    Pay
</wc-payment>

Parameters

methodData

You need to pass the list of payment methods:

var methodData = [
  {
    supportedMethods: ["visa", "mastercard"]
  }
]

At the moment payment api only accept this cards:

  • amex
  • diners
  • discover
  • jcb
  • maestro
  • mastercard
  • unionpay
  • visa

details

You need to pass the details of the transaction, an object with displayItems and the total object with the final value:

var details = {
  displayItems: [
    {
      label: "Original donation amount",
      amount: { currency: "USD", value : "65.00" }, // US$65.00
    },
    {
      label: "Friends and family discount",
      amount: { currency: "USD", value : "-10.00" }, // -US$10.00
      pending: true // The price is not determined yet
    }
  ],
  total:  {
    label: "Total",
    amount: { currency: "USD", value : "55.00" }, // US$55.00
  }
}

options

You can also get the email address, phone number or name of a user when configuring the options object:

  var options = {
    requestShipping: true,
    requestPayerEmail: true,
    requestPayerPhone: true,
    requestPayerName: true
  };

Events

paymentFailed

You can listen to this event to know when the payment was unsucessfull:

element = document.querySelector('wc-payment');
element.addEventListener("paymentFailed", () => {});

paymentSucceeded

You can listen to this event to know when the payment was sucessfull:

element = document.querySelector('wc-payment');
element.addEventListener("paymentSucceeded", () => {});

Methods

show

You can show the payment request anytime with the show method like this:

element = document.querySelector('wc-payment');
element.show();

This way you can bind this function to your own pay button or wherever you want.

abort

You can abort the transaction with the abort method anytime due to some error.

element = document.querySelector('wc-payment');
element.abort();
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].