nativescript-paypal2

    2.6.10 • Public • Published

    npm npm

    NativeScript PayPal

    NativeScript module for implementing simple PayPal checkouts using official SDK.

    Donate

    License

    MIT license

    Platforms

    • Android

    Roadmap

    Installation

    Run

    tns plugin add nativescript-paypal

    inside your app project to install the module.

    Android

    AndroidManifest.xml

    Keep sure to define the following permissions, activities and other data in your manifest file:

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
     
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.VIBRATE" />
        
        <action android:name="android.intent.action.MAIN" />
     
        <category android:name="android.intent.category.LAUNCHER" />
     
        <uses-feature android:name="android.hardware.camera"
                      android:required="false" />
        <uses-feature android:name="android.hardware.camera.autofocus"
                      android:required="false" />
     
        <application>
            <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
            <activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
            <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
            <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
            <activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" />
            <activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" />
            <activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" />
            <activity android:name="io.card.payment.DataEntryActivity" />
            
            <service android:name="com.paypal.android.sdk.payments.PayPalService"
                     android:exported="false" />
        </application>
        
    </manifest>

    app.gradle

    Keep sure to have a reference to the PayPal SDK in your app/App_Resources/Android/app.gradle file of your project.

    dependencies {
        // PayPal
        compile 'com.paypal.sdk:paypal-android-sdk:2.14.2'
    }

    Demo

    For quick start have a look at the demo/app/main-view-model.js file of the demo app to learn how it works.

    Otherwise ...

    Usage

    Include

    Include the module in your code-behind:

    var PayPal = require("nativescript-paypal");

    Initialize

    Initialize the environment:

    function onPageLoaded(args) {
        PayPal.init({
            clientId: '<YOUR-CLIENT-ID>'
        });
    }
    exports.onPageLoaded = onPageLoaded;

    The (optional) object that is submitted to the PayPal.init function has the following structure:

    Properties

    Name Description
    acceptCreditCards [OPTIONAL] Accept credit cards or not. Default: (true)
    account [OPTIONAL] Defines information about the account.
    clientId The PayPal ID for your app that was generated in the PayPal Developer Portal.
    defaults [OPTIONAL] Defines default data.
    environment [OPTIONAL] The environment to use. Possible values are: 0 = ENVIRONMENT_SANDBOX, 1 = ENVIRONMENT_PRODUCTION, 2 = ENVIRONMENT_NO_NETWORK.
    onActivityResult [OPTIONAL] Logic for Activity.onActivityResult method of the underlying Android activity that is used to invoke logic for other modules, e.g.
    rememberUser [OPTIONAL] Remember the last user for the next payment or not. Default: (true)
    requestCode [OPTIONAL] The custom request code to use (e.g. for Activity.onActivityResult Android method). Default: 230958624
    account

    The account object has the following structure:

    Properties
    Name Description
    name [OPTIONAL] The name of the merchant.
    privacyPolicy [OPTIONAL] The URI to the privacy policy of the merchant.
    userAgreement [OPTIONAL] The URI to the user agreement of the merchant.
    defaults

    The defaults object has the following structure:

    Properties
    Name Description
    userEmail [OPTIONAL] The default user email.
    userPhone [OPTIONAL] The default user phone.
    userPhoneCountryCode [OPTIONAL] The default user phone country code.

    Start a payment

    function buyProduct(args) {
        // configure
        var payment = PayPal.newPayment()
            .setDescription('My product')
            .setAmount(59.79);
     
        // start checkout / payment
        payment.start(function(cbResult) {
            switch (cbResult.code) {
                case 0:
                    // SUCCESS
                    // pay key is stored in 'cbResult.key'
                    break;
                    
                case 1:
                    // operation was CANCELLED
                    break;
                    
                case -1:
                    // checkout FAILED
                    break;
                    
                case -2:
                    // "unhandled exception"
                    break;
            }
        });
    }
    exports.buyProduct = buyProduct;

    The payment object that is created by PayPal.newPayment function has the following structure.

    Methods

    Name Description
    getAmount Gets the price. Example: var a = payment.getAmount();
    getBnCode Gets the BN code. Example: var bc = payment.getBnCode();
    getCurrency Gets the custom currency to use. Example: var c = payment.getCurrency();
    getCustom Gets the custom value for the payment. Example: var c = payment.getCustom();
    getDescription Gets the (short) description. Example: var d = payment.getDescription();
    getDetails Gets an object with the payment details. Example: var d = payment.getDetails();
    getInvoiceNumber Gets the custom invoice number. Example: var i = payment.getInvoiceNumber();
    setAmount Sets the price. Example: payment.setAmount(1.25);
    setBnCode Sets a BN code. Example: payment.setBnCode('Your BN Code');
    setCurrency Sets the custom currency to use. Example: payment.setCurrency('EUR');
    setCustom Sets the custom value for the payment. Example: payment.setCustom('MY-PRODUCT-ID');
    setDetails Sets details (shipping, subtotal & tax). Example: payment.setDetails(4.95, 199.99, 1.19);
    setDescription Sets the (short) description. Example: payment.setDescription('This is really awesom!');
    setInvoiceNumber Sets the custom invoice number. Example: payment.setInvoiceNumber('MY_INVOICE-666');
    start Starts the payment / checkout process.
    start

    The callback that is submitted to the payment.start method receives an object with the following properties:

    Name Description
    code The result code. 0 = success, -3 = JSON parse error, -2 = unhandled exception, -1 = checkout failed, 1 = cancelled, 2 = no confirm data, 3 = no JSON data
    key The key of the payment (if code = 0)

    Enhancements

    Logging

    If you want to get the logging output of the module, you can use PayPal.addLogger function to add a callback that receives a message from the module:

    PayPal.addLogger(function(msg) {
        console.log('[nativescript-paypal]: ' + msg);
    });

    Install

    npm i nativescript-paypal2

    DownloadsWeekly Downloads

    5

    Version

    2.6.10

    License

    MIT

    Unpacked Size

    26.6 kB

    Total Files

    7

    Last publish

    Collaborators

    • garwin4j