async getDonationPaymentLink({member, metadata, successUrl, cancelUrl, email, isAuthenticated, personalNote}) {
        let customer = null;
        if (member && isAuthenticated) {
            customer = await this.getCustomerForMember(member);
        }

        const data = {
            priceId: (await this.getPriceForDonations()).id,
            metadata,
            successUrl: successUrl,
            cancelUrl: cancelUrl,
            customer,
            customerEmail: !customer && email ? email : null,
            personalNote: personalNote

        };

        const session = await this.stripeAPIService.createDonationCheckoutSession(data);
        return session.url;
    }
@param {object} params
@param {Member} [params.member]
@param {Object.<string, any>} [params.metadata]
@param {string} params.successUrl
@param {string} params.cancelUrl
@param {boolean} [params.isAuthenticated]
@param {string} [params.email]

@returns {Promise<URL>}