आपको इस सप्ताह PHP में एक विश्वसनीय मुद्रा रूपांतरण सुविधा भेजने की आवश्यकता है—भुगतान, चेकआउट कुल, या वित्तीय रिपोर्टिंग के लिए—और आप एक API कुंजी और एकल सदस्यता चाहते हैं ताकि अधिग्रहण सरल हो सके। इस गाइड के अंत तक, आप जानेंगे कि Zyla API Hub से मुद्रा विनिमय दर API का उपयोग कैसे करें, अपने कोड को कैशिंग और फॉलबैक के लिए कैसे संरचित करें, और Zyla के MCP ब्रिज के माध्यम से AI एजेंट से उसी वित्त API को कैसे बुलाएं।
Zyla API Hub पर मुद्रा विनिमय दर API के साथ आप क्या बना सकते हैं
एक मुद्रा विनिमय दर API मशीन-पठनीय विनिमय दर डेटा प्रदान करता है जिसका उपयोग डेवलपर्स करते हैं:
- चेकआउट या इनवॉइसिंग के लिए एक स्रोत मुद्रा (जैसे, USD) से एक लक्षित मुद्रा (जैसे, EUR) में राशि को परिवर्तित करें।
- डैशबोर्ड या विवरणों में कई मुद्राओं के लिए संदर्भ दरें प्रदर्शित करें।
- ऐतिहासिक या अंतर्दिन राशियों को एकल रिपोर्टिंग मुद्रा में सामान्यीकृत करें।
Zyla API Hub पर, वित्त API एक खाते, एक API कुंजी और एक सदस्यता मॉडल के पीछे रहते हैं। यह मानकीकरण आपको बाद में प्रदाताओं को जोड़ने या बदलने पर प्रबंधित करने के लिए आवश्यक चलती भागों को कम करता है। मार्केटप्लेस पर हर API को MCP-संगत डेवलपर उपकरणों से भी बुलाया जा सकता है, जिससे आप अपने बैकएंड एकीकरण को बदले बिना AI एजेंटों से कॉल का आयोजन कर सकते हैं।
Zyla API Hub पर आरंभ करना
अपने PHP सेवा को Zyla पर एक मुद्रा विनिमय दर API से कनेक्ट करने के लिए:
- Zyla API Hub पर API पृष्ठ खोलें और इसकी विवरण की समीक्षा करें ताकि यह पुष्टि हो सके कि यह आपको आवश्यक विनिमय डेटा लौटाता है।
- जब उपलब्ध हो, तो सदस्यता लें या मुफ्त परीक्षण प्रारंभ करें, फिर अपनी API कुंजी कॉपी करें।
- API पृष्ठ से, दस्तावेज़ीकृत एंडपॉइंट URL(s), HTTP विधि(यों), और किसी भी आवश्यक पैरामीटर को कॉपी करें।
महत्वपूर्ण: वर्तमान पहुंच विकल्पों और मूल्य निर्धारण के लिए API पृष्ठ देखें। प्रमाणीकरण शैली और पैरामीटर नाम उस पृष्ठ पर परिभाषित हैं। यह गाइड बिना दस्तावेज़ विवरणों का अनुमान नहीं लगाता है।
एंडपॉइंट अवलोकन और दस्तावेज़ कैसे पढ़ें
चूंकि एंडपॉइंट नाम, विधियाँ, URL, आवश्यक पैरामीटर, और प्रतिक्रिया फ़ील्ड Zyla पर प्रति API परिभाषित होते हैं, जब आप मुद्रा विनिमय दर API पृष्ठ खोलते हैं तो इस चेकलिस्ट का उपयोग करें:
- बेस URL और सटीक पथ(ों) का पता लगाएँ:
- एक या कई मुद्राओं के लिए नवीनतम विनिमय दरें लाना।
- यदि एकल ऑपरेशन के रूप में प्रदान किया गया हो तो एक मुद्रा से दूसरी मुद्रा में राशि को परिवर्तित करना।
- यदि ऐतिहासिक डेटा उपलब्ध है तो एक विशिष्ट तिथि के लिए दरों का प्रश्न करना।
- प्रत्येक एंडपॉइंट के लिए HTTP विधि की पुष्टि करें (आमतौर पर GET, कभी-कभी परिवर्तनों के लिए POST)।
- आवश्यक पैरामीटर सूचीबद्ध करें:
- बेस या स्रोत मुद्रा कोड (जैसे, "USD").
- लक्षित मुद्रा कोड(जैसे, "EUR,GBP,JPY").
- परिवर्तित करने के लिए राशि (यदि API एक रूपांतरण एंडपॉइंट प्रदान करता है)।
- तारीख (यदि ऐतिहासिक प्रश्नों का समर्थन किया जाता है)।
- अपने ऐप में उपयोग किए जाने वाले प्रतिक्रिया फ़ील्ड की पहचान करें (जैसे, संख्यात्मक विनिमय दर और कोई भी टाइमस्टैम्प या बेस मुद्रा संकेतक)।
यदि API पृष्ठ पर कोई विशिष्ट फ़ील्ड या पैरामीटर सूचीबद्ध नहीं है, तो यह मान न लें कि यह मौजूद है—केवल वही लागू करें जो दस्तावेज़ स्पष्ट रूप से परिभाषित करता है।
वित्त-ग्रेड विश्वसनीयता के लिए PHP एकीकरण पैटर्न
नीचे एक PHP संरचना है जिसे आप तब अनुकूलित कर सकते हैं जब आप API के पृष्ठ से सटीक एंडपॉइंट और पैरामीटर चिपकाते हैं। यह पूर्वानुमानित त्रुटि हैंडलिंग, कैशिंग, और डेटा मान्यता पर जोर देता है—वित्तीय एकीकरण में मूल आवश्यकताएँ।
कोर PHP प्रवाह
यह प्रवाह मानता है कि "नवीनतम दरें" या "परिवर्तित करें" शैली का एंडपॉइंट मौजूद है। आप URL, विधि, हेडर, और पैरामीटर नामों को ठीक उसी तरह भरेंगे जैसे API पृष्ठ पर दस्तावेज़ित किया गया है।
<?php
declare(strict_types=1);
/**
* Zyla-होस्टेड वित्त API का उपयोग करके मुद्रा रूपांतरण सेवा।
* 1. पर्यावरण या सीक्रेट्स प्रबंधक से API कुंजी पढ़ें।
* 2. दस्तावेज़ीकृत एंडपॉइंट और पैरामीटर से अनुरोध बनाएं।
* 3. समान डेटा को एक छोटे TTL के भीतर फिर से प्राप्त करने से बचाने के लिए एक न्यूनतम कैश जोड़ें।
* 4. गणनाओं से पहले संख्यात्मक फ़ील्ड को पार्स और मान्य करें।
*/
final class FxClient
{
private string $apiKey;
private string $endpoint; // Zyla API पृष्ठ से सटीक एंडपॉइंट URL चिपकाएँ
private int $ttlSeconds = 300; // कैश समय विंडो; अपने व्यवसाय की आवश्यकताओं के अनुसार समायोजित करें
public function __construct(string $apiKey, string $endpoint)
{
$this->apiKey = $apiKey;
$this->endpoint = $endpoint;
}
public function convert(string $from, string $to, float $amount, ?string $date = null): array
{
// API के दस्तावेज़ीकृत पैरामीटर के आधार पर प्रश्न बनाएं।
// यदि वे भिन्न हैं तो नीचे 'from', 'to', 'amount', 'date' कुंजी को वास्तविक पैरामीटर नामों से बदलें।
$query = [
'from' => $from,
'to' => $to,
'amount' => $amount,
];
if ($date !== null) {
$query['date'] = $date;
}
$cacheKey = $this->cacheKey($query);
$cached = $this->cacheGet($cacheKey);
if ($cached !== null) {
return $cached;
}
$url = $this->endpoint . '?' . http_build_query($query);
// API पृष्ठ पर दस्तावेज़ित के रूप में हेडर सेट करें।
// यदि API हेडर-आधारित प्रमाणीकरण का उपयोग करता है, तो इसे नीचे जोड़ें।
$headers = [
// उदाहरण (यदि भिन्न है तो वास्तविक हेडर नाम के साथ बदलें):
// 'Authorization: Bearer ' . $this->apiKey,
// या 'X-API-KEY: ' . $this->apiKey
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$response = curl_exec($ch);
if ($response === false) {
$err = curl_error($ch);
curl_close($ch);
throw new RuntimeException('FX API अनुरोध विफल: ' . $err);
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status < 200 || $status >= 300) {
throw new RuntimeException('FX API HTTP ' . $status . ' — शरीर: ' . $response);
}
$data = json_decode($response, true, flags: JSON_BIGINT_AS_STRING);
if (!is_array($data)) {
throw new RuntimeException('FX API ने गैर-JSON या अमान्य JSON लौटाया');
}
// लौटाने से पहले दस्तावेज़ीकृत फ़ील्ड को मान्य करें।
// API पृष्ठ से प्रतिक्रिया संरचना से मेल खाने के लिए जांचों को समायोजित करें।
// उदाहरण के लिए, सुनिश्चित करें कि "rate" या "result" संख्यात्मक है।
// if (!isset($data['rate']) || !is_numeric($data['rate'])) { ... }
$this->cacheSet($cacheKey, $data, $this->ttlSeconds);
return $data;
}
private function cacheKey(array $query): string
{
return 'fx:' . hash('sha256', json_encode($query));
}
private function cacheGet(string $key): ?array
{
$path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $key . '.json';
if (!file_exists($path)) {
return null;
}
$mtime = filemtime($path);
if ($mtime === false || (time() - $mtime) > $this->ttlSeconds) {
@unlink($path);
return null;
}
$json = file_get_contents($path);
if ($json === false) {
return null;
}
$data = json_decode($json, true);
return is_array($data) ? $data : null;
}
private function cacheSet(string $key, array $value, int $ttl): void
{
$path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $key . '.json';
file_put_contents($path, json_encode($value));
touch($path, time()); // mtime को ताज़ा करें
}
}
// उपयोग
$apiKey = getenv('ZYLA_API_KEY') ?: '';
$endpoint = getenv('ZYLA_FX_ENDPOINT') ?: ''; // API पृष्ठ से सटीक एंडपॉइंट चिपकाएँ
if ($apiKey === '' || $endpoint === '') {
throw new RuntimeException('ZYLA_API_KEY या ZYLA_FX_ENDPOINT गायब है');
}
$client = new FxClient($apiKey, $endpoint);
// उदाहरण:
// $result = $client->convert('USD', 'EUR', 123.45);
// var_dump($result);
एंडपॉइंट, हेडर, और पैरामीटर नामों को API पृष्ठ पर निर्दिष्ट के अनुसार बदलें। संख्यात्मक मान्यताओं को सख्त रखें; वित्तीय कार्यप्रवाह में, गैर-संख्यात्मक या गायब फ़ील्ड पर जल्दी विफल हो जाएं।
उत्पादन विवरण जो घंटे बचाते हैं
- बेस मुद्रा और प्रतीक: जांचें कि क्या API दरों को "बेस प्रति लक्षित" के रूप में व्यक्त करता है (जैसे, USD प्रति EUR)। हमेशा राशि की गणना करने से पहले प्रतिक्रिया में बेस मुद्रा फ़ील्ड पढ़ें।
- टाइमस्टैम्प और समय क्षेत्र: वित्तीय डेटा अक्सर टाइमस्टैम्प ले जाता है। आंतरिक रूप से UTC में सामान्यीकृत करें, और ऑडिट करने की क्षमता के लिए दर के साथ लौटाए गए टाइमस्टैम्प को संग्रहीत करें।
- कैशिंग रणनीति: एक छोटे समय विंडो (जैसे, 1–10 मिनट) के लिए समान अनुरोध को कैश करें जब तक कि API के दस्तावेज़ में सख्त ताजगी आवश्यकताएँ निर्दिष्ट न हों। बेस, प्रतीकों, और तिथि को शामिल करने वाली कुंजी द्वारा कैश करें।
- गैर-व्यापारिक दिन: यदि API आधिकारिक संदर्भ दरें प्रदान करता है, तो सप्ताहांत या छुट्टी के अपडेट नहीं हो सकते हैं। तय करें कि जब टाइमस्टैम्प आपके थ्रेशोल्ड से पुराना हो तो आपका UI या मूल्य निर्धारण तर्क कैसे व्यवहार करता है।
- गोलाई: प्रदर्शन के लिए, मुद्रा जोड़ी के मानकों के आधार पर 2–4 दशमलव स्थानों तक गोल करें। लेखांकन के लिए, API प्रतिक्रिया से पूर्ण सटीकता संग्रहीत करें और केवल प्रस्तुति या पोस्टिंग समय पर अपने लेजर नियमों के आधार पर गोल करें।
MCP ब्रिज के माध्यम से AI एजेंटों से कॉल करना
Zyla पर हर API को MCP ब्रिज एंडपॉइंट के माध्यम से बुलाया जा सकता है। यह उपयोगी है यदि आप Claude Code, Cursor, या Windsurf जैसे उपकरणों में वित्तीय कार्यप्रवाह का आयोजन कर रहे हैं और चाहते हैं कि एजेंट बिना नए क्रेडेंशियल्स को एम्बेड किए उसी सब्सक्राइब किए गए API को कॉल करे।
MCP गेटवे URL है:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
उपकरण-विशिष्ट कॉल विवरण (जैसे, अनुरोध शरीर का आकार, उपकरण पंजीकरण) आपके MCP क्लाइंट पर निर्भर करते हैं। यहां ब्रिज दस्तावेज़ देखें: MCP. पंजीकरण या एजेंट को प्रॉम्प्ट करते समय API के पृष्ठ पर दस्तावेज़ित नाम और पैरामीटर का सटीक उपयोग करें।
cURL और JavaScript उदाहरण जिन्हें आप एंडपॉइंट कॉपी करने के बाद अनुकूलित करेंगे
एक बार जब आपके पास API पृष्ठ से सटीक एंडपॉइंट URL और आवश्यक पैरामीटर हों, तो आपका CLI और एप्लिकेशन कोड सीधा हो जाता है। नीचे उन विशिष्टताओं के साथ भरने के लिए टेम्पलेट उदाहरण हैं। पैरामीटर नामों या हेडर को न बदलें जब तक कि वे API पृष्ठ से मेल न खाते हों।
cURL टेम्पलेट (API पृष्ठ से सटीक URL, विधि, और हेडर के साथ भरें)
# METHOD, ENDPOINT_URL, प्रश्न पैरामीटर, और हेडर को API पृष्ठ पर दिखाए गए मानों के साथ बदलें।
# यदि पृष्ठ विभिन्न नामों का दस्तावेज़ करता है तो पैरामीटर नामों को न बदलें।
curl -X METHOD \
"ENDPOINT_URL?from=USD&to=EUR&amount=123.45" \
-H "YOUR-AUTH-HEADER: YOUR_API_KEY"
नोट: यह एक टेम्पलेट है। सटीक विधि, URL, हेडर नाम, और पैरामीटर कुंजी उस API पृष्ठ से आती हैं जिस पर आपने सदस्यता ली है।
JavaScript (Node.js, fetch) टेम्पलेट
import fetch from 'node-fetch';
async function convert() {
const apiKey = process.env.ZYLA_API_KEY;
const endpoint = process.env.ZYLA_FX_ENDPOINT; // सटीक एंडपॉइंट URL चिपकाएँ
const params = new URLSearchParams({
// API पृष्ठ द्वारा दस्तावेज़ित के रूप में कुंजी बदलें:
from: 'USD',
to: 'EUR',
amount: '123.45'
});
const url = `${endpoint}?${params.toString()}`;
const res = await fetch(url, {
method: 'GET', // यदि भिन्न है तो दस्तावेज़ित विधि के साथ बदलें
headers: {
// यदि कोई हो तो दस्तावेज़ित हेडर नाम के साथ बदलें (जैसे, 'Authorization' या 'X-API-KEY')
// 'Authorization': `Bearer ${apiKey}`
}
});
if (!res.ok) {
const text = await res.text();
throw new Error(`HTTP ${res.status}: ${text}`);
}
const data = await res.json();
// उपयोग करने से पहले दस्तावेज़ीकृत फ़ील्ड को मान्य करें:
// उदाहरण के लिए, यदि (typeof data.rate !== 'number') throw new Error('अमान्य दर');
return data;
}
convert()
.then(data => console.log(data))
.catch(err => {
console.error(err);
process.exit(1);
});
विधि, हेडर नाम, और पैरामीटर कुंजी को API दस्तावेज़ में स्पष्ट रूप से निर्दिष्ट के अनुसार बदलें। यदि प्रतिक्रिया में एक संख्यात्मक दर और एक टाइमस्टैम्प है, तो गणनाएँ करने या UI को प्रस्तुत करने से पहले दोनों को पढ़ें और मान्य करें।
वास्तविक दुनिया के वित्तीय उपयोग के मामले जिन्हें आप इस सप्ताह भेज सकते हैं
- ई-कॉमर्स चेकआउट: स्टोर मुद्रा से खरीदार की पसंदीदा मुद्रा में शॉपिंग कार्ट कुल को परिवर्तित करें। सुनिश्चित करें कि चेकआउट के दौरान कुल राशि में कूदने से बचाने के लिए सत्र के लिए दर को कैश करें।
- भुगतान विभाजन: पोस्टिंग के समय दर का उपयोग करके निर्माता की आय को प्लेटफ़ॉर्म की बेस मुद्रा में सामान्यीकृत करें, फिर टाइमस्टैम्प और दर को अपरिवर्तनीय मेटाडेटा के रूप में संग्रहीत करें।
- विश्लेषण और रिपोर्टिंग: एक बहु-मुद्रा राजस्व डैशबोर्ड प्रदर्शित करें जो दैनिक दर (या एक दस्तावेज़ीकृत ऐतिहासिक एंडपॉइंट) को लाकर और एक सुसंगत रिपोर्टिंग मुद्रा की गणना करके।
- बिलिंग और इनवॉइसिंग: ग्राहक के इनवॉइस को उनकी स्थानीय मुद्रा में दिखाएं जबकि लेजर राशियों को आपकी बेस मुद्रा में संग्रहीत करें, दोनों दिशाओं के लिए समान दर का उपयोग करें।
लाइव जाने से पहले परीक्षण चेकलिस्ट
- सटीकता: प्रत्येक चरण (रूपांतरण, भंडारण, प्रदर्शन) के लिए संख्यात्मक सटीकता और गोलाई नियमों की पुष्टि करें।
- फेल-सेफ: तय करें कि यदि API अस्थायी रूप से अनुपलब्ध है तो आपका ऐप कैसे व्यवहार करता है (जैसे, एक दृश्यमान "के अनुसार" टाइमस्टैम्प के साथ अंतिम कैश किए गए मान्य दर को लौटाएं)।
- इडेम्पोटेंसी: यदि आप रूपांतरण संचालन को पोस्ट करते हैं, तो सुनिश्चित करें कि पुनः प्रयास बाहरी कॉल को डुप्लिकेट नहीं करते हैं जब तक कि आवश्यक न हो।
- पर्यवेक्षण: पुनःसंगणना के लिए प्रत्येक रूपांतरण के लिए उपयोग की गई बेस मुद्रा, प्रतीक, कच्ची दर, और टाइमस्टैम्प को लॉग करें।
- समय क्षेत्र: ताजगी की तुलना करने या स्थायी रूप से रखने से पहले किसी भी लौटाए गए टाइमस्टैम्प को UTC में परिवर्तित करें।
अब आगे कैसे बढ़ें
1) अपना खाता बनाएं, आपको आवश्यक वित्त API की सदस्यता लें, और अपनी API कुंजी कॉपी करें। 2) ऊपर दिए गए PHP और JavaScript टेम्पलेट में दस्तावेज़ीकृत एंडपॉइंट और पैरामीटर चिपकाएँ। 3) कैशिंग और संख्यात्मक मान्यताओं को जोड़ें। 4) यदि आप AI एजेंटों की मदद चाहते हैं, तो उसी API को MCP ब्रिज के माध्यम से वायर करें। यहां से शुरू करें: पंजीकरण करें.
FAQ
क्या API ऐतिहासिक विनिमय दरें शामिल करता है?
समर्थित एंडपॉइंट के लिए Zyla पर API पृष्ठ की जांच करें। यदि ऐतिहासिक एंडपॉइंट प्रदान किया गया है, तो यह तिथि पैरामीटर और प्रतिक्रिया फ़ील्ड को सूचीबद्ध करेगा।
मुझे कौन सा प्रमाणीकरण हेडर उपयोग करना चाहिए?
API पृष्ठ पर दस्तावेज़ित प्रमाणीकरण तंत्र (हेडर नाम और प्रारूप या प्रश्न पैरामीटर) का ठीक से उपयोग करें। डिफ़ॉल्ट योजना का अनुमान न लगाएं।
मुझे उत्पादन में दरों को कितनी बार ताज़ा करना चाहिए?
एक छोटा TTL (जैसे, कुछ मिनट) का उपयोग करें जब तक कि API दस्तावेज़ विभिन्न अपडेट अंतराल निर्दिष्ट न करे। हमेशा लौटाए गए टाइमस्टैम्प को संग्रहीत करें ताकि यह साबित हो सके कि आपने कौन सी दर का उपयोग किया।
क्या मैं AI एजेंट से उसी वित्त API को कॉल कर सकता हूँ?
हाँ। दस्तावेज़ित URL पर MCP ब्रिज का उपयोग करें और उपकरण कॉल के लिए अपने MCP क्लाइंट के निर्देशों का पालन करें। API पृष्ठ से सटीक API नाम और पैरामीटर का संदर्भ लें।
क्या कोई मुफ्त परीक्षण है?
वर्तमान पहुंच विकल्पों और मूल्य निर्धारण के लिए Zyla पर API पृष्ठ की जांच करें। उपलब्धता बदल सकती है।