সাধারণ ইন্টিগ্রেশন প্যাটার্নের জন্য উদাহরণগুলি অনুলিপি-পেস্ট করুন। সমস্ত উদাহরণ ব্যবহার করে handypay থেকে সাহায্যকারী দ্রুত শুরু.
Next.js: সার্ভার-সাইড পণ্য তালিকা
একটি Next.js অ্যাপ রাউটার সার্ভার উপাদানের মধ্যে পণ্যগুলি আনুন এবং রেন্ডার করুন।
import { handypay } from "@/lib/handypay";
export default async function ProductsPage() {
const { data: products, has_more } = await handypay("/products?limit=20");
return (
<div>
{products.map((product: any) => (
<div key={product.id}>
<h2>{product.name}</h2>
<p>{product.description}</p>
{product.default_price && (
<span>${(product.default_price.amount / 100).toFixed(2)}</span>
)}
</div>
))}
</div>
);
}Next.js: চেকআউট বোতাম (সার্ভার অ্যাকশন)
একটি সার্ভার অ্যাকশন তৈরি করুন যা একটি চেকআউট সেশন তৈরি করে এবং ব্যবহারকারীকে পুনর্নির্দেশ করে।
"use server";
import { redirect } from "next/navigation";
import { handypay } from "@/lib/handypay";
export async function createCheckout(priceId: string) {
const session = await handypay("/payment-sessions", {
method: "POST",
body: JSON.stringify({
line_items: [{ price_id: priceId, quantity: 1 }],
success_url: `${process.env.NEXT_PUBLIC_APP_URL}/success`,
cancel_url: `${process.env.NEXT_PUBLIC_APP_URL}/pricing`,
}),
});
redirect(session.url);
}একটি ক্লায়েন্ট উপাদান থেকে একটি ফর্ম অ্যাকশন বা কল করুন onClick.
React Native: ব্রাউজারে Checkout খোলা
একটি পেমেন্ট সেশন তৈরি করুন এবং এক্সপো WebBrowser ব্যবহার করে হোস্ট করা চেকআউট URL খুলুন।
import * as WebBrowser from "expo-web-browser";
const API_URL = "https://api.handypay.me/api/v1";
const API_KEY = "hp_live_..."; // Load from secure storage
export async function openCheckout(priceId: string) {
const res = await fetch(`${API_URL}/payment-sessions`, {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
line_items: [{ price_id: priceId, quantity: 1 }],
success_url: "https://yourapp.com/mobile-success",
cancel_url: "https://yourapp.com/mobile-cancel",
}),
});
const { data } = await res.json();
await WebBrowser.openBrowserAsync(data.url);
}সাবস্ক্রিপশন ব্যবস্থাপনার প্রবাহ
শেষ থেকে শেষ পর্যন্ত সাবস্ক্রিপশন জীবনচক্রঃ একটি পরিকল্পনা তৈরি করুন, একটি মাল্টি-সিট চেকআউট শুরু করুন, স্পষ্টভাবে আসন পরিবর্তন করুন এবং বাতিল করুন।
// 1. Create a subscription product (do this once, e.g. in a seed script)
const plan = await handypay("/subscription-products", {
method: "POST",
body: JSON.stringify({
name: "Pro Plan",
amount: 1999,
currency: "usd",
interval: "monthly",
trial_period_days: 7,
}),
});
// 2. Create a subscription checkout session for a customer
const session = await handypay("/subscription-sessions", {
method: "POST",
body: JSON.stringify({
price_id: plan.price.id,
quantity: 5,
customer_email: "user@example.com",
success_url: "https://yoursite.com/welcome",
cancel_url: "https://yoursite.com/pricing",
}),
});
// 3. Redirect to session.url
// 4. List active subscriptions
const { data: subs } = await handypay("/subscriptions?limit=10");
// 5. Add seats and place the proration on the next invoice
await handypay(`/subscriptions/${subs[0].id}/quantity`, {
method: "PATCH",
body: JSON.stringify({
quantity: 8,
proration_behavior: "create_prorations",
}),
});
// 6. Cancel a subscription
await handypay(`/subscriptions/${subs[0].id}/cancel`, { method: "POST" });