SDK libraries
SDK NPM
webhooks भुगतान, सेटअप और सत्यापन लिंक के लिए JavaScript से आधिकारिक SDK और MakePay से TypeScript इंस्टॉल करें।
MakePay NPM SDK
सिंहावलोकन
MakePay npm SDK सर्वर-साइड MakePay एकीकरण के लिए एक टाइप की गई JavaScript और TypeScript लाइब्रेरी है। यह API-कुंजी प्रमाणीकरण, होस्ट किए गए भुगतान-लिंक संचालन, MakePay सेटिंग्स और हस्ताक्षरित webhook सत्यापन को लपेटता है।
पैकेट:
@makecrypto/makepay
इंस्टालेशन
npm install @makecrypto/makepay
pnpm add @makecrypto/makepay
SDK Node.js 18 या नए को लक्षित करता है और रनटाइम fetch कार्यान्वयन का उपयोग करता है।
प्रमाणीकरण
MakeCrypto मर्चेंट डेवलपर क्षेत्र से एक MakePay API कुंजी बनाएं और कुंजी रहस्य को केवल अपने सर्वर पर संग्रहीत करें।
import { MakePayClient } from "@makecrypto/makepay";
const makepay = new MakePayClient({
keyId: process.env.MAKEPAY_KEY_ID!,
keySecret: process.env.MAKEPAY_KEY_SECRET!,
// Optional: override only when MakePay gives you a custom checkout origin.
checkoutBaseUrl: "https://makepay.io",
});
SDK x-makecrypto-key-id और x-makecrypto-key-secret हेडर को MakePay पार्टनर API को भेजता है।
भुगतान लिंक बनाएं
const response = await makepay.createPaymentLink({
title: "Order #1042",
description: "Checkout for order #1042",
amount: "129.99",
currency: "USDT",
orderId: "order_1042",
customerEmail: "buyer@example.com",
returnUrl: "https://merchant.example/orders/1042",
successUrl: "https://merchant.example/orders/1042/success",
failureUrl: "https://merchant.example/orders/1042/pay",
expirationTime: "12h",
});
console.log(response.paymentLink);
निर्माण के दौरान एक MakePay भुगतान अनुरोध ईमेल भेजें:
await makepay.createPaymentLink(payload, {
sendPaymentRequestEmail: true,
});
एंबेडेड चेकआउट
रीडायरेक्ट के लिए होस्ट किए गए checkout URLs का उपयोग करें, या जब आपका फ्रंटेंड खरीदार को व्यापारी पृष्ठ पर रखता है तो एंबेड हेल्पर्स का उपयोग करें।
import {
buildMakePayEmbeddedCheckoutUrl,
buildMakePayHostedCheckoutUrl,
mountMakePayCheckout,
openMakePayCheckout,
} from "@makecrypto/makepay";
const paymentUid = response.paymentLink.uid;
const hostedUrl = buildMakePayHostedCheckoutUrl(paymentUid);
const embedUrl = buildMakePayEmbeddedCheckoutUrl(paymentUid, {
parentOrigin: "https://merchant.example",
});
await openMakePayCheckout({
paymentUid,
onEvent(event) {
if (event.type === "makepay.payment.redirect_requested") {
window.location.assign(String(event.payload?.redirectUrl || hostedUrl));
}
},
});
mountMakePayCheckout({
container: "#makepay-checkout",
paymentUid,
});
स्थिर सीएमएस पृष्ठों के लिए, buildMakePayEmbedButtonHtml(paymentUid) एक बटन स्निपेट लौटाता है जो MakePay मोडल स्क्रिप्ट लोड करता है।
लिंक पढ़ें और अपडेट करें
await makepay.listPaymentLinks();
await makepay.getPaymentLink("PAYMENT_LINK_UID");
await makepay.updatePaymentLink("PAYMENT_LINK_UID", {
status: "paused",
});
await makepay.sendPaymentRequestEmail("PAYMENT_LINK_UID", "buyer@example.com");
सेटिंग्स
await makepay.getSettings();
await makepay.updateSettings({
callbackUrl: "https://merchant.example/webhooks/makepay",
});
Webhook सत्यापन
JSON को पार्स करने से पहले सटीक रॉ बॉडी पढ़ें।
import { parseMakePayWebhook } from "@makecrypto/makepay";
export async function POST(request: Request) {
const rawBody = await request.text();
const event = parseMakePayWebhook(
rawBody,
request.headers.get("x-makepay-signature"),
process.env.MAKEPAY_WEBHOOK_SECRET!,
);
if (event.event?.type === "status_changed") {
// Update your local order.
}
return new Response("ok");
}
जब आपको केवल बूलियन परिणाम की आवश्यकता हो तो verifyMakePayWebhook का उपयोग करें।
त्रुटि प्रबंधन
API कॉल MakePayError फेंकते हैं। इसमें HTTP स्थिति और डिकोडेड प्रतिक्रिया निकाय शामिल है।
import { MakePayError } from "@makecrypto/makepay";
try {
await makepay.getPaymentLink("PAYMENT_LINK_UID");
} catch (error) {
if (error instanceof MakePayError) {
console.error(error.status, error.responseBody);
}
}
स्रोत लेआउट
विहित स्रोत apps/plugins/npm-sdk में रहता है। प्रकाशित एनपीएम पैकेज में dist से संकलित ESM JavaScript और TypeScript घोषणाएं शामिल हैं।
रिलीज नोट्स
पैकेज को सार्वजनिक पहुंच के साथ @makecrypto/makepay के रूप में प्रकाशित किया गया है। रिलीज़ प्रकाशन को makecrypto संगठन में npm ऑटोमेशन टोकन या 2FA की आवश्यकता होने पर OTP-सक्षम टोकन का उपयोग करना चाहिए।