- ionic start ionicStripe blank
ionic cordova plugin add cordova-plugin-stripe
npm install --save @ionic-native/stripe
* import { Stripe } from '@ionic-native/stripe';
- import stripe again
import { Stripe } from "@ionic-native/stripe";
and add it to constructor
cardinfo: any = {
number: 4242424242424242,
expMonth: 8,
expYear: 2020,
cvc: 213
}
in my case, I record all the orders in my database before starting the payment process with stripe
this.stripe.setPublishableKey('pk_test**************');
this.stripe.createCardToken(this.cardinfo).then((response)=>{
// I get my token here response.id
});
this.stripe.createCardToken(this.cardinfo).then((response)=>{
// I get my token here response.id
const Payment = skygear.Record.extend('payment');
skygear.publicDB.save(new Payer({
'token': response,
'description':"decri[tion payment",
'prix':100,
})).then((record) => {
console.log(record);
}, (error) => {
console.error(error);
});
});
You will need a server to create a charge
Your package.json should have included "stripe" dependency, e.g. below:
{
"name": "example_project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "arsene",
"license": "ISC",
"dependencies": {
dotenv": "^5.0.1",
"stripe": "^5.5.0"
}
}
const skygear =require ('skygear');
const skygearCloud = require('skygear/cloud');
var stripe = require("stripe")("sk_test********************");
skygearCloud.afterSave('payment', function(record, original, pool, options) {
// write your code
stripe.charges.create({
amount: record.prix,
currency: "usd",
source: record.token.id,
description: record.description
}, function(err, charge) {
if (err) {
console.log("Erreur" + JSON.stringify(err))
}
// asynchronously called
});
}, {
async: false
});