রিসোর্স: পণ্য ক্রয়
একটি ProductPurchase রিসোর্স ব্যবহারকারীর অ্যাপ-মধ্যস্থ পণ্য ক্রয়ের অবস্থা নির্দেশ করে।
| JSON উপস্থাপনা |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| ক্ষেত্র | |
|---|---|
kind | এই ধরণেরটি androidpublisher পরিষেবাতে একটি inappPurchase অবজেক্টকে প্রতিনিধিত্ব করে। |
purchaseTimeMillis | পণ্যটি কেনার সময়, যুগের পর থেকে মিলিসেকেন্ডে (১ জানুয়ারী, ১৯৭০)। |
purchaseState | অর্ডারের ক্রয় অবস্থা। সম্ভাব্য মানগুলি হল: ০. ক্রয়কৃত ১. বাতিলকৃত ২. মুলতুবি |
consumptionState | ইনঅ্যাপ পণ্যের ব্যবহারের অবস্থা। সম্ভাব্য মানগুলি হল: 0. এখনও ব্যবহারের বাকি 1. ব্যবহৃত |
developerPayload | একটি ডেভেলপার-নির্দিষ্ট স্ট্রিং যাতে একটি অর্ডার সম্পর্কে সম্পূরক তথ্য থাকে। |
orderId | ইনঅ্যাপ পণ্য কেনার সাথে সম্পর্কিত অর্ডার আইডি। |
purchaseType | ইন-অ্যাপ পণ্যের ক্রয়ের ধরণ। এই ক্ষেত্রটি কেবলমাত্র তখনই সেট করা হয় যদি এই ক্রয়টি স্ট্যান্ডার্ড ইন-অ্যাপ বিলিং ফ্লো ব্যবহার করে করা না হয়। সম্ভাব্য মানগুলি হল: 0. পরীক্ষা (অর্থাৎ লাইসেন্স টেস্টিং অ্যাকাউন্ট থেকে কেনা) 1. প্রোমো (অর্থাৎ প্রোমো কোড ব্যবহার করে কেনা)। প্লে পয়েন্ট ক্রয় অন্তর্ভুক্ত নয়। 2. পুরস্কৃত (অর্থাৎ অর্থ প্রদানের পরিবর্তে ভিডিও বিজ্ঞাপন দেখার মাধ্যমে) |
acknowledgementState | ইনঅ্যাপ পণ্যের স্বীকৃতির অবস্থা। সম্ভাব্য মানগুলি হল: 0। এখনও স্বীকৃতি দেওয়া হয়নি 1. স্বীকৃতিপ্রাপ্ত |
purchaseToken | এই ক্রয়টি শনাক্ত করার জন্য ক্রয় টোকেন তৈরি করা হয়েছে। এটি উপস্থিত নাও থাকতে পারে। |
productId | ইনঅ্যাপ পণ্য SKU। উপস্থিত নাও থাকতে পারে। |
quantity | ইনঅ্যাপ পণ্য কেনার সাথে সম্পর্কিত পরিমাণ। যদি না থাকে, তাহলে পরিমাণ হল ১। |
obfuscatedExternalAccountId | আপনার অ্যাপে ব্যবহারকারীর অ্যাকাউন্টের সাথে অনন্যভাবে যুক্ত আইডির একটি অস্পষ্ট সংস্করণ। কেনার সময় https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid ব্যবহার করে নির্দিষ্ট করা থাকলেই এটি উপস্থিত হবে। |
obfuscatedExternalProfileId | আপনার অ্যাপে ব্যবহারকারীর প্রোফাইলের সাথে অনন্যভাবে যুক্ত আইডির একটি অস্পষ্ট সংস্করণ। কেনার সময় https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid ব্যবহার করে নির্দিষ্ট করা থাকলেই এটি উপস্থিত হবে। |
regionCode | পণ্যটি মঞ্জুর করার সময় ব্যবহারকারীর ISO 3166-1 আলফা-2 বিলিং অঞ্চল কোড। |
refundableQuantity | ফেরতের জন্য যোগ্য পরিমাণ, অর্থাৎ যে পরিমাণ ফেরত দেওয়া হয়নি। মূল্য পরিমাণ-ভিত্তিক আংশিক ফেরত এবং সম্পূর্ণ ফেরত প্রতিফলিত করে। |
পদ্ধতি | |
|---|---|
| একটি ইনঅ্যাপ আইটেম কেনার স্বীকৃতি দেয়। |
| একটি ইনঅ্যাপ আইটেমের জন্য একটি ক্রয় খরচ করে। |
| একটি ইনঅ্যাপ আইটেমের ক্রয় এবং ব্যবহারের অবস্থা পরীক্ষা করে। |
ত্রুটি কোড
এই রিসোর্সের ক্রিয়াকলাপগুলি নিম্নলিখিত HTTP ত্রুটি কোডগুলি ফেরত দেয়:
| ত্রুটি কোড | কারণ | বিবরণ | রেজোলিউশন |
|---|---|---|---|
400 | invalidPurchaseState | অনুরোধকৃত ক্রিয়াকলাপ সম্পাদনের জন্য ক্রয়টি বৈধ অবস্থায় নেই। উদাহরণস্বরূপ, আপনি হয়তো ইতিমধ্যেই ব্যবহৃত একটি ক্রয় স্বীকার করার চেষ্টা করছেন অথবা সক্রিয় নয় এমন একটি সাবস্ক্রিপশন বাতিল করার চেষ্টা করছেন। | অপারেশনটি করার আগে সংশ্লিষ্ট Get API ব্যবহার করে রিসোর্সের বর্তমান অবস্থা পরীক্ষা করুন। নিশ্চিত করুন যে রিসোর্সটি অ্যাকশনের জন্য উপযুক্ত অবস্থায় আছে। |
400 | invalidValue | অনুরোধে একটি অবৈধ মান প্রদান করা হয়েছে। এটি প্রায়শই একটি ত্রুটিপূর্ণ বা অবৈধ ক্রয় টোকেনের জন্য ফেরত পাঠানো হয়। | API রেফারেন্সের উপর ভিত্তি করে অনুরোধের বডি বা প্যারামিটারে অবৈধ ফিল্ড মান সংশোধন করুন। |
400 | productNotOwnedByUser | প্রদত্ত ক্রয় টোকেনটি বৈধ, কিন্তু ব্যবহারকারী বর্তমানে পণ্যটির মালিক নন। স্বীকৃতির আগে যদি ক্রয়টি ফেরত দেওয়া হয়, প্রত্যাহার করা হয় বা মেয়াদোত্তীর্ণ হয়ে যায়, তাহলে এটি ঘটতে পারে। | অপারেশনটি করার আগে সংশ্লিষ্ট Get API ব্যবহার করে রিসোর্সের বর্তমান অবস্থা পরীক্ষা করুন। নিশ্চিত করুন যে রিসোর্সটি অ্যাকশনের জন্য উপযুক্ত অবস্থায় আছে। |
400 | purchaseTokenMismatch | প্রদত্ত ক্রয় টোকেন ক্রয়, প্যাকেজের নাম, সাবস্ক্রিপশন আইডি বা পণ্য আইডির সাথে মেলে না। | অনুরোধে উল্লেখিত সমস্ত বিবরণ সঠিক এবং একে অপরের সাথে সামঞ্জস্যপূর্ণ কিনা তা যাচাই করুন। |
400 | required | অনুরোধটিতে একটি প্রয়োজনীয় ক্ষেত্র বা প্যারামিটার অনুপস্থিত। | সমস্ত বাধ্যতামূলক ক্ষেত্র এবং পরামিতি অন্তর্ভুক্ত আছে কিনা তা নিশ্চিত করতে API ডকুমেন্টেশন দেখুন। |
400 | unsupportedIabType | প্রদত্ত ইন-অ্যাপ বিলিং ধরণের জন্য এই ক্রিয়াকলাপটি সমর্থিত নয়। | নিশ্চিত করুন যে API পদ্ধতিটি পরিচালিত আইটেম ধরণের সাথে সামঞ্জস্যপূর্ণ। |
403 | userInsufficientPermission | অনুরোধকৃত ক্রিয়াকলাপ সম্পাদনের জন্য ব্যবহারকারীর পর্যাপ্ত অনুমতি নেই। | নিশ্চিত করুন যে প্রমাণিত ব্যবহারকারীর Google Play Console-এ প্রয়োজনীয় অনুমতি আছে। আরও বিস্তারিত জানার জন্য "একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করা" দেখুন। |
404 | notFound | অনুরোধ করা রিসোর্সটি খুঁজে পাওয়া যায়নি। | শনাক্তকারী (যেমন, ক্রয় টোকেন, প্যাকেজের নাম, পণ্য আইডি, সাবস্ক্রিপশন আইডি) সঠিক কিনা তা যাচাই করুন। |
409 | concurrentUpdate | একই সাথে আপডেট করা হচ্ছে এমন একটি অবজেক্ট আপডেট করার চেষ্টা করা হয়েছিল। | এক্সপোনেনশিয়াল ব্যাকঅফ দিয়ে অনুরোধটি পুনরায় চেষ্টা করুন। একই রিসোর্সে একযোগে পরিবর্তন এড়িয়ে চলুন। |
5xx | Generic error | গুগল প্লে সার্ভারে সাধারণ ত্রুটি। | আপনার অনুরোধটি আবার চেষ্টা করুন। যদি সমস্যাটি থেকে যায়, তাহলে আপনার Google Play অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করুন অথবা একটি সহায়তা অনুরোধ জমা দিন। কোনও পরিচিত বিভ্রাটের জন্য Play Status Dashboard চেক করার কথা বিবেচনা করুন। |