Author: Capia As / Bjorn Ole Lindseth
Date: 2020-06-30

# Shinyservicebot

#### Capia As / Bjorn Ole Lindseth

#### 2020-06-30

# shinyservicebot - Create in-app purchasing and subscriptions through ‘Servicebot’ payment using the ‘Stripe’ framework

`shinyservicebot` Create in-app purchasing and subscriptions through ‘Servicebot’ payment using the ‘Stripe’ framework.

## What is Servicebot and Stripe

### Servicebot

“Servicebot provides a user interface (UI) on top of Stripe. Stripe will remain the single source of truth for all things billing which makes Servicebot the easiest & fastest way to launch with Stripe.”

Click here for more information about servicebot.

### Stripe

Online payment processing for internet businesses. Stripe is a suite of payment APIs that powers commerce for online businesses

Click here for more information about stripe.

## Installation

`shinyservicebot` is available through both GitHub ( soon on cran ):

To install the stable CRAN version:

    install.packages("servicebot")

To install the latest development version from GitHub:

    install.packages("remotes")
    remotes::install_github("capiaas/servicebot")

## Getting Started

To learn more we highly recommend you check out the servicebot docs. The site will explains in depths the setup of servicebot.

### Servicebot setup

- Setup servicebot account: https://dashboard.servicebot.io/signup
- Available config parameters Click here.

## In use

### Example: Pricing embed:

    library(shinyservicebot)
    shinyservicebot::shinyservicebot(servicebot_config, width = "auto")

    # init servicebot pr user login
    shinyservicebot::init(dev_mode = TRUE)
    # Config
    servicebot_config = list(
      servicebot_id =  "E0OQN0P0Dort", # // LIVE & TEST MODE IDs ARE DIFFERENT
      service =   "Flat Subscription",
      email =  "shinyservicebot36io3ejbyf1pea7g61mxki@yopmail.com"
    )
    # Render the shinyservoicebot pricing
    shinyservicebot::shinyservicebotOutput("servicebot")

Pricing page

### Example: Portal embed in Shiny app

    library(shiny)
    library(shinyservicebot)

    # -------
    # FOR LIVE PRODUCTION
    # -------
    # shinyservicebot::init(
    #   servicebot_secret    = "Your servicebot secret",
    #   secure_setup         = TRUE
    # )

    # -------
    # FOR DEVELOPMENT
    # -------
    shinyservicebot::init(dev_mode = TRUE)

    # Config
    servicebot_config = list(
      servicebot_id =  "E0OQN0P0Dort", # // LIVE & TEST MODE IDs ARE DIFFERENT
      service =   "Flat Subscription",
      email =  "shinyservicebot36io3ejbyf1pea7g61mxki@yopmail.com",
      options = list(
        i18n  = list(defaultLng = "en") # // SET DEFAULT LANGUAGE
      )
    )

    # UI ----
    ui <- fluidPage(
      # App title ----
      titlePanel("SERVICEBOT PORTAL PAGE"),
      shinyservicebot::shinyservicebotOutput("servicebot")
    )

    # SERVER ----
    server <- function(input, output) {
      output$servicebot <- shinyservicebot::renderShinyservicebot(
        shinyservicebot::shinyservicebot(servicebot_config, width = "auto")
      )
    }

    # Create Shiny app ----
    shinyApp(ui = ui, server = server)

Portal page

## Examples

You can run examples directly from the package

     # Test pricing embed inshiny app
     shinyservicebot::runPricingExample()

     # Test portal embed inshiny app
     shinyservicebot::runPortalExample()

     # Test signup embed inshiny app
     shinyservicebot::runSignupExample()