Paypal и ionic 2 не работают и выдают ошибку JSON

#cordova #paypal #ionic-framework #ionic2

#кордова #paypal #ionic-framework #ionic2

Вопрос:

Я не уверен, почему я не могу интегрировать приложение Ionic2 с Paypal.

Я использую собственную оболочку Ionic для PayPal cordova mobile sdk.

Я получаю успех Paypal.init , но получаю ошибку JSON для renderSinglePaymentUI

 import { Injectable } from '@angular/core';
//import { Paypal, PaypalPayments } from 'ionic-native';

import {PayPal, PayPalPayment, PayPalPaymentDetails, PayPalConfiguration, PayPalConfigurationOptions} from 'ionic-native';
//import {PayPal} from 'ionic-native';

@Injectable()
export class Payments {

paymentdata : PayPalPayment;
paymentdetails: PayPalPaymentDetails;
paypalConfig: PayPalConfiguration;
paypalConfigOptions: PayPalConfigurationOptions;

constructor() {
 this.initiatePaypal();   
}

initiatePaypal(){
   // this.paypalConfig = new PayPalConfiguration("ssn.bala@gmail.com"," 65", "85256592", "MMS", "mmssingapore.org","mmssingapore.org",YES,0,YES,"en",YES,NO,YES,"ssn.bala-buyer@gmail.com", "testing123" );

PayPal.init({
        "PayPalEnvironmentProduction": "YOUR_PRODUCTION_CLIENT_ID",
        "PayPalEnvironmentSandbox": "AYghcu8pISVBO03yX58CVC7vccATg5jraW-k52jPw9V63RQkuIaS2H8moi2OnWln97FPvP-gDEMbMlHj"
        })
    .then(onSuccess => {
        console.log("init success");
        alert("init success"   JSON.stringify(onSuccess));
    })
    .catch(onError => {
        console.log("init failed", Error);
        alert("init failed"   JSON.stringify(onError));
    });
}


initiatePayment(){

    this.paymentdetails = new PayPalPaymentDetails("10.00", "0", "hello");
    this.paymentdata = new PayPalPayment("10.00","USD", "MMS tickets", "sale");


    PayPal.renderSinglePaymentUI(this.paymentdata)
    .then(onSuccess => {
         console.log('OnSuccess Render: '   JSON.stringify(onSuccess));
         alert('OnSuccess Render: '   JSON.stringify(onSuccess));
       })
    .catch(onError=> {
       console.log('onError Render: '   JSON.stringify(onError));
       alert('onError Render: '   JSON.stringify(onError));
         });
}



}
  

Я использую Ionic 2 RC0.

Информация о вашей системе:

Cordova CLI: 6.3.1 Версия Ionic Framework: 2.0.0-rc.0 Версия Ionic CLI: 2.1.0 Версия Ionic App Lib: 2.1.0-beta.1 ОС: Версия узла: v6.7.0

Комментарии:

1. вы не упомянули об ошибке, какую ошибку вы получаете

Ответ №1:

Сегодня я попытался использовать Ionic 2 и PayPal вместе. Я следовал инструкциям на http://ionicframework.com/docs/native/paypal и почти все работало, но за небольшими исключениями. Итак, вот простой провайдер, который хорошо работал. Надеюсь, это поможет! перед совершением платежа следует вызвать «предварительную загрузку», конечно, это всего лишь пример кода.

 import { Injectable } from '@angular/core';
import { PayPal, PayPalPayment, PayPalConfiguration } from '@ionic-native/paypal';

@Injectable()
export class PaypalProvider {    
    private paypal: PayPal;

    constructor() { }

    public preload() {
        this.paypal = new PayPal();

        this.paypal.init({
            PayPalEnvironmentProduction: "YOUR_PRODUCTION_CLIENT_ID",
            PayPalEnvironmentSandbox: "YOUR_SANDBOX_CLIENT_ID"
        }).then(value => {
            console.log('[???] init:', value);
            this.paypal.prepareToRender('PayPalEnvironmentSandbox', new PayPalConfiguration({
                presentingInPopover: true,
            })).then(value => {
                console.log('[???] prepared:', value);
            }).catch(error => {
                console.log('[???] Error:', error);
            });
        }).catch(error => {
            console.log('[???] Error:', error);
        });
    }

    public fooPayment() {
        let payment = new PayPalPayment('10.00', 'BRL', 'Some Product', 'Assinatura');
        this.paypal.renderSinglePaymentUI(payment).then(value => {
            console.log('[???] Payment:', value);
        }).catch(error => {
            console.log('[???] Payment Error', error);
        });
    }    
} // - - - 
  

Моя система:

 Cordova CLI: 6.5.0
Ionic Framework Version: 2.3.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.1.4
OS: Windows 8.1
Node Version: v6.9.1
  

Комментарии:

1. У меня это не сработало. Я все еще получаю JSON error