Class StripeConnectServiceImpl

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      AccountPayoutStatus checkConnectAccountStatus()
      Returns the status of the current seller's account
      com.stripe.model.Account createAccount​(java.lang.String businessType, java.lang.String businessStructure, java.lang.String tosIp)
      This method creates a Stripe Connect Account
      StripeAccountDTO createAccount​(java.util.LinkedHashMap<java.lang.String,​java.lang.Object> metaInfo)
      This method creates a Stripe Connect Account based on meta information
      private com.stripe.model.Account createCompanyAccount​(java.lang.String businessStructure, java.lang.String tosIp)  
      boolean createExternalBankAccount​(java.util.LinkedHashMap<java.lang.String,​java.lang.Object> bankData)
      Creates ExternalAccount of a bank type.
      boolean createExternalCardAccount​(java.util.LinkedHashMap<java.lang.String,​java.lang.Object> cardData)
      Creates ExternalAccount of a card type.
      private com.stripe.model.Account createIndividualAccount​(java.lang.String tosIp)  
      private com.stripe.param.AccountCreateParams.Settings getAccountSettings()  
      java.util.List<java.lang.String> getBusinessStructures​(java.lang.String businessType)
      Gets list of suitable company AccountCreateParams.Company.Structure's for current Seller's country and given AccountCreateParams.BusinessType.
      java.util.List<java.lang.String> getBusinessTypes()
      Gets list of AccountCreateParams.BusinessType's values for current Seller's country.
      private java.lang.Object getCapabilities​(boolean update)  
      StripePersonDTO getInitialPerson()
      Gets person with fields, pre-filled from current logged Profile.
      java.util.Map<java.lang.String,​java.lang.String> getMCCs()
      Gets map of merchant category names and codes.
      private java.util.Map<java.lang.String,​java.lang.Object> getStripeMap​(Seller seller)  
      private java.lang.Object getTosAcceptance​(boolean update, java.lang.String ip)  
      private java.lang.String mapRequirement​(java.lang.String requirement)  
      private java.util.Set<java.lang.String> mapRequirements​(java.util.List<java.lang.String> requirements)  
      java.lang.String obtainConnectOnboardingLink​(java.lang.String refreshUrl, java.lang.String returnUrl)
      Obtains AccountLink and returns single-use Stripe URL that the platform can redirect the current user to in order to take them through the Connect Onboarding flow.
      private void setStripeMap​(Seller seller, com.stripe.model.Account account)  
      com.stripe.model.Account updateAccount​(java.lang.String accountId, StripeAccountDTO stripeAccountDTO)
      This method update a Stripe Connect Account
      StripeAccountDTO verifyAccount​(java.lang.String refreshUrl, java.lang.String returnUrl, java.util.LinkedHashMap<java.lang.String,​java.lang.Object> metaInfo)
      This method does update for Seller Seller entity with meta information which contains necessary data for Stripe Connect Account
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StripeConnectServiceImpl

        public StripeConnectServiceImpl()
    • Method Detail

      • createAccount

        @Transactional
        public com.stripe.model.Account createAccount​(java.lang.String businessType,
                                                      java.lang.String businessStructure,
                                                      java.lang.String tosIp)
                                               throws com.stripe.exception.StripeException
        Description copied from interface: StripeConnectService
        This method creates a Stripe Connect Account
        Specified by:
        createAccount in interface StripeConnectService
        Parameters:
        businessType - type of business
        businessStructure - structure of business
        tosIp - client ip-address
        Returns:
        created stripe account entity Account
        Throws:
        com.stripe.exception.StripeException - different Stripe errors
      • createAccount

        public StripeAccountDTO createAccount​(java.util.LinkedHashMap<java.lang.String,​java.lang.Object> metaInfo)
        Description copied from interface: StripeConnectService
        This method creates a Stripe Connect Account based on meta information
        Specified by:
        createAccount in interface StripeConnectService
        Parameters:
        metaInfo - map with extra information which is necessary to have
        Returns:
        created stripe account entity StripeAccountDTO
      • updateAccount

        public com.stripe.model.Account updateAccount​(java.lang.String accountId,
                                                      StripeAccountDTO stripeAccountDTO)
                                               throws com.stripe.exception.StripeException
        Description copied from interface: StripeConnectService
        This method update a Stripe Connect Account
        Specified by:
        updateAccount in interface StripeConnectService
        Parameters:
        accountId - stripe connect account id
        stripeAccountDTO - data to update
        Returns:
        created stripe account entity Account
        Throws:
        com.stripe.exception.StripeException - different Stripe errors
      • createIndividualAccount

        private com.stripe.model.Account createIndividualAccount​(java.lang.String tosIp)
                                                          throws com.stripe.exception.StripeException
        Throws:
        com.stripe.exception.StripeException
      • createCompanyAccount

        private com.stripe.model.Account createCompanyAccount​(java.lang.String businessStructure,
                                                              java.lang.String tosIp)
                                                       throws com.stripe.exception.StripeException
        Throws:
        com.stripe.exception.StripeException
      • getStripeMap

        private java.util.Map<java.lang.String,​java.lang.Object> getStripeMap​(Seller seller)
      • setStripeMap

        private void setStripeMap​(Seller seller,
                                  com.stripe.model.Account account)
                           throws com.stripe.exception.StripeException
        Throws:
        com.stripe.exception.StripeException
      • getTosAcceptance

        private java.lang.Object getTosAcceptance​(boolean update,
                                                  java.lang.String ip)
      • createExternalBankAccount

        public boolean createExternalBankAccount​(java.util.LinkedHashMap<java.lang.String,​java.lang.Object> bankData)
        Description copied from interface: StripeConnectService
        Creates ExternalAccount of a bank type. Binds it with current's Seller Account
        Specified by:
        createExternalBankAccount in interface StripeConnectService
        Parameters:
        bankData - data, format described in BankExternalAccountDTO
        Returns:
        true if successful
      • createExternalCardAccount

        public boolean createExternalCardAccount​(java.util.LinkedHashMap<java.lang.String,​java.lang.Object> cardData)
        Description copied from interface: StripeConnectService
        Creates ExternalAccount of a card type. Binds it with current's Seller Account
        Specified by:
        createExternalCardAccount in interface StripeConnectService
        Parameters:
        cardData - data, format described in CardExternalAccountDTO
        Returns:
        true if successful
      • getBusinessTypes

        public java.util.List<java.lang.String> getBusinessTypes()
        Description copied from interface: StripeConnectService
        Gets list of AccountCreateParams.BusinessType's values for current Seller's country.
        Specified by:
        getBusinessTypes in interface StripeConnectService
        Returns:
        list of business types
      • getBusinessStructures

        public java.util.List<java.lang.String> getBusinessStructures​(java.lang.String businessType)
        Description copied from interface: StripeConnectService
        Gets list of suitable company AccountCreateParams.Company.Structure's for current Seller's country and given AccountCreateParams.BusinessType.
        Specified by:
        getBusinessStructures in interface StripeConnectService
        Parameters:
        businessType - business type
        Returns:
        list of structures
      • getMCCs

        public java.util.Map<java.lang.String,​java.lang.String> getMCCs()
        Description copied from interface: StripeConnectService
        Gets map of merchant category names and codes.
        Specified by:
        getMCCs in interface StripeConnectService
        Returns:
        map
      • verifyAccount

        public StripeAccountDTO verifyAccount​(java.lang.String refreshUrl,
                                              java.lang.String returnUrl,
                                              java.util.LinkedHashMap<java.lang.String,​java.lang.Object> metaInfo)
        Description copied from interface: StripeConnectService
        This method does update for Seller Seller entity with meta information which contains necessary data for Stripe Connect Account
        Specified by:
        verifyAccount in interface StripeConnectService
        Parameters:
        refreshUrl - The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link’s URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user.
        returnUrl - The URL that the user will be redirected to upon leaving or completing the linked flow
        metaInfo - stripe data for Stripe Connect Account
        Returns:
        updated entity
      • obtainConnectOnboardingLink

        public java.lang.String obtainConnectOnboardingLink​(java.lang.String refreshUrl,
                                                            java.lang.String returnUrl)
        Description copied from interface: StripeConnectService
        Obtains AccountLink and returns single-use Stripe URL that the platform can redirect the current user to in order to take them through the Connect Onboarding flow. If Stripe Connect Account does not exist for the current user - creates new Account with the part of prefilled fields.
        Specified by:
        obtainConnectOnboardingLink in interface StripeConnectService
        Parameters:
        refreshUrl - The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link’s URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user.
        returnUrl - The URL that the user will be redirected to upon leaving or completing the linked flow
        Returns:
        link
      • mapRequirements

        private java.util.Set<java.lang.String> mapRequirements​(java.util.List<java.lang.String> requirements)
      • mapRequirement

        private java.lang.String mapRequirement​(java.lang.String requirement)
      • getCapabilities

        private java.lang.Object getCapabilities​(boolean update)
      • getAccountSettings

        private com.stripe.param.AccountCreateParams.Settings getAccountSettings()