বিষয়বস্তুতে যান

Apple Wallet PassKit API

PassKit Designer API আপনাকে প্রোগ্রাম্যাটিকভাবে Apple Wallet পাস তৈরি, আপডেট, ডাউনলোড এবং পরিচালনা করতে দেয়। এটি কন্ট্রোল প্যানেলের পাস বিল্ডার দ্বারা সম্পাদিত একই অপারেশন সমর্থন করে। এটি লয়ালটি কার্ড, কুপন, ইভেন্ট টিকিট, বোর্ডিং পাস এবং স্টোর কার্ড ইস্যু করতে এবং আপনার ব্যবহারকারীদের ডিভাইসে ইতিমধ্যে ইনস্টল করা পাসে লাইভ আপডেট পুশ করতে ব্যবহার করুন।

বেস URL

Anchor link to
https://apple-passkit.svc-nue.pushwoosh.com

সমস্ত এন্ডপয়েন্ট HTTPS এর মাধ্যমে পরিবেশন করা হয়। অনুরোধ এবং প্রতিক্রিয়া application/json ব্যবহার করে, যদি না অন্যভাবে উল্লেখ করা হয়।

অথেন্টিকেশন

Anchor link to

প্রতিটি অনুরোধে আপনার Pushwoosh API অ্যাক্সেস টোকেন সহ একটি Authorization হেডার অন্তর্ভুক্ত করতে হবে:

Authorization: Token <api-token>

টোকেনের মালিক অ্যাকাউন্টটিকে অবশ্যই applicationCode দ্বারা উল্লেখিত অ্যাপ্লিকেশনের মালিক হতে হবে। অন্য অ্যাকাউন্টের অন্তর্গত একটি অ্যাপ্লিকেশনের জন্য একটি অনুরোধ 403 Forbidden ফেরত দেবে।

কনভেনশন

Anchor link to
  • ফিল্ডের নামকরণ: JSON ফিল্ড lowerCamelCase ব্যবহার করে (উদাহরণস্বরূপ, passTypeIdentifier, serialNumber, backgroundColor)।
  • অপূরণীয় ফিল্ড: প্রতিক্রিয়াগুলি খালি বা শূন্য-মূল্য থাকা সত্ত্বেও সমস্ত ফিল্ড অন্তর্ভুক্ত করে।
  • বাইনারি ডেটা: bytes ফিল্ড যেমন pkpassData এবং ইমেজ data JSON-এ Base64-এনকোডেড স্ট্রিং।
  • সিরিয়াল নম্বর: serialNumber সর্বদা সার্ভার দ্বারা নির্ধারিত হয় যখন একটি পাস তৈরি করা হয়। তৈরি করার সময় আপনি যে কোনো মান পাঠান তা উপেক্ষা করা হয়; এটি পরবর্তী সমস্ত অপারেশনের জন্য পাসটিকে চিহ্নিত করে।

ত্রুটি প্রতিক্রিয়া

Anchor link to

API অভ্যন্তরীণ স্ট্যাটাস কোডগুলিকে HTTP স্ট্যাটাস কোডে ম্যাপ করে:

HTTP স্ট্যাটাসঅর্থ
400 Bad Requestঅবৈধ আর্গুমেন্ট—একটি প্রয়োজনীয় ফিল্ড অনুপস্থিত বা ভুল ফর্ম্যাট করা হয়েছে।
401 UnauthorizedAuthorization হেডার অনুপস্থিত বা অবৈধ।
403 Forbiddenঅ্যাপ্লিকেশনটি কলারের অ্যাকাউন্টের অন্তর্গত নয়।
404 Not Foundপাস, টেমপ্লেট, বা অ্যাপ্লিকেশন পাওয়া যায়নি।
503 Service Unavailableপরিষেবাটি ক্ষমতার বাইরে বা সাময়িকভাবে অনুপলব্ধ।

এন্ডপয়েন্ট

Anchor link to
মেথডপাথবর্ণনা
POST/api/pass/validateএকটি পাস কনফিগারেশন যাচাই করুন
POST/api/pass/createএকটি নতুন .pkpass তৈরি করুন
POST/api/pass/update/{serialNumber}একটি বিদ্যমান পাস আপডেট করুন এবং ডিভাইসগুলিকে অবহিত করুন
GET/api/passesএকটি অ্যাপ্লিকেশনের জন্য সমস্ত পাস তালিকাভুক্ত করুন
GET/api/pass/{applicationCode}/{serialNumber}একটি একক পাস পান
GET/api/pass/{applicationCode}/{serialNumber}/downloadএকটি বিদ্যমান পাসের .pkpass ডাউনলোড করুন
DELETE/api/pass/{applicationCode}/{serialNumber}একটি পাস মুছুন
GET/api/pass/{serialNumber}/registrationsএকটি পাসের জন্য নিবন্ধিত ডিভাইসগুলি তালিকাভুক্ত করুন
GET/api/configঅ্যাপ্লিকেশনটির PassKit কনফিগারেশন পান
GET/api/templatesউপলব্ধ পাস টেমপ্লেট তালিকাভুক্ত করুন
GET/api/templates/{filename}একটি একক টেমপ্লেট পান

একটি পাস তৈরি করুন

Anchor link to

একটি নতুন পাস তৈরি, সাইন এবং সংরক্ষণ করে, তারপর তার সার্ভার-নির্ধারিত সিরিয়াল নম্বর ফেরত দেয়।

POST /api/pass/create

অনুরোধের বডি

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
passobjectহ্যাঁপাস বর্ণনা করে পাস অবজেক্ট
imagesarray of objectsনাপাস ইমেজ (আইকন, লোগো, ইত্যাদি)। একটি বৈধ পাসের জন্য icon এবং logo প্রয়োজন।
userIdstringহ্যাঁPushwoosh ব্যবহারকারী আইডি যার জন্য পাসটি ইস্যু করা হয়েছে।
applicationCodestringহ্যাঁPushwoosh অ্যাপ্লিকেশন কোড
অনুরোধের উদাহরণ
Anchor link to
{
"applicationCode": "XXXXX-XXXXX",
"userId": "user-123",
"pass": {
"description": "Acme loyalty card",
"logoText": "Acme",
"backgroundColor": "rgb(60, 65, 76)",
"foregroundColor": "rgb(255, 255, 255)",
"labelColor": "rgb(255, 255, 255)",
"storeCard": {
"primaryFields": [
{ "key": "balance", "label": "BALANCE", "value": "1200 pts" }
],
"secondaryFields": [
{ "key": "member", "label": "MEMBER", "value": "Jane Doe" }
]
},
"barcodes": [
{
"format": "PKBarcodeFormatQR",
"message": "1234567890",
"messageEncoding": "iso-8859-1"
}
]
},
"images": [
{ "imageType": "icon", "data": "<base64>", "contentType": "image/png" },
{ "imageType": "logo", "data": "<base64>", "contentType": "image/png" }
]
}

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
serialNumberstringতৈরি করা পাসের সার্ভার-নির্ধারিত অনন্য পরিচয়। এটি পাস পেতে (একটি পাস পান) বা .pkpass ডাউনলোড করতে (একটি পাস ডাউনলোড করুন) ব্যবহার করুন।
messagestringফলাফলের বার্তা।
প্রতিক্রিয়ার উদাহরণ
Anchor link to
{
"serialNumber": "a1b2c3d4-1234-5678-9abc-def012345678",
"message": "Pass created successfully"
}

একটি পাস যাচাই করুন

Anchor link to

একটি ফাইল তৈরি না করে Apple-এর স্পেসিফিকেশনের বিরুদ্ধে একটি পাস কনফিগারেশন পরীক্ষা করে। create কল করার আগে এটি কার্যকর।

POST /api/pass/validate

অনুরোধের বডি

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
passobjectহ্যাঁযাচাই করার জন্য পাস অবজেক্ট

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
validbooleanপাসটি যাচাইকরণে উত্তীর্ণ হয়েছে কিনা।
errorsarray of stringsব্লকিং সমস্যা যা অবশ্যই সমাধান করতে হবে।
warningsarray of stringsনন-ব্লকিং পরামর্শ।

একটি পাস আপডেট করুন

Anchor link to

নতুন বিষয়বস্তু দিয়ে পাসটি পুনরায় তৈরি করে, পুনরায় সাইন করে, তার আপডেট ট্যাগ বৃদ্ধি করে এবং পাসটি নিবন্ধনকারী প্রতিটি ডিভাইসে একটি সাইলেন্ট পুশ নোটিফিকেশন পাঠায়। iOS তারপর ব্যাকগ্রাউন্ডে আপডেট করা সংস্করণটি নিয়ে আসে এবং ইনস্টল করে।

POST /api/pass/update/{serialNumber}

পাথ প্যারামিটার

Anchor link to
প্যারামিটারটাইপবর্ণনা
serialNumberstringপাস তৈরি করার সময় ফেরত আসা সিরিয়াল নম্বর।

অনুরোধের বডি

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
updatesobjectহ্যাঁনতুন বিষয়বস্তু সহ সম্পূর্ণ পাস অবজেক্ট
applicationCodestringহ্যাঁPushwoosh অ্যাপ্লিকেশন কোড।

serialNumber (পাথ থেকে) এবং পাসের প্রমাণীকরণ টোকেন সার্ভার দ্বারা সংরক্ষিত থাকে, আপনি যা পাঠান তা নির্বিশেষে।

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
successbooleanআপডেট সফল হয়েছে কিনা।
updateTagintegerনতুন আপডেট ট্যাগ (একটি ইউনিক্স টাইমস্ট্যাম্প)।
messagestringফলাফলের বার্তা।

পাসের তালিকা

Anchor link to

একটি অ্যাপ্লিকেশনের জন্য সংরক্ষিত পাসগুলির একটি পেজিনেটেড, সাজানো তালিকা ফেরত দেয়।

GET /api/passes?applicationCode=XXXXX-XXXXX&page=0&perPage=20

কোয়েরি প্যারামিটার

Anchor link to
প্যারামিটারটাইপপ্রয়োজনীয়বর্ণনা
applicationCodestringহ্যাঁPushwoosh অ্যাপ্লিকেশন কোড।
orderBystringনাসাজানোর ক্ষেত্র: UPDATED (ডিফল্ট) বা CREATED
orderDirectionstringনাসাজানোর দিক: DESC (ডিফল্ট, নতুন প্রথমে) বা ASC
pageintegerনাশূন্য-ভিত্তিক পেজ ইনডেক্স। ডিফল্ট 0
perPageintegerনাপেজের আকার। 0 বা বাদ দিলে সার্ভার ডিফল্ট ব্যবহার করে।

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
passesarray of objectsপাস রেকর্ড এর বর্তমান পেজ।
pageintegerফেরত আসা পেজ ইনডেক্স।
perPageintegerএই প্রতিক্রিয়ার জন্য ব্যবহৃত পেজের আকার।
totalintegerসমস্ত পেজ জুড়ে অ্যাপ্লিকেশনটির জন্য মোট পাসের সংখ্যা।
প্রতিক্রিয়ার উদাহরণ
Anchor link to
{
"passes": [ /* pass records */ ],
"page": 0,
"perPage": 20,
"total": 137
}

একটি পাস পান

Anchor link to

একটি একক সংরক্ষিত পাস ফেরত দেয়, যার মধ্যে তার সম্পূর্ণ পাস অবজেক্ট অন্তর্ভুক্ত থাকে।

GET /api/pass/{applicationCode}/{serialNumber}

পাথ প্যারামিটার

Anchor link to
প্যারামিটারটাইপবর্ণনা
applicationCodestringPushwoosh অ্যাপ্লিকেশন কোড।
serialNumberstringপাসের সিরিয়াল নম্বর।

প্রতিক্রিয়া

Anchor link to

{ "pass": { ... } } ফেরত দেয়, একটি একক পাস রেকর্ড

একটি পাস ডাউনলোড করুন

Anchor link to

একটি বিদ্যমান পাসের সংরক্ষিত .pkpass ফাইল ফেরত দেয়।

GET /api/pass/{applicationCode}/{serialNumber}/download

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
pkpassDatastring (Base64).pkpass ফাইল।
filenamestringপ্রস্তাবিত ফাইলের নাম।

একটি পাস মুছুন

Anchor link to

একটি পাস রেকর্ড এবং তার সংরক্ষিত .pkpass ফাইল সরিয়ে দেয়।

DELETE /api/pass/{applicationCode}/{serialNumber}

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
successbooleanপাসটি মুছে ফেলা হয়েছে কিনা।
messagestringফলাফলের বার্তা।

পাস রেজিস্ট্রেশন পান

Anchor link to

যে ডিভাইসগুলি পাসটি যোগ করেছে এবং আপডেটের জন্য নিবন্ধিত হয়েছে তাদের তালিকা করে।

GET /api/pass/{serialNumber}/registrations?applicationCode=XXXXX-XXXXX

প্রতিক্রিয়া

Anchor link to

{ "registrations": [ ... ] } ফেরত দেয়, যেখানে প্রতিটি আইটেমের আছে:

ফিল্ডটাইপবর্ণনা
deviceLibraryIdentifierstringApple ডিভাইস লাইব্রেরি আইডেন্টিফায়ার।
pushTokenstringডিভাইসের জন্য পাস পুশ টোকেন।

কনফিগারেশন পান

Anchor link to

একটি অ্যাপ্লিকেশনের জন্য তার সার্টিফিকেট থেকে সমাধান করা PassKit কনফিগারেশন ফেরত দেয়।

GET /api/config?applicationCode=XXXXX-XXXXX

প্রতিক্রিয়া

Anchor link to
ফিল্ডটাইপবর্ণনা
teamIdentifierstringসার্টিফিকেট থেকে Apple Team ID।
passTypeIdentifierstringসার্টিফিকেট থেকে Pass Type ID।
organizationNamestringসার্টিফিকেট থেকে সংস্থার নাম।
hasCertificatebooleanএকটি সার্টিফিকেট কনফিগার করা আছে কিনা।
webServiceUrlstringপাস ওয়েব পরিষেবার বেস URL। ক্লায়েন্টরা /v1/passes/{passType}/{serial}?token={authToken} যোগ করে একটি ইনস্টল লিঙ্ক তৈরি করে।

টেমপ্লেট

Anchor link to

উপলব্ধ পাস টেমপ্লেটগুলির তালিকা করুন, অথবা একটিকে পাস অবজেক্ট হিসাবে আনুন যা আপনি একটি সূচনা বিন্দু হিসাবে ব্যবহার করতে পারেন।

GET /api/templates{ "templates": [ { "filename", "name", "description", "style" } ] } ফেরত দেয়।

GET /api/templates/{filename}{ "template": { ...pass object... } } ফেরত দেয়।

একটি পাস QR কোড হিসাবে শেয়ার করুন

Anchor link to

ব্যবহারকারীদের একটি QR কোড স্ক্যান করে (বা একটি লিঙ্কে ট্যাপ করে) একটি পাস যোগ করতে দেওয়ার জন্য, পাসের ইনস্টল URL একটি QR কোডে এনকোড করুন। URLটি আপনি API থেকে ইতিমধ্যে প্রাপ্ত মানগুলি থেকে তৈরি করা হয়:

{webServiceUrl}/v1/passes/{passTypeIdentifier}/{serialNumber}?token={authenticationToken}
URL অংশকোথা থেকে পাবেন
webServiceUrlGET /api/configwebServiceUrl
passTypeIdentifierপাস রেকর্ডpass.passTypeIdentifier (তালিকা/গেট থেকে)
serialNumberপাস রেকর্ডserialNumber
authenticationTokenপাস রেকর্ডpass.authenticationToken

উদাহরণ:

https://apple-passkit.svc-nue.pushwoosh.com/v1/passes/pass.com.acme.loyalty/a1b2c3d4-1234-5678-9abc-def012345678?token=AbC123XyZ

যেকোনো QR লাইব্রেরি দিয়ে এই URLটিকে একটি QR কোড হিসাবে রেন্ডার করুন। যখন একজন ব্যবহারকারী এটি স্ক্যান করে, তখন তাদের ডিভাইস লিঙ্কটি খোলে, সর্বশেষ .pkpass ডাউনলোড করে, এবং Wallet তাদের এটি যোগ করার জন্য অনুরোধ করে—যা ডিভাইসটিকে আপডেটের জন্য নিবন্ধনও করে।

অবজেক্ট রেফারেন্স

Anchor link to

পাস অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
formatVersionintegerপাস ফরম্যাট সংস্করণ। ডিফল্ট 1
passTypeIdentifierstringApple Pass Type ID (pass.com.yourcompany.passtype)। সার্টিফিকেট থেকে ডিফল্ট।
serialNumberstringসার্ভার দ্বারা তৈরি করার সময় নির্ধারিত; পাসটিকে চিহ্নিত করে।
teamIdentifierstringApple Team ID। সার্টিফিকেট থেকে ডিফল্ট।
organizationNamestringপাসে দেখানো সংস্থার নাম। সার্টিফিকেট থেকে ডিফল্ট।
descriptionstringমানুষের পাঠযোগ্য বর্ণনা (Apple দ্বারা প্রয়োজনীয়)।
boardingPass / coupon / eventTicket / storeCard / genericobjectপাসের স্টাইল। ঠিক একটি সেট করতে হবে। দেখুন ফিল্ড গ্রুপ
backgroundColorstringপটভূমির রঙ, rgb(r, g, b)
foregroundColorstringঅগ্রভাগের (টেক্সট) রঙ, rgb(r, g, b)
labelColorstringফিল্ড লেবেলের রঙ, rgb(r, g, b)
logoTextstringলোগোর পাশে দেখানো টেক্সট।
suppressStripShinebooleanস্ট্রিপ ইমেজে শাইন এফেক্ট নিষ্ক্রিয় করুন।
barcodesarrayপাসে দেখানো বারকোড
locationsarrayঅবস্থান যা পাসটিকে প্রাসঙ্গিক করে তোলে।
beaconsarrayবিকন যা পাসটিকে প্রাসঙ্গিক করে তোলে।
relevantDatestringISO 8601 তারিখ যখন পাসটি প্রাসঙ্গিক হয়ে ওঠে।
maxDistanceintegerঅবস্থানের প্রাসঙ্গিকতার জন্য সর্বোচ্চ দূরত্ব (মিটার)।
expirationDatestringISO 8601 মেয়াদ শেষ হওয়ার তারিখ।
voidedbooleanপাসটিকে বাতিল হিসাবে চিহ্নিত করে।
groupingIdentifierstringসম্পর্কিত পাসগুলিকে গ্রুপ করে (ইভেন্ট টিকিট/বোর্ডিং পাস)।
userInfoobject (map)ইচ্ছামত কী/মান অ্যাপ ডেটা।

ফিল্ড গ্রুপ অবজেক্ট

Anchor link to

প্রতিটি পাস স্টাইল (boardingPass, coupon, eventTicket, storeCard, generic) ফিল্ড গুলিকে এলাকায় গ্রুপ করে:

ফিল্ডটাইপবর্ণনা
headerFieldsarrayপাসের হেডারে দেখানো হয় (Wallet-এ স্ট্যাক করা অবস্থায় দৃশ্যমান)।
primaryFieldsarrayসবচেয়ে বিশিষ্ট ফিল্ড।
secondaryFieldsarrayপ্রাথমিক ফিল্ডের নিচে।
auxiliaryFieldsarrayসেকেন্ডারির নিচে অতিরিক্ত ফিল্ড।
backFieldsarrayপাসের পিছনে দেখানো হয়।

boardingPass-এ অতিরিক্তভাবে transitType (PKTransitTypeAir, PKTransitTypeTrain, PKTransitTypeBus, PKTransitTypeBoat, বা PKTransitTypeGeneric) থাকে।

ফিল্ড অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
keystringপাসের মধ্যে অনন্য ফিল্ড কী।
labelstringফিল্ড লেবেল।
valuestringফিল্ডের মান (টেক্সট বা সংখ্যা স্ট্রিং হিসাবে)।
changeMessagestringমান পরিবর্তন হলে দেখানো বার্তা (%@ প্লেসহোল্ডার হিসাবে ব্যবহার করুন)।
textAlignmentstringPKTextAlignment মান।
dateStyle / timeStylestringতারিখ/সময় ফরম্যাটিংয়ের জন্য PKDateStyle
isRelativebooleanবর্তমান সময়ের সাপেক্ষে তারিখ দেখান।
numberStylestringসংখ্যা ফরম্যাটিংয়ের জন্য PKNumberStyle
currencyCodestringISO 4217 মুদ্রা কোড।
dataDetectorTypesarray of stringsমানের উপর প্রয়োগ করার জন্য ডেটা ডিটেক্টর।

বারকোড অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
formatstringPKBarcodeFormatQR, PKBarcodeFormatPDF417, PKBarcodeFormatAztec, বা PKBarcodeFormatCode128
messagestringবারকোডে এনকোড করা ডেটা।
messageEncodingstringটেক্সট এনকোডিং, সাধারণত iso-8859-1
altTextstringবারকোডের নিচে দেখানো টেক্সট।

অবস্থান অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
latitudenumberঅক্ষাংশ।
longitudenumberদ্রাঘিমাংশ।
altitudenumberমিটারে উচ্চতা।
relevantTextstringএই অবস্থানের কাছাকাছি লক স্ক্রিনে দেখানো টেক্সট।

বিকন অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
proximityUuidstringiBeacon প্রক্সিমিটি UUID।
majorintegerমেজর মান।
minorintegerমাইনর মান।
relevantTextstringএই বিকনের কাছাকাছি লক স্ক্রিনে দেখানো টেক্সট।

পাস ইমেজ অবজেক্ট

Anchor link to
ফিল্ডটাইপবর্ণনা
imageTypestringicon, logo, strip, background, footer, thumbnail এর মধ্যে একটি। icon এবং logo প্রয়োজন।
datastring (Base64)ইমেজ বাইট।
contentTypestringMIME টাইপ, উদাহরণস্বরূপ image/png

পাস রেকর্ড অবজেক্ট

Anchor link to

তালিকা/গেট এন্ডপয়েন্ট দ্বারা ফেরত দেওয়া হয়।

ফিল্ডটাইপবর্ণনা
serialNumberstringপাসের সিরিয়াল নম্বর।
passTypeIdentifierstringPass Type ID।
organizationNamestringসংস্থার নাম।
descriptionstringপাসের বর্ণনা।
createdAtstringতৈরির টাইমস্ট্যাম্প (RFC 3339)।
updatedAtstringশেষ আপডেটের টাইমস্ট্যাম্প (RFC 3339)।
updateTagintegerবর্তমান আপডেট ট্যাগ।
passobjectসম্পাদনার জন্য সম্পূর্ণ পাস অবজেক্ট
userIdstringPushwoosh ব্যবহারকারী আইডি যার জন্য পাসটি ইস্যু করা হয়েছিল।