@@ -2,6 +2,7 @@ import { SiteInfo, UIConstants } from "@courselit/common-models";
22import Payment , { InitiateProps } from "./payment" ;
33import { responses } from "@config/strings" ;
44import Razorpay from "razorpay" ;
5+ import { getUnitAmount } from "./helpers" ;
56
67const {
78 payment_invalid_settings : paymentInvalidSettings ,
@@ -35,8 +36,12 @@ export default class RazorpayPayment implements Payment {
3536 return this ;
3637 }
3738
38- async initiate ( { course, purchaseId } : InitiateProps ) {
39- const order = await this . generateOrder ( { course, purchaseId } ) ;
39+ async initiate ( { product, paymentPlan, metadata } : InitiateProps ) {
40+ const order = await this . generateOrder ( {
41+ product,
42+ paymentPlan,
43+ metadata,
44+ } ) ;
4045 return order . id ;
4146 }
4247
@@ -57,16 +62,20 @@ export default class RazorpayPayment implements Payment {
5762 }
5863
5964 private generateOrder ( {
60- course,
61- purchaseId,
62- } : Pick < InitiateProps , "course" | "purchaseId" > ) : Promise < { id : string } > {
65+ metadata,
66+ product,
67+ paymentPlan,
68+ } : Pick < InitiateProps , "product" | "paymentPlan" | "metadata" > ) : Promise < {
69+ id : string ;
70+ } > {
6371 return new Promise ( ( resolve , reject ) => {
72+ const unit_amount = getUnitAmount ( paymentPlan ) * 100 ;
6473 this . razorpay . orders . create (
6574 {
66- amount : course . cost * 100 ,
75+ amount : unit_amount ,
6776 currency : this . siteinfo . currencyISOCode ?. toUpperCase ( ) ,
6877 notes : {
69- purchaseId ,
78+ ... metadata ,
7079 } ,
7180 } ,
7281 ( err , order ) => {
0 commit comments