Our Latest Blog Posts

latest-post

In our previous blog, we had seen how to integrate stripe connect. Now we are going to see how we can split payments to the application and vendor using stripe checkout.

Let's take a simple example :

The platform is "Shopify", Merchant (Who is selling products on Shopify) & Customer who is going to register with Shopify.

Now When a customer purchases a product with $1000, Now $10 will be considered as an application fee, which is going to transfer to the Platform Account and the rest amount $90 will be transferred to Merchant.

Create Session using Stripe Checkout

public function generationSession($data)
{
    $session = \Stripe\Checkout\Session::create([
        'payment_method_types' => ['card'],
        'customer_email'       => $data['email'],
        'line_items'           => [
            [
                'name'     => "item name here",
                'amount'   => floatval($data['amount']) * 100,
                'currency' => 'usd',
                'quantity' => '1',
            ],
        ],
        'client_reference_id'  => $data['reference_id'],
        'success_url'          => url('payment-success').'?session_id={CHECKOUT_SESSION_ID}',
        'cancel_url'           => url('failed-payment?error=payment_cancelled'),
        'payment_intent_data'  => [
            'application_fee_amount' => $data['application_fees'] * 100,
            'transfer_data'          => [
                'destination' => $data['user']->stripe_connect_id,
            ],
        ],
    ]);

    return $session;
}

It will return the session object return, later you can use the session id to redirect to stripe checkout.

Redirect to checkout using StripeJS

        fetch('/generate-sesssion', {
            method: 'POST',
        })
        .then(function(session) {
            return stripe.redirectToCheckout({ sessionId: session.id });
        });

Check the transaction from your Stripe Dashboard

Once you do the transaction successfully, you can verify whether the application fee is applied or not from your stripe dashboard.

Hope this tutorial helps you.

July 13, 20231 minuteuserVishal Ribdiya

Posts

Regression Testing Techniques & Tools

Regression Testing Techniques:

Retest All:

Retest All In this technique, the entire test suite is executed again to verify that no existing functionality has been affected by recent code changes. It's a comprehensive but time-consuming approach.

Selective Regression Testing:

Selective Regression Testing This technique involves selecting a subset of test cases from the existing test suite that is most likely to be affected by the code changes. It's a more efficient approach compared to retesting all test cases.

Test Case Prioritization:

Test Case Prioritization Test cases are prioritized based on factors like their likelihood of failure, criticality, and importance to the application. High-priority test cases are executed first to quickly identify issues.

Test Automation:

Test Automation tools are used to create and execute test scripts that can be easily rerun whenever there are code changes. Popular automation tools include Selenium, Appium, and JUnit for Java applications.

Regression Testing Tools

Regression Testing Tools:

Selenium:

Selenium is one of the most popular open-source automation testing tools for web applications. It supports multiple programming languages and browsers and allows testers to create robust regression test suites.

Appium:

Appium is an open-source tool for automating mobile applications on Android and iOS platforms. It can be used for regression testing of mobile apps.

JUnit:

JUnit is a widely-used testing framework for Java applications. It's especially useful for unit and regression testing in the Java ecosystem.

TestNG:

TestNG is another Java-based testing framework that offers more advanced testing features compared to JUnit, making it suitable for regression testing.

Jenkins:

Jenkins is a popular open-source automation server that can be used to automate the execution of regression test suites. It integrates with various testing tools and can schedule test runs based on code changes.

Postman:

Postman is a popular tool for testing RESTful APIs. It can be used for API regression testing to ensure that changes in the API do not break existing functionality.

TestRail:

TestRail is a test management tool that helps teams organize and manage their regression test cases, track test results, and collaborate on testing efforts.

JIRA:

JIRA, developed by Atlassian, is an issue and project tracking tool that can be used for managing and tracking regression test cases and defects.

Travis CI:

Travis CI is a continuous integration tool that can be used to automate the execution of regression tests whenever code changes are pushed to a version control system like GitHub.

CircleCI:

CircleCI is another continuous integration and continuous delivery (CI/CD) platform that supports automated regression testing as part of the software development pipeline.

The choice of regression testing technique and tool depends on the specific requirements of your project, the nature of the application, and the resources available. It's essential to select the most appropriate combination to ensure effective regression testing and maintain the quality of your software.

September 11, 20232 minutesauthorVirendra Harkhani
Verification and Validation: What’s the difference?

Differences between Verification and Validation

Verification Validation
It includes checking documents, design, codes and programs. It includes testing and validating the actual product.
Verification is the static testing. Validation is the dynamic testing.
It does not include the execution of the code. It includes the execution of the code.
Methods used in verification are reviews, walkthroughs, inspections and desk-checking. Methods used in validation are Black Box Testing, White Box Testing and non-functional testing.
It checks whether the software conforms to specifications or not. It checks whether the software meets the requirements and expectations of a customer or not.
It can find the bugs in the early stage of the development. It can only find the bugs that could not be found by the verification process.
The goal of verification is application and software architecture and specification. The goal of validation is an actual product.
Quality assurance team does verification. Validation is executed on software code with the help of testing team.
It comes before validation. It comes after verification.
It consists of checking of documents/files and is performed by human. It consists of execution of program and is performed by computer.
Verification refers to the set of activities that ensure software correctly implements the specific function. Validation refers to the set of activities that ensure that the software that has been built is traceable to customer requirements.
After a valid and complete specification, the verification starts. Validation begins as soon as project starts.
Verification is for prevention of errors. Validation is for detection of errors.
Verification is also termed as white box testing or static testing as work product goes through reviews. Validation can be termed as black box testing or dynamic testing as work product is executed.
Verification finds about 50 to 60% of the defects. Validation finds about 20 to 30% of the defects.
Verification is based on the opinion of reviewer and may change from person to person. Validation is based on the fact and is often stable.
Verification is about process, standard and guideline. Validation is about the product.

Markdown Logo

Verification :

Verification is the process of checking that a software achieves its goal without any bugs. It is the process to ensure whether the product that is developed is right or not. It verifies whether the developed product fulfils the requirements that we have. Verification is static testing.

Validation :

Validation is the process of checking whether the software product is up to the mark or in other words product has high level requirements. It is the process of checking the validation of product, i.e. it checks what we are developing is the right product. It is validation of actual and expected product. Validation is the dynamic testing.

December 02, 20232 minutesauthorVirendra Harkhani
LinkedIn Sales Strategies for B2B Professionals

In the realm of B2B (business-to-business) sales, networking and building relationships play a pivotal role in securing deals and driving revenue growth. LinkedIn, the world's largest professional networking platform, has become an indispensable tool for B2B professionals looking to connect with decision-makers, generate leads, and ultimately close deals. In this blog, we'll explore some effective LinkedIn sales strategies tailored specifically for B2B professionals.

Optimize Your LinkedIn Profile

Before you dive into active sales activities on LinkedIn, ensure your profile is a compelling representation of your professional identity. A well-optimized profile includes a professional photo, a clear headline, a concise and engaging summary, and comprehensive work experience. Don't forget to emphasize your expertise in your industry, as this will attract potential connections and leads.

Identify and Connect with Key Decision-Makers

LinkedIn's search functionality allows you to identify and connect with decision-makers within your target industries or companies. Use advanced search filters to narrow down your prospects by location, industry, company size, and job title. When sending connection requests, include a personalized message expressing your interest in connecting and offering value.

Build Thought Leadership Through Content

Position yourself as a thought leader in your industry by regularly sharing valuable content on LinkedIn. Create and share insightful articles, industry news, and informative posts that demonstrate your expertise and engage your network. Thought leadership can help you attract inbound inquiries from potential clients interested in your knowledge.

Join and Participate in Relevant LinkedIn Groups

LinkedIn Groups are a goldmine for B2B professionals. Join groups relevant to your industry and engage in meaningful conversations. Share your insights, answer questions, and build relationships with group members. Over time, your active participation can help establish your credibility and lead to new connections and potential clients.

Utilize LinkedIn Sales Navigator

LinkedIn offers a premium tool called Sales Navigator designed specifically for sales professionals. Sales Navigator provides advanced search and lead-building capabilities, allowing you to identify warm leads, track target accounts, and receive real-time insights about your prospects. It's a valuable asset for B2B sales teams.

Craft Personalized Outreach Messages

When reaching out to potential leads or clients, avoid generic, spammy messages. Craft personalized and compelling messages that show you've done your homework and understand their pain points. Mention mutual connections, recent company news, or shared interests to establish rapport and trust.

In conclusion, LinkedIn is a powerful platform for B2B sales professionals to connect, engage, and convert leads into clients. By optimizing your profile, building a strong network, and consistently delivering value through thought leadership and personalized outreach, you can unlock the full potential of LinkedIn as a B2B sales tool. Remember that success on LinkedIn, as in any other aspect of sales, requires patience, persistence, and a genuine commitment to building meaningful relationships.

October 03, 20232 minutesauthorAnkit Kalathiya
Android UI Design: Tips and Best Practices

A visually appealing and user-friendly user interface (UI) is key to creating successful Android apps. Mastering Android UI design requires a combination of creativity, usability principles, and knowledge of best practices. In this blog post, we will delve into valuable tips and best practices to help you create exceptional UI designs for your Android apps, ensuring an engaging and intuitive user experience.

Understand Material Design Guidelines:

Google's Material Design guidelines serve as a foundation for creating visually consistent and intuitive UIs across Android devices. Familiarize yourself with these guidelines, which cover aspects such as layout, typography, color schemes, and iconography. By adhering to Material Design principles, you can create UIs that feel native to the Android platform while offering a modern and visually pleasing experience.

Prioritize Consistency:

Consistency plays a vital role in UI design. Maintain a consistent visual style, including color schemes, typography, and spacing, throughout your app. Consistent UI elements and interactions create a sense of familiarity, enabling users to navigate your app with ease. Ensure that your app's UI aligns with the overall branding and design language to establish a cohesive experience.

Keep it Simple and Minimalistic:

Simplicity is key to effective UI design. Strive for a clean and uncluttered interface that focuses on essential elements. Avoid overwhelming users with excessive information or complex layouts. Use whitespace strategically to enhance readability and highlight important elements. Embrace minimalistic design principles, such as flat or material design, to create a visually pleasing and intuitive UI.

Optimize for Different Screen Sizes:

Android devices come in various screen sizes and resolutions, so it's crucial to ensure your UI design adapts seamlessly to different form factors. Design responsive layouts that can adjust to different screen sizes, orientations, and aspect ratios. Utilize relative sizing and scalable elements to accommodate various screen densities. Test your app on different devices to ensure a consistent and user-friendly experience across the board.

Use Intuitive Navigation Patterns:

Efficient navigation is key to a user-friendly app. Utilize intuitive navigation patterns such as bottom navigation bars, hamburger menus, and tabs to provide easy access to different sections of your app. Follow established navigation patterns that users are already familiar with, but also consider the specific needs and context of your app to provide a tailored and intuitive navigation experience.

Pay Attention to Typography:

Typography plays a crucial role in UI design, affecting readability and overall aesthetic appeal. Choose legible fonts that align with your app's branding and style. Ensure appropriate font sizes for different text elements, considering factors such as readability on various screen sizes and accessibility for users with visual impairments. Use typography to guide users and emphasize important information within your app.

Utilize Meaningful and Consistent Icons:

Icons are powerful visual elements that aid in navigation and convey meaning. Use icons consistently throughout your app, adhering to recognized iconography standards. Ensure that icons are visually clear, easily recognizable, and aligned with their intended actions or functionalities. Combine icons with text labels when necessary to provide clarity and improve usability.

Employ Color Strategically:

Color choices can evoke emotions and influence user perception. Select a color palette that aligns with your app's branding and purpose. Use colors purposefully to differentiate elements, convey hierarchy, and provide visual cues. Ensure color contrast for text and important elements to maintain accessibility for all users. Leverage color to create a visually engaging and cohesive UI design.

Test and Iterate:

Regular testing and iteration are crucial in UI design. Gather feedback from users, conduct usability tests, and analyze user behavior to identify areas for improvement. Iterate your design based on user feedback and insights, refining the UI to enhance usability, address pain points, and optimize the overall user experience. Embrace an iterative design process to continuously improve your app's UI.

Stay Updated and Inspired:

UI design trends evolve over time, so it's essential to stay updated with the latest design trends, techniques, and emerging patterns. Explore design inspiration from other successful Android apps, industry resources, and design communities. Keep an eye on Google's updates to Material Design and Android design patterns to ensure your UI remains relevant and appealing.

Conclusion:

Mastering Android UI design involves a combination of creativity, adherence to best practices, and a deep understanding of user needs. By following these tips and best practices, such as understanding Material Design guidelines, prioritizing consistency, keeping the UI simple and minimalistic, optimizing for different screen sizes, using intuitive navigation patterns, paying attention to typography and color, testing and iterating, and staying updated with design trends, you can create compelling and user-friendly UIs that enhance the overall user experience of your Android apps. Strive for excellence in UI design, and your apps will stand out in the crowded Android marketplace.

July 17, 20234 minutesauthorVivek Beladiya
Creating a Winning Sales Culture: Strategies to Motivate and Inspire Your Team

Creating a winning sales culture is essential to achieving success and achieving outstanding results. A motivated and motivated sales team can make a significant difference in meeting and exceeding goals. In this blog post, we'll explore effective strategies for creating a winning sales culture that fosters motivation, inspires your team members, and ultimately leads to exceptional sales performance.

Lead by example:

As a sales leader, it's important to set the tone for your team by leading by example. Show strong work ethic, enthusiasm, and positive attitude. Demonstrate your passion for sales and dedication to achieving goals. When your team sees your commitment and drive, it inspires them to follow suit.

Clearly define goals and expectations:

To motivate and inspire your sales team, they need a clear understanding of what is expected of them. Set Specific, Measurable, Attainable, Relevant, and Time-bound (SMART) goals.

Provide ongoing training and development:

Invest in ongoing training and development opportunities for your sales team. Equip them with the skills and knowledge they need to excel in their roles. Organize regular sales training sessions, workshops, and seminars to enhance their sales techniques, product knowledge, and customer engagement skills.

Promote a positive and supportive environment:

Create a positive and supportive work environment where team members feel valued, respected, and encouraged. Celebrate individual and team achievements, big or small, to boost morale. Encourage open communication, actively listen to your team's ideas and concerns, and provide constructive feedback.

Implement recognition and reward programs:

Recognition and rewards play an important role in motivating sales professionals. Implement a structured recognition program that acknowledges outstanding performance and achievement. Publicly celebrate individual and team successes, both within the sales team and across the organization, to create a sense of accomplishment and motivate others.

Provide regular feedback and coaching:

Regular feedback and coaching are critical in the growth and development of sales professionals. Provide coaching and mentoring opportunities to help team members develop their skills and reach their full potential. Regularly review performance metrics and offer actionable insights to improve efficiency.

July 17, 20232 minutesauthorAnkit Kalathiya
Exploring AI-Based Tools in Adobe Photoshop

Adobe Photoshop has long been the go-to software for graphic designers, offering powerful tools and endless creative possibilities. Photoshop has taken a huge step ahead with the use of artificial intelligence (AI) technology, allowing designers to improve their productivity, automate repetitive operations, and generate amazing outcomes more effectively than ever before. In this blog post, we will explore the AI-based tools in Adobe Photoshop that are revolutionizing the field of graphic design.

Generative Fill:

Generative Fill is an AI-powered tool in Adobe Photoshop that uses machine learning techniques to automatically create complicated and visually appealing patterns and textures. Generative Fill creates new designs using rich details, organic shapes, and appealing styles by analysing existing visual elements or utilising a set of established characteristics. This technology allows designers to quickly explore and experiment with an array of artistic possibilities without the need for manual design or complex work flows.

Open the image you want to manipulate in Photoshop beta. Use any selection tool to choose the specific area you want to apply the Generative Fill to. Click on the "Generative Fill" button located in the small toolbar that appears. In the prompt box, type your desired instructions for the tool or leave it blank. Once satisfied, click "Generate" to initiate the Generative Fill process. Wait for a few seconds to a few minutes, depending on the complexity of the prompt, as Generative Fill completes your request. The AI will provide you with three variations to choose from. Select the option you like best to apply it. The changes will be applied to a separate layer, preserving your original image on the base layer.

Content-Aware Fill:

One of the standout AI-powered features in Photoshop is Content-Aware Fill. This tool analyzes the content surrounding a selected area and automatically fills it in a way that seamlessly blends with the surrounding elements. Whether removing unwanted objects or extending backgrounds, Content-Aware Fill saves designers valuable time and effort by intelligently generating realistic replacements.

Select an object in your photo, go to Edit, and choose Content-Aware Fill. You’ll be able to refine your selection further and see a preview of how the fill is going to work. You can specify areas of the image Photoshop should use to fill in the background once it removes the object.

Neural Filters:

Neural Filters is a set of AI-powered filters in Photoshop that leverages machine learning algorithms to apply complex transformations to images. These filters enable designers to achieve artistic effects, retouch portraits, adjust facial expressions, and enhance details with just a few clicks. From the Style Transfer filter to the Smart Portrait filter, Neural Filters offer a wide range of creative options to elevate your designs.

To use them, go to Filter in the main navigation bar and then click on Neural Filters. You’ll be able to choose from a wide range of actions, such as adding depth to your images and smoothing the skin on people’s faces. Each filter comes with its own set of options, so you can tweak them to make them more or less aggressive, depending on what you want your final photo to look like.

Sky Replacement:

The Sky Replacement feature in Photoshop utilizes AI algorithms to automatically detect and replace the sky in an image while preserving other elements like foreground objects and lighting conditions. Designers can choose from a library of preloaded skies or add their own, transforming the mood and atmosphere of a scene in an instant. This tool simplifies the process of creating captivating visuals with dramatic sky effects.

Open an image, go to Edit, and then Sky Replacement to make alterations. You can drop in one of the program’s pre-sets or load your own, as well as tweak the sky’s temperature and brightness, and make adjustments to the foreground to help it match the lighting.

Select Subject and Object Selection:

Selecting intricate subjects or objects within an image can be a time-consuming task. Adobe Photoshop's AI-based Select Subject and Object Selection tools come to the rescue. These tools utilize advanced machine learning algorithms to intelligently identify and isolate subjects or objects, allowing designers to make precise selections quickly. This feature greatly enhances the efficiency of various design workflows, such as compositing and retouching.

Just go to Select and choose Subject to let Photoshop get to work. Even if it doesn’t pick out the subject exactly, it should give you a good starting point.

June 30, 20234 minutesauthorNency Dobariya
5 Proven Strategies to Boost Your Sales Revenue

Boosting sales revenue is a top priority for businesses seeking growth and success. In this blog post, we will explore five proven strategies that can significantly enhance your sales performance and help you achieve remarkable revenue results. Whether you're a sales manager, a business owner, or a sales professional, implementing these strategies can provide a competitive edge and drive your sales revenue to new heights.

Set Clear Sales Goals

Establishing clear and measurable sales goals is the foundation for success. Define specific targets for your team to strive towards, ensuring they are challenging yet achievable. This clarity will align everyone's efforts and provide a roadmap for success.

Focus on Targeted Prospecting

Identify your ideal customer profile and concentrate your efforts on reaching out to prospects who match that profile. This targeted approach will save time and resources while increasing the likelihood of converting leads into paying customers.

Develop Effective Sales Messaging

Clearly communicate the unique value proposition of your products or services, highlighting the benefits and solving pain points for potential customers.

Nurture Existing Customer Relationships

Don't overlook the importance of existing customers. Implement strategies to nurture and upsell to your current client base, such as personalized follow-ups, exclusive offers, and loyalty programs. Satisfied customers can become your most powerful brand advocates.

Embrace Continuous Improvement

Encourage a culture of continuous improvement within your sales team. Regularly review and analyze your sales processes, identify areas for optimization, and implement necessary changes. Embracing a growth mindset will help you stay ahead of the competition.

By implementing these five proven strategies, you can empower your sales team, drive revenue growth, and achieve outstanding sales results. Remember, consistency and perseverance are key. Stay committed to these strategies, adapt as needed, and watch your sales revenue soar to new heights.

June 17, 20231 minuteauthorAnkit Kalathiya
How to integrate Stripe Connect in Laravel / PHP ?

Stripe Connect is the fastest way to integrate payment into your marketplace.

In this tutorial we are going to integrate the stripe connect with Laravel.

To integrate the stripe connect you must need the stripe secret and the stripe key. You can get that credentials from your Stripe account.

So let's start integrating...

Installation

composer require srmklive/paypal:~2.0

Onboard the seller using Stripe connect

Define the route for onboarding the seller.

  Route::get('onboard-seller', [StripeController::class, 'onboard']);

Now on StripeController.php write the code for the onboarding link.

use Stripe\Stripe;
use Stripe\Account;
use App\Models\User;
use Stripe\AccountLink;

public function onBoard()
{
    $user = Auth::user();

    /** @var User $user */
    if (empty($user->stripe_on_boarding_completed_at)) {
        Stripe::setApiKey(stripeKey());

        if (empty($user->stripe_connect_id)) {
            /** @var Account $account */
            $account = Account::create([
                'type'         => 'express',
                'email'        => $user->email,
                'country'      => 'US',
                'capabilities' => [
                    'card_payments' => ['requested' => true],
                    'transfers'     => ['requested' => true],
                ],
                'settings'     => [
                    'payouts' => [
                        'schedule' => [
                            'interval' => 'manual',
                        ],
                    ],
                ],
            ]);

            $user->stripe_connect_id = $account->id;
            $user->save();
        }

        $user->fresh();

        $onBoardLink = AccountLink::create([
            'account'     => $user->stripe_connect_id,
            'refresh_url' => route('organization.dashboard'),
            'return_url'  => route('stripe.onboard-result', Crypt::encrypt($user->stripe_connect_id)),
            'type'        => 'account_onboarding',
        ]);

        return redirect($onBoardLink->url);
    }


    $loginLink = $this->stripeClient->accounts->createLoginLink($user->stripe_connect_id, []);

    return redirect($loginLink->url);
}

Please note that you have to generate routes for return and cancel URLs.

Once a merchant is successfully onboarded stripe will again redirect him to the return_url

Below you can find the code in which we managed the success callback.

public function onBoardResult($encodedToken)
{
    /** @var User $user */
    $user = User::whereStripeConnectId(Crypt::decrypt($encodedToken))->firstOrFail();

    $user->stripe_on_boarding_completed_at = Carbon::now();
    $user->save();

    return redirect(route('dashboard'));
}
July 13, 20231 minuteauthorVishal Ribdiya