Code Monkey home page Code Monkey logo

strapi-stripe's People

Contributors

arun-hel avatar lu-mir avatar manishkatyan avatar nicolasbrondin avatar nishekh-e-r avatar odinzu avatar randergabriel avatar semics-tech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

strapi-stripe's Issues

Fails to create Stripe product

Hi,
I'm testing this out now on latest Strapi version and latest plugin version.

Unfortunately on product create it failes in the console with the following message:
invalid_request_error - product
Plans may only be created with products of type service, but the supplied product (prod_N0Dr4ozVp9z7rw) had type good.

However, looking at the Stripe backend the products were partially created, with just the product name and no other details, despite having all the info filled in.

But they don't exist on the Strapi side.
There was also no error on the Strapi console that they failed.

I'm in test mode, running on localhost.
Running on node v18.12.1
The Quasar app is a basic quickstart generated Quasar app.
Strapi is a basic localhost quickstart Strapi 4 app with the following plugins added:
Sendgrid (tested and working)
VueAuth (tested and working)
Strapi-stripe (this plugin, errors as noted)

Stripe logs for the partially created plan show two transactions:
400 ERR
POST /v1/plans
12/18/22, 12:19:39 PM
200 OK
POST /v1/products
12/18/22, 12:19:38 PM

They also indicate the API being used is a very old version:
2015-07-28

Could you please clarify what's happening?

Also, why is a product image mandatory as input on the Strapi side, when it's optional on the Stripe side?

Thanks!

Missing featured: Cancel subscription

The plugin allows to create subscriptions, but there is no way to cancel the subscription through the plugin !

Also, thanks for this great plugin 🙏

Subscription products fail to create in Strapi and they are partially created in Stripe

Infrastructure

Strapi: 4.6.1
Strapi-Stripe: 3.2.1

Error

When I try to create a Subscription type product an error is thrown in the console and the product doesn't get created in Strapi. However, the product is partially created in Stripe. I don't get errors when creating One-Time type products.

Steps to reproduce

  • Try to create a Subscription type product:

image

  • Hit "Create". See the API error in the console:

image

  • Go to Stripe and see the partially created product (Pricing is not added to the product):

image
image

[Critical] Plugin Dashboard wont open if use AED currency.

Description

When creating a product with UAE currency AED set in the configuration,
the strapi plugin dashbard is unable to map over the products.

To Repoduce

STRAPI VERSION: v4.3.6
NODE VERSION: v16.14.0

In the stripe plugin configuration select AED currency
Create a product and view plugin dashboard

Expected Behaviour

Dashboard with white screen and in console the following error..

[request].d0f30510.chunk.js:1381 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'symbol')
    at getProductPrice ([request].d0f30510.chunk.js:1381:32)
    at [request].d0f30510.chunk.js:1474:6
    at Array.map (<anonymous>)
    at ProductTable ([request].d0f30510.chunk.js:1464:238)
    at Ch (main.9fcd4a78.js:97497:137)
    at li (main.9fcd4a78.js:97520:154)
    at ck (main.9fcd4a78.js:97609:343)
    at bk (main.9fcd4a78.js:97590:347)
    at ak (main.9fcd4a78.js:97590:278)
    at Tj (main.9fcd4a78.js:97590:138)

image

Other Behaviour

Products are being created in Stripe as well as can be queried from the endpoint.

localhost:1337/strapi-stripe/getProduct/0/5/name/asc

Reponse

{
    "res": [
        {
            "id": 2,
            "title": "asdadadas",
            "slug": null,
            "description": "asdafasda",
            "price": 10,
            "currency": "aed",
            "isSubscription": false,
            "interval": "",
            "trialPeriodDays": null,
            "stripeProductId": "prod_MJGSqefiKgyEj2",
            "stripePriceId": "price_1LadvOFYNCDuZTtJRGVtVC7e",
            "stripePlanId": "",
            "createdAt": "2022-08-25T11:08:38.145Z",
            "updatedAt": "2022-08-25T11:08:38.145Z",
            "productImage": {
                "id": 4,
                "name": "strapi-logo.jpeg",
                "alternativeText": null,
                "caption": null,
                "width": 657,
                "height": 350,
                "formats": {
                    "thumbnail": {
                        "name": "thumbnail_strapi-logo.jpeg",
                        "hash": "thumbnail_strapi_logo_11f90f4573",
                        "ext": ".jpeg",
                        "mime": "image/jpeg",
                        "path": null,
                        "width": 245,
                        "height": 131,
                        "size": 4.46,
                        "url": "/uploads/thumbnail_strapi_logo_11f90f4573.jpeg"
                    },
                    "small": {
                        "name": "small_strapi-logo.jpeg",
                        "hash": "small_strapi_logo_11f90f4573",
                        "ext": ".jpeg",
                        "mime": "image/jpeg",
                        "path": null,
                        "width": 500,
                        "height": 266,
                        "size": 10.14,
                        "url": "/uploads/small_strapi_logo_11f90f4573.jpeg"
                    }
                },
                "hash": "strapi_logo_11f90f4573",
                "ext": ".jpeg",
                "mime": "image/jpeg",
                "size": 13.48,
                "url": "/uploads/strapi_logo_11f90f4573.jpeg",
                "previewUrl": null,
                "provider": "local",
                "provider_metadata": null,
                "folderPath": "/",
                "createdAt": "2022-08-25T11:08:36.777Z",
                "updatedAt": "2022-08-25T11:08:36.777Z"
            },
            "stripePayment": [],
            "createdBy": null,
            "updatedBy": null
        },
       // ....second object
    ],
    "count": 2
}

Invoke callback on purchase.

Hi, I'd love the ability to invoke a server sided function on a callback to setup some records. This plugin would be perfect if it could be used for SAAS subscriptions.

Not a valid URL

strapi version 4.4.5
strapi-stripe version 2.5.1

Payment type Subscription doesn't add product, in terminal it shows error "Not a valid URL". Payment type One-Time adds product successfully

no plugin's collections ERROR

I have installed strapi-stripe plugin, created poduct, make an order.
But there is an error connected with collections.

So there are no plugin's collections there.

image

in logs:
error: select "t0".*, "t0"."id" from "strapi-stripe_strapi-stripe-product" as "t0" where ("t0"."id" = $1) limit $2 - invalid input syntax for type integer: "undefined"

Errors also appear on handling (adding) order data

Feature-Request: Add Strapi Media Library button for product images.

Strapi version: 4.1.11, 4.3.0
Strapi-Stripe Plugin version: 2.3.0

If I create a product in Content-Manager, it populates in products via payment link on dashboard as it should.

I want to change the following:

The image box should open up Strapi Media library GUI to select an image, rather than manually copy / paste link.

The copy / paste of absolute url works and allows for 3rd party CDN, but initially, the image by default should be Strapi Media Library.

image

ER_TOO_LONG_IDENT with mysql

Hello,

I'm trying to use strapi-stripe but I'm facing a mysql error at initialization :

[2022-11-17 15:56:47.083] debug: ⛔️ Server wasn't able to start properly.
[2022-11-17 15:56:47.086] error: alter table `strapi_stripe_strapi_stripe_payment_stripe_product_links` add index `strapi_stripe_strapi_stripe_payment_stripe_product_links_order_inv_fk`(`strapi_stripe_payment_order`) - ER_TOO_LONG_IDENT: Le nom de l'identificateur 'strapi_stripe_strapi_stripe_payment_stripe_product_links_order_inv_fk' est trop long
Error: ER_TOO_LONG_IDENT: Le nom de l'identificateur 'strapi_stripe_strapi_stripe_payment_stripe_product_links_order_inv_fk' est trop long
    at Query.Sequence._packetToError (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
    at Query.ErrorPacket (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\sequences\Query.js:79:18)
    at Protocol._parsePacket (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\Protocol.js:291:23)
    at Parser._parsePacket (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\Parser.js:433:10)
    at Parser.write (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\Parser.js:43:10)
    at Protocol.write (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\Protocol.js:38:16)
    at Socket.<anonymous> (C:\Dev\bestmum\strapi\node_modules\mysql\lib\Connection.js:88:28)
    at Socket.<anonymous> (C:\Dev\bestmum\strapi\node_modules\mysql\lib\Connection.js:526:10)
    at Socket.emit (events.js:400:28)
    at Socket.emit (domain.js:475:12)
    --------------------
    at Protocol._enqueue (C:\Dev\bestmum\strapi\node_modules\mysql\lib\protocol\Protocol.js:144:48)
    at Connection.query (C:\Dev\bestmum\strapi\node_modules\mysql\lib\Connection.js:198:25)
    at C:\Dev\bestmum\strapi\node_modules\knex\lib\dialects\mysql\index.js:132:18
    at new Promise (<anonymous>)
    at Client_MySQL._query (C:\Dev\bestmum\strapi\node_modules\knex\lib\dialects\mysql\index.js:126:12)
    at executeQuery (C:\Dev\bestmum\strapi\node_modules\knex\lib\execution\internal\query-executioner.js:37:17)
    at Client_MySQL.query (C:\Dev\bestmum\strapi\node_modules\knex\lib\client.js:146:12)
    at C:\Dev\bestmum\strapi\node_modules\knex\lib\execution\transaction.js:363:24
    at new Promise (<anonymous>)
    at Client_MySQL.trxClient.query (C:\Dev\bestmum\strapi\node_modules\knex\lib\execution\transaction.js:358:12)

The table name and consequently the foreign key name length is huge so mysql refuse it.

Can you check it please ?

Query Subscription Products

Please do correct me if I am wrong.

I don't see a method with the plugin APIs to poll the current status of any existing subscriptions for the user.

This makes the subscription integration far less useful as anyone using it will need to write custom APIs to get this status.

Less troublesome, but also would be great:
It also doesn't seem to associate the purchase with the current user, but rather with the email given to stripe.
It also doesn't pre-populate the stripe form with the current user's account email which would be convenient.

webhook url is not called after checkout

Hey,

I'm currently working on a mentoring website. I sell offers inside using strapi-stripe

image

image

When I'm clicking on the button "Acheter", I'm calling this current fonction reimplement createCheckout

In src/api/stripe/controllers/stripe.js

async createCheckoutSession(ctx) {
    try {
      const {id} = ctx.request.body;

      const {stripePriceId, stripeProductId, title} = await strapi
        .query('plugin::strapi-stripe.ss-product')
        .findOne({
          select: ['stripePriceId', 'stripeProductId', 'title'], where: {id}
        });

      const checkoutSessionResponse = await strapi
        .service('api::stripe.stripe')
        .createCheckoutSession({
          stripePriceId,
          customerEmail: ctx.state.user.email,
          productId: stripeProductId,
          productName: title
        });

      ctx.send(checkoutSessionResponse, 200);
    } catch (e) {
      ctx.badRequest(e.message);
    }
  },

And service src/api/stripe/services/stripe.js

'use strict';

/**
 * stripe service.
 */

const {createCoreService} = require('@strapi/strapi').factories;

const Stripe = require('stripe');
const {ApplicationError} = require("@strapi/utils/lib/errors");

module.exports = createCoreService('api::stripe.stripe', ({strapi}) => ({
  async createCheckoutSession({stripePriceId, customerEmail, productId, productName}) {
    try {
      const stripeSettings = await strapi
        .plugin('strapi-stripe')
        .service('stripeService')
        .initialize();

      let stripe;

      if (stripeSettings.isLiveMode) {
        stripe = new Stripe(stripeSettings.stripeLiveSecKey);
      } else {
        stripe = new Stripe(stripeSettings.stripeTestSecKey);
      }

      const priceId = stripePriceId;
      const paymentMode = 'payment';

      return stripe.checkout.sessions.create({
        line_items: [
          {
            // Provide the exact Price ID (for example, pr_1234) of the product you want to sell
            price: priceId,
            quantity: 1,
          },
        ],
        mode: paymentMode,
        customer_email: customerEmail,
        payment_method_types: ['card'],
        success_url: `${stripeSettings.checkoutSuccessUrl}?sessionId={CHECKOUT_SESSION_ID}`,
        cancel_url: `${stripeSettings.checkoutCancelUrl}`,
        metadata: {
          productId: `${productId}`,
          productName: `${productName}`,
        },
      });
    } catch (error) {
      throw new ApplicationError(error.message);
    }
  },
}));

It pretty the same code you have, just change options and get better errors.

After the checkout page, user is redirect but the route I put there
image

is not called.

Thank you for helping me. I'm trying now to investigate this error.

Missing currency

Hi guys,

I cannot find the DKK - Danish krone option in the currency select field.

Should be found in the list under the letter D.
currency

Thanks guys!

Question: How to view product API data in Strapi? Feature-Request?

Strapi version: 4.1.11, 4.3.0
Strapi-Stripe Plugin version: 2.3.0

As an example, I goto https://api.example.com/api/posts?populate=* to populate all posts data.

I see I have a products collection with a product and that my api and stripe are connected and sharing data.

when I goto: https://api.example.com/api/products I receive a 404.

when I view the roles and permissions for public, I don't have a products role to choose from like I do for "posts".

In my collection, I also have the product collection and the products data for created product from the payment link on dashboard.

Furthermore, I create a new test collection type and it allows me to view it via as should, but with Stripe plugin, I am unable to view product data.

Error when i went to section payments

error: select "t0"., "t0"."id", "t0"."created_by_id", "t0"."updated_by_id" from "public"."strapi-stripe_ss-product" as "t0" where ("t0"."id" = $1) limit $2 - invalid input syntax for type integer: "undefined"
error: select "t0".
, "t0"."id", "t0"."created_by_id", "t0"."updated_by_id" from "public"."strapi-stripe_ss-product" as "t0" where ("t0"."id" = $1) limit $2 - invalid input syntax for type integer: "undefined"
at Parser.parseErrorMessage (D:\Projects BeardBoy\reseed-api\node_modules\pg-protocol\dist\parser.js:287:98)
at Parser.handlePacket (D:\Projects BeardBoy\reseed-api\node_modules\pg-protocol\dist\parser.js:126:29)
at Parser.parse (D:\Projects BeardBoy\reseed-api\node_modules\pg-protocol\dist\parser.js:39:38)
at Socket. (D:\Projects BeardBoy\reseed-api\node_modules\pg-protocol\dist\index.js:11:42)
at Socket.emit (node:events:513:28)
at Socket.emit (node:domain:489:12)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)

image

only occurs when using yarn develop --watch-admin in console

Can't access to users & permissions settings after installing this plugin

Bug report

Required System information

  • strapi-stripe": "^3.3.0",
  • Node.js version:v18.16.0
  • NPM version:9.5.1
  • Strapi version:"@strapi/strapi": "^4.10.1",
  • Database: mysql
  • Operating system: win
  • Is your project Javascript or Typescript: js

Describe the bug

Whitescreen on admin/settings/users-permissions/roles after i install this plugin

Steps to reproduce the behavior

  1. Go to 'http://localhost:1337/admin/settings/users-permissions/roles'
  2. See whitescreen with error in console "The request function is deprecated and will be removed in the next major version. Please use useFetchClient instead."

Expected behavior

Page loads

Screenshots

image

Issue with entering a Product Description.

After setting up the configuration with the API keys, I attempted to add a product. I could put all of the required information in, except for product description. For some reason, I am able to focus the field, but am unable to type a description. I can't submit a product while the description is empty.

I've reproduced this issue with a separate repo using the latest version of strapi and the plugin. Not sure if I'm missing something here.

Recurring payments

Not really an issue, more a question.

But is recurring payments supported with this plugin or is this something that is yet to be added.

If not added, would like to try an contribute to the project to have it implemented.

[Security] - getSubscriptionStatus is public

Just a question around security...

It seems that the /strapi-stripe/getSubscriptionStatus/<user-email> endpoint is a public endpoint for the plugin.

This means anyone can hit that endpoint with someone else's email address and get all the data about their subscription.

Is this the way Stripe's API works? I'm guessing the data returned is all non-sensitive?

Or should this be locked down?

Ideally, I'd like a custom endpoint that I can handle the check the user is authenticated and using their token I'd make an internal request to getSubscriptionStatus to ensure logged in users can only get their own subscription information.

Issue when using aws s3 upload provider

Hi. Is there a way I can configure the plugin to detect/respect my upload config? It currently appends the http://localhost:1337 to the image url which stripe detects as an invalid url.

This is what it sends

image

And this is stripe's response

image

this is what I have in my middleware.ts

{
 // more codes
 {
    name: "strapi::security",
    config: {
      contentSecurityPolicy: {
        useDefaults: true,
        directives: {
          "connect-src": ["'self'", "https:"],
          "img-src": [
            "'self'",
            "data:",
            "blob:",
            "dl.airtable.com",
            "<bucket>.ap-southeast-1.amazonaws.com",
          ],
          "media-src": [
            "'self'",
            "data:",
            "blob:",
            "dl.airtable.com",
            "<bucket>.s3.ap-southeast-1.amazonaws.com",
          ],
          upgradeInsecureRequests: null,
        },
      },
    },
  },
}

and on my plugins.ts

{
 // more codes
 upload: {
    config: {
      provider: "aws-s3",
      providerOptions: {
        accessKeyId: env("AWS_ACCESS_KEY_ID"),
        secretAccessKey: env("AWS_ACCESS_SECRET"),
        region: env("AWS_REGION"),
        params: {
          Bucket: env("AWS_BUCKET"),
        },
      },
      actionOptions: {
        upload: {},
        uploadStream: {},
        delete: {},
      },
    },
  },
}

Thanks in advance and really great work in here.

[Security] Live keys and secrets can be retrieved without any auth

The getSettings route is not authenticated, leaving all secret values open to the public.

To reproduce, launch a Strapi instance on your local machine, install the plugin, fill out the configuration page, then a simple curl http://localhost:1337/strapi-stripe/getSettings shows all your credentials in the terminal.

Production environment doesn't do anything more.

Solution : remove the config: { auth: false }} on both routes related to the settings in server/routes/index.js
Best : set the admin::isAuthenticatedAdmin policy on both routes with config: { policies: ['admin::isAuthenticatedAdmin'] }

Contributing guidelines and roadmap

I would like to help maintaining this project, but I don't know exactly what can I work on to help.

It would be really good if there was some roadmap for the next features or fixes that should be implemented. Is there any roadmap/backlog yet? If there is, in which tasks could I help?

Thank you for the good work on the library!

Payment updates

Hey! I faced with issue when I try to update product or subscription it doesn't update on stripe side. How should I properly update a product to update it in the stripe?
Also, non-required fields return an errors:

  • stripePlanId: return error This value is too low for one-time Payment Type (by default it not filled field)
    1

  • stripePriceId the same error for subscription Payment Type (by default it not filled field)
    2

Stripe API keys from .env

Hi,

Thanks for the great plugin. One disadvantage that I see is that Stripe API keys configuration is stored in the database along with all other settings. This makes it inconvenient to import-export settings between environments because API keys will be revealed in plain text.
It would be great if API keys could be loaded (optionally) from .env variables. It's a minor change so I hope you will have it in mind.

Regards.

BUG: Uninstall Strapi-stripe error

[email protected]

On uninstalling this plugin, I received an error on yarn develop after yarn install and yarn build. I add the plugin back and error goes away.

Error: Error on attribute strapi_stripe_product in model tag(api::tag.tag): Unknown target plugin::strapi-stripe.strapi-stripe-product

$ strapi develop
Error: Unknown target plugin::strapi-stripe.strapi-stripe-product
    at createJoinTable (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/metadata/relations.js:393:11)
    at createManyToOne (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/metadata/relations.js:114:5)
    at createRelation (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/metadata/relations.js:333:14)
    at createMetadata (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/metadata/index.js:61:11)
    at new Database (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/index.js:17:21)
    at Function.Database.init (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/index.js:77:33)
    at Strapi.bootstrap (/home/name/nodes/strapi/dashboard/node_modules/@strapi/strapi/lib/Strapi.js:392:30)
    at Strapi.load (/home/name/nodes/strapi/dashboard/node_modules/@strapi/strapi/lib/Strapi.js:457:16)
    at async Strapi.start (/home/name/nodes/strapi/dashboard/node_modules/@strapi/strapi/lib/Strapi.js:198:9)
[2022-08-05 12:50:07.697] debug: ⛔️ Server wasn't able to start properly.
[2022-08-05 12:50:07.699] error: Error on attribute strapi_stripe_product in model tag(api::tag.tag): Unknown target plugin::strapi-stripe.strapi-stripe-product
Error: Error on attribute strapi_stripe_product in model tag(api::tag.tag): Unknown target plugin::strapi-stripe.strapi-stripe-product
    at createMetadata (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/metadata/index.js:68:15)
    at new Database (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/index.js:17:21)
    at Function.Database.init (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/index.js:77:33)
    at Strapi.bootstrap (/home/name/nodes/strapi/dashboard/node_modules/@strapi/strapi/lib/Strapi.js:392:30)
    at Strapi.load (/home/name/nodes/strapi/dashboard/node_modules/@strapi/strapi/lib/Strapi.js:457:16)
    at async Strapi.start (/home/name/nodes/strapi/dashboard/node_modules/@strapi/strapi/lib/Strapi.js:198:9)
error Command failed with exit code 1.

at Function.Database.init (/home/name/nodes/strapi/dashboard/node_modules/@strapi/database/lib/index.js:77:33) this plugin doesn't remove the database tables or am I missing something?

Public '/stripePayment' endpoint makes possible to inject fake transactions into the backend?

Hi, I wonder if this in not a vulnerability: the '/stripePayment' endpoint is configured as 'auth: false' and its respective 'savePayment' controller doesn't apply any specific security measures. This leads me to the conslusion that any person knowing that I use strapi-stipe plugin will be able to make a POST request and register a fake transaction in my Strapi backend. In case if I'm missing something - sorry for bothering. Thanks. Greg

Docs clarification

Hi, I've installed and used the plugin for Strapi 4.2.0 and playing around a bit but I couldn't figure out how to do, or if possible

  • relate the products with any other content type (or viceversa)
  • delete products (i.e. to prevent showing no longer available products)
  • access to the products/payments using graphql
  • at the docs I see Add multiple “Buy Now” payment buttons on a page. How this can be achieved?

Thanks!

Server wasn't able to start properly.

2022-07-30 08:50:21.968] debug: ⛔️ Server wasn't able to start properly.
[2022-07-30 08:50:21.969] error: The "path" argument must be of type string. Received undefined
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined

If possible, switch to use Strapi MediaLib?

Would be nice if we could use Strapi MediaLib for products/subscriptions images, improves management and also includes use of other plugins like Cloudinary.

Desired
image

Current
image

Guidance on active subscription for user

I would like to know how you would ensure the user has an active subscription.

Do you store the stripe subscription id so that you can check the user has an active subscription?

I can't see anything obvious that I can use to access a user's subscription (like an id), any suggestions?

Payment data is not being recorded

I implemented the strapi-stripe plugin like the documentation says and I realized that the transactions were not being recorded. I can only see in the Stripe dashboard in the tab Payments, but not in the Stripe CMS.

Is there any rule that I need to follow to register automatically the paymente data after some client buy a product?

package.json file of the CMS:

{
  "name": "my-name",
  "private": true,
  "version": "0.1.0",
  "description": "my-description",
  "scripts": {
    "develop": "strapi develop",
    "start": "NODE_ENV=production node server.js",
    "build": "strapi build",
    "strapi": "strapi"
  },
  "devDependencies": {
    "rimraf": "^3.0.2"
  },
  "dependencies": {
    "@strapi/admin": "4.1.12",
    "@strapi/plugin-content-manager": "^4.1.12",
    "@strapi/plugin-i18n": "4.1.12",
    "@strapi/plugin-users-permissions": "4.1.12",
    "@strapi/provider-email-nodemailer": "^4.1.12",
    "@strapi/strapi": "4.1.12",
    "@strapi/utils": "4.1.12",
    "better-sqlite3": "7.4.6",
    "pg": "8.6.0",
    "pg-connection-string": "^2.5.0",
    "sharp": "^0.30.4",
    "strapi-plugin-magic": "^0.9.0",
    "strapi-stripe": "^1.9.0"
  },
  "author": {
    "name": "the-author"
  },
  "strapi": {
    "uuid": "..."
  },
  "engines": {
    "node": ">=12.x.x <=16.x.x",
    "npm": ">=6.0.0"
  },
  "license": "MIT"
}

My CMS image:
strapi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.