import {Component, NgZone, OnInit} from '@angular/core'; import {Platform} from '@ionic/angular'; import {ActivatedRoute, Router} from '@angular/router'; declare var window: any; const Paygilant = window.Paygilant; @Component({ selector: 'app-main', templateUrl: './main.page.html', styleUrls: ['./main.page.scss'], }) export class MainPage implements OnInit { userId = ''; constructor(private router: Router, private _route: ActivatedRoute, private zone: NgZone, private platform: Platform) { } ngOnInit() { this._route.queryParams.subscribe(params => { if (params && params.userId) { this.userId = params.userId; } }); } /** * Fired when the component routing to has finished animating. */ ionViewDidEnter(){ if (window.Paygilant) { if (window.device.platform === 'Android') { this.requestAndroidPermissions(); } else { this.requestContactsPermissions(); } window.Paygilant.startScreenListener(window.Paygilant.ScreenListenerType.PRODUCT_SCREEN).then((result) => { console.log('startScreenListener result is PRODUCT_SCREEN', result); }, error => { console.log('startScreenListener error PRODUCT_SCREEN', error); }); } } /** * Fired when the component routing from is about to animate. */ ionViewWillLeave(){ if (window.Paygilant) { Paygilant.pauseListenToSensors().then((pauseResult) => { console.log('pause ok', pauseResult); }, (pauseError) => { console.error('pause error', pauseError); }); } } requestContactsPermissions() { var page = this; cordova.plugins['diagnostic'].requestContactsAuthorization(function (status) { page.onRequestPermissionsResult("contacts", status === cordova.plugins['diagnostic'].permissionStatus.GRANTED); }, function (error) { alert(error); }); } requestAndroidPermissions() { const permissions = cordova.plugins['permissions'] || window.permissions; const list = [ permissions.READ_CONTACTS, ]; list.forEach(permissionName => { permissions.requestPermission( permissionName, status => { const hasPermission = status.hasPermission; window.Paygilant.onRequestPermissionsResult(permissionName, hasPermission).then( result => { console.log('onRequestPermissionsResult success', permissionName, hasPermission, result); }, error => { console.error('onRequestPermissionsResult error', permissionName, hasPermission, error); }); }, err => { alert('permsission err ' + permissionName + ' ' + JSON.stringify(err)); console.error('permsission err ', permissionName, JSON.stringify(err)); }); }); } onRequestPermissionsResult(name: string, granted: boolean) { window.Paygilant.onRequestPermissionsResult(name, granted).then( result => { console.log('onRequestPermissionsResult success', name, granted, result); }, error => { console.log('onRequestPermissionsResult error', name, granted, error); } ); } actionAddPaymentMethod() { if (window.Paygilant) { const user = new window.Paygilant.User(this.userId,'dummy@mail.com'); const creditCardDetail = new window.Paygilant.CreditCardDetail('', '1111', 2020, 10, '', '1111111111111111'); const payment = new window.Paygilant.Payment( window.Paygilant.PaymentMethodType.CREDIT_CARD, null, 'Test User', creditCardDetail, null ); const billingAddress = new window.Paygilant.Address( 'Test', 'User', 'Address 1', null, 'City', 'State', 'Country', '111111', '1111111111' ); const paymentMethod = new window.Paygilant.AddPaymentMethod(user, payment, billingAddress, {}); window.Paygilant.getRiskForCheckPoint(paymentMethod).then((result) => { console.log('getRiskForCheckPoint', result); }, error => { alert('getRiskForCheckPoint error ' + error); }); } } actionGeneral(){ if (window.Paygilant) { window.Paygilant.arriveToCheckPoint(new window.Paygilant.General()).then((result) => { console.log('getRiskForCheckPoint', result); }, error => { alert('getRiskForCheckPoint error ' + error); }); } } actionTransactionType(transactionTypeNumber: number) { if (window.Paygilant) { let transactionType = window.Paygilant.TransactionType.PURCHASE; switch (transactionTypeNumber) { case 1: { transactionType = window.Paygilant.TransactionType.PURCHASE; break; } case 2: { transactionType = window.Paygilant.TransactionType.MONEY_TRANSFER; break; } case 3: { transactionType = window.Paygilant.TransactionType.DEPOSIT; break; } case 4: { transactionType = window.Paygilant.TransactionType.WITHDRAW; break; } } const user = new window.Paygilant.User(this.userId, 'dummy@mail.com'); const creditCardDetail = new window.Paygilant.CreditCardDetail('', '1111', 2020, 10, '', '1111111111111111'); const payment = new window.Paygilant.Payment(window.Paygilant.PaymentMethodType.CREDIT_CARD, null, 'Test User', creditCardDetail, null); const billingAddress = new window.Paygilant.Address('Test', 'User', 'Address 1', null, 'City', 'State', 'Country', '111111', '1111111111'); const transaction = new window.Paygilant.Transaction(user, 50, window.Paygilant.CurrencyCode.USD, transactionType, 'destination-user', payment, billingAddress) ; window.Paygilant.getRiskForCheckPoint(transaction).then((result) => { this.zone.run(() => { this.router.navigate(['my-shop'], { queryParams: { requestId: result.requestId } }); }); }, error => { alert('getRiskForCheckPoint error ' + error); }); } } }