From fe3048aab07c90eb2f6a3befce58b12609e882c8 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Sat, 25 Mar 2023 18:32:16 +0300 Subject: [PATCH] feat: Implement getSubscription for paddle without sdk --- .../backend/src/helpers/billing/paddle.ee.ts | 31 +++++++++++++++---- .../src/helpers/billing/webhooks.ee.ts | 2 +- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/packages/backend/src/helpers/billing/paddle.ee.ts b/packages/backend/src/helpers/billing/paddle.ee.ts index ed063d93..671370d2 100644 --- a/packages/backend/src/helpers/billing/paddle.ee.ts +++ b/packages/backend/src/helpers/billing/paddle.ee.ts @@ -1,10 +1,29 @@ -import PaddleSDK from 'paddle-sdk'; +import axios from 'axios'; import appConfig from '../../config/app'; -const paddleClient = new PaddleSDK( - appConfig.paddleVendorId.toString(), - appConfig.paddleVendorAuthCode, - appConfig.paddlePublicKey -); +const PADDLE_VENDOR_URL = appConfig.isDev + ? 'https://sandbox-vendors.paddle.com' + : 'https://vendors.paddle.com'; + +const axiosInstance = axios.create({ baseURL: PADDLE_VENDOR_URL }); + +const getSubscription = async (subscriptionId: number) => { + const data = { + vendor_id: appConfig.paddleVendorId, + vendor_auth_code: appConfig.paddleVendorAuthCode, + subscription_id: subscriptionId, + }; + + const response = await axiosInstance.post( + '/api/2.0/subscription/users', + data + ); + const subscription = response.data.response[0]; + return subscription; +}; + +const paddleClient = { + getSubscription, +}; export default paddleClient; diff --git a/packages/backend/src/helpers/billing/webhooks.ee.ts b/packages/backend/src/helpers/billing/webhooks.ee.ts index ae7727d7..46930a8e 100644 --- a/packages/backend/src/helpers/billing/webhooks.ee.ts +++ b/packages/backend/src/helpers/billing/webhooks.ee.ts @@ -13,7 +13,7 @@ const handleSubscriptionPaymentSucceeded = async (request: IRequest) => { }) .throwIfNotFound(); - const remoteSubscription = await Billing.paddleClient.getSubscriptionPlan( + const remoteSubscription = await Billing.paddleClient.getSubscription( Number(subscription.paddleSubscriptionId) );