mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-01-19 08:32:52 +08:00
feat(checkout): add plugin (#3687)
This commit is contained in:
parent
383a88463a
commit
0dcbace822
224
src/@ionic-native/plugins/checkout/index.ts
Normal file
224
src/@ionic-native/plugins/checkout/index.ts
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
|
||||||
|
|
||||||
|
|
||||||
|
export interface CkoCardTokenRequest {
|
||||||
|
/**
|
||||||
|
* The card number
|
||||||
|
*/
|
||||||
|
number: string,
|
||||||
|
/**
|
||||||
|
* The expiry month of the card
|
||||||
|
*/
|
||||||
|
expiry_month: string,
|
||||||
|
/**
|
||||||
|
* The expiry year of the card
|
||||||
|
*/
|
||||||
|
expiry_year: string,
|
||||||
|
/**
|
||||||
|
* The card verification value/code. 3 digits, except for Amex (4 digits)
|
||||||
|
*/
|
||||||
|
cvv?: string,
|
||||||
|
/**
|
||||||
|
* The cardholder's name
|
||||||
|
*/
|
||||||
|
name?: string,
|
||||||
|
/**
|
||||||
|
* The cardholder's billing address
|
||||||
|
*/
|
||||||
|
billing_address?: Address,
|
||||||
|
/**
|
||||||
|
* The cardholder's phone number
|
||||||
|
*/
|
||||||
|
phone?: Phone
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CkoCardTokenResponse {
|
||||||
|
/**
|
||||||
|
* The token type
|
||||||
|
*/
|
||||||
|
type: string,
|
||||||
|
/**
|
||||||
|
* The token value
|
||||||
|
*/
|
||||||
|
token: string,
|
||||||
|
/**
|
||||||
|
* The expiration datetime of the token
|
||||||
|
*/
|
||||||
|
expires_on: string,
|
||||||
|
/**
|
||||||
|
* The expiry month of the card
|
||||||
|
*/
|
||||||
|
expiry_month: number,
|
||||||
|
/**
|
||||||
|
* The expiry year of the card
|
||||||
|
*/
|
||||||
|
expiry_year: number,
|
||||||
|
/**
|
||||||
|
* The cardholder's name
|
||||||
|
*/
|
||||||
|
name: string,
|
||||||
|
/**
|
||||||
|
* The card scheme
|
||||||
|
*/
|
||||||
|
scheme: string,
|
||||||
|
/**
|
||||||
|
* The last 4 digit of the card number
|
||||||
|
*/
|
||||||
|
last4: string,
|
||||||
|
/**
|
||||||
|
* The bin range of the card
|
||||||
|
*/
|
||||||
|
bin: string,
|
||||||
|
/**
|
||||||
|
* The card type
|
||||||
|
*/
|
||||||
|
card_type: string,
|
||||||
|
/**
|
||||||
|
* The card category
|
||||||
|
*/
|
||||||
|
card_category: string,
|
||||||
|
/**
|
||||||
|
* The card issuer name
|
||||||
|
*/
|
||||||
|
issuer: string,
|
||||||
|
/**
|
||||||
|
* The card issuer country (two-letter ISO)
|
||||||
|
*/
|
||||||
|
issuer_country: string,
|
||||||
|
/**
|
||||||
|
* The card product id
|
||||||
|
*/
|
||||||
|
product_id: string,
|
||||||
|
/**
|
||||||
|
* The card product type
|
||||||
|
*/
|
||||||
|
product_type: string,
|
||||||
|
/**
|
||||||
|
* The cardholder's billing address
|
||||||
|
*/
|
||||||
|
billing_address: Address,
|
||||||
|
/**
|
||||||
|
* The cardholder's phone number
|
||||||
|
*/
|
||||||
|
phone: Phone
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Address {
|
||||||
|
/**
|
||||||
|
* The first line of the address
|
||||||
|
*/
|
||||||
|
address_line1?: string,
|
||||||
|
/**
|
||||||
|
* The second line of the address
|
||||||
|
*/
|
||||||
|
address_line2?: string,
|
||||||
|
/**
|
||||||
|
* The address city
|
||||||
|
*/
|
||||||
|
city?: string,
|
||||||
|
/**
|
||||||
|
* The address state
|
||||||
|
*/
|
||||||
|
state?: string,
|
||||||
|
/**
|
||||||
|
* The address zip/postal code
|
||||||
|
*/
|
||||||
|
zip?: string,
|
||||||
|
/**
|
||||||
|
* The two-letter ISO country code of the address
|
||||||
|
*/
|
||||||
|
country?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Phone {
|
||||||
|
/**
|
||||||
|
* The international country calling code. Required for some risk checks
|
||||||
|
*/
|
||||||
|
country_code: string,
|
||||||
|
/**
|
||||||
|
* The phone number
|
||||||
|
*/
|
||||||
|
number: string
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Checkout
|
||||||
|
* @description
|
||||||
|
* Checkout.com cordova plugin
|
||||||
|
*
|
||||||
|
* @usage
|
||||||
|
* ```typescript
|
||||||
|
* import { Checkout } from '@ionic-native/checkout/ngx';
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* constructor(private checkout: Checkout) { }
|
||||||
|
*
|
||||||
|
* ...
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* this.checkout.initSandboxClient("pk_test_7d395871-0d66-4b62-85b6-8424df78b125")
|
||||||
|
* .then(() => this.label = "CKO init completed")
|
||||||
|
* .catch(err => this.label = err)
|
||||||
|
*
|
||||||
|
* ...
|
||||||
|
*
|
||||||
|
* let tokenRequest: CkoCardTokenRequest = {
|
||||||
|
* number: "4543474002249996",
|
||||||
|
* cvv: "010",
|
||||||
|
* expiry_month: "08",
|
||||||
|
* expiry_year: "2025",
|
||||||
|
* billing_address: {
|
||||||
|
* country: "FR"
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* this.cko.generateToken(tokenRequest)
|
||||||
|
* .then(tokenResponse => this.label = "Token: " + tokenResponse.token)
|
||||||
|
* .catch(err => this.label = err)
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
@Plugin({
|
||||||
|
pluginName: 'Checkout',
|
||||||
|
plugin: 'cordova-plugin-checkout',
|
||||||
|
pluginRef: 'cordova.plugins.Checkout',
|
||||||
|
repo: 'https://github.com/checkout/frames-cordova',
|
||||||
|
install: '',
|
||||||
|
installVariables: [],
|
||||||
|
platforms: ['Android', 'iOS']
|
||||||
|
})
|
||||||
|
@Injectable()
|
||||||
|
export class Checkout extends IonicNativePlugin {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize Frames plugin in Sandbox mode
|
||||||
|
* @param publicKey {string} Merchant's sandbox public key
|
||||||
|
* @return {Promise<any>} Returns a promise that resolves when Frames initiation is completed
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
initSandboxClient(publicKey: string): Promise<any> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize Frames plugin in Live mode
|
||||||
|
* @param publicKey {string} Merchant's live public key
|
||||||
|
* @return {Promise<any>} Returns a promise that resolves when Frames initiation is completed
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
initLiveClient(publicKey: string): Promise<any> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exchange card details for a reference token that can be used later to request a card payment from your backend. Tokens are single use and expire after 15 minutes.
|
||||||
|
* @param ckoCardTokenRequest {CkoCardTokenRequest} Card tokenization request object
|
||||||
|
* @return {Promise<CkoCardTokenResponse>} Returns a promise that resolves when Token response object
|
||||||
|
*/
|
||||||
|
@Cordova()
|
||||||
|
generateToken(ckoCardTokenRequest: CkoCardTokenRequest): Promise<CkoCardTokenResponse> {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user