tipsi-stripe

tipsi-stripe

  • Docs
  • Blog

.paymentRequestWithNativePay(options, [items]) -> Promise

Launches the Native Pay view to accept payment.

iOS

options — An object with the following keys:

Key Type Description
requiredBillingAddressFields Array[String] A bit field of billing address fields that you need in order to process the transaction. It can contain values of: all ‖ name ‖ email ‖ phone ‖ postal_address or be left unspecified to disable
requiredShippingAddressFields Array[String] A bit field of shipping address fields that you need in order to process the transaction. It can contain values of: all ‖ name ‖ email ‖ phone ‖ postal_address or be left unspecified to disable
shippingMethods Array An array of shippingMethod objects that describe the supported shipping methods.
currencyCode String The three-letter ISO 4217 currency code. Default is USD
countryCode String The two-letter code for the country where the payment will be processed. Default is US
shippingType String An optional value that indicates how purchased items are to be shipped. Default is shipping. Available options are: shipping ‖ delivery ‖ store_pickup ‖ service_pickup
shippingMethod — An object with the following keys:
Key Type Description
id String A unique identifier for the shipping method, used by the app
id String A short, localized description of the shipping method
label String A unique identifier for the shipping method, used by the app
detail String A user-readable description of the shipping method
amount String The shipping method’s amount

items — An array of object with the following keys:

Key Type Description
label String A short, localized description of the item.
amount String The summary item’s amount.
type String The summary item’s type. Must be "pending" or "final". Defaults to "final".

NOTE: The final item should represent your company; it'll be prepended with the word "Pay" (i.e. "Pay Tipsi, Inc $50")

Example

const items = [{
  label: 'Whisky',
  amount: '50.00',
}, {
  label: 'Tipsi, Inc',
  amount: '50.00',
}]

const shippingMethods = [{
  id: 'fedex',
  label: 'FedEX',
  detail: 'Test @ 10',
  amount: '10.00',
}]

const options = {
  requiredBillingAddressFields: ['all'],
  requiredShippingAddressFields: ['phone', 'postal_address'],
  shippingMethods,
}

const token = await stripe.paymentRequestWithNativePay(items, options)

Token structure – paymentRequestWithNativePay response

extra — An object with the following keys:

Key Type Description
shippingMethod Object Selected shippingMethod object
billingContact Object The user's billing contact object
shippingContact Object The user's shipping contact object

contact — An object with the following keys:

Key Type Description
name String The contact’s name
phoneNumber String The contact’s phone number
emailAddress String The contact’s email address
street String The street name in a postal address
city String The city name in a postal address
state String The state name in a postal address
country String The country name in a postal address
ISOCountryCode String The ISO country code for the country in a postal address
postalCode String The postal code in a postal address
supplementarySubLocality String The contact’s sublocality

Android

options — An object with the following keys:

Key Type Description
total_price String Total price for items
currency_code String Three-letter ISO currency code representing the currency paid out to the bank account
shipping_address_required (Optional) Bool Is shipping address menu required? Default is false
billing_address_required (Optional) Bool Is billing address menu required? Default is false
phone_number_required (Optional) Bool Is phone number required? Default is false
line_items Array Array of purchased items. Each item contains line_item

line_item — An object with the following keys:

Key Type Description
currency_code String Currency code string
description String Short description that will be shown to the user
total_price String Total order price
unit_price String Price per unit
quantity String Number of items

Example

const options = {
  total_price: '80.00',
  currency_code: 'USD',
  shipping_address_required: false,
  billing_address_required: true,
  shipping_countries: ["US", "CA"],
  line_items: [{
    currency_code: 'USD',
    description: 'Whisky',
    total_price: '50.00',
    unit_price: '50.00',
    quantity: '1',
  }, {
    currency_code: 'USD',
    description: 'Vine',
    total_price: '30.00',
    unit_price: '30.00',
    quantity: '1',
  }],
}

const token = await stripe.paymentRequestWithAndroidPay(options)

// Client specific code
// api.sendTokenToBackend(token)

Example of token:

{ card:
  { currency: null,
    fingerprint: null,
    funding: "credit",
    brand: "MasterCard",
    number: null,
    addressState: null,
    country: "US",
    cvc: null,
    expMonth: 12,
    addressLine1: null,
    expYear: 2022,
    addressCountry: null,
    name: null,
    last4: "4448",
    addressLine2: null,
    addressCity: null,
    addressZip: null
  },
  created: 1512322244000,
  used: false,
  extra: {
    email: "randomemail@mail.com",
    billingContact: {
      postalCode: "220019",
      name: "John Doe",
      locality: "NY",
      countryCode: "US",
      administrativeArea: "US",
      address1: "Time square 1/11"
    },
    shippingContact: {}
  },
  livemode: false,
  tokenId: "tok_1BV1IeDZwqOES60ZphBXBoDr"
}

Where billingContact and shippingContact are representation of UserAddress.

Docs
Getting StartedRunning on DeviceAPI Reference
More
BlogGitHubStar
Copyright © 2019 Tipsi.