- রিসোর্স: ProductPurchaseV2
- ক্রয় রাজ্য প্রসঙ্গ
- ক্রয় রাজ্য
- টেস্টক্রয়প্রসঙ্গ
- FopType সম্পর্কে
- প্রোডাক্টলাইন আইটেম
- পণ্যঅফারবিস্তারিত
- ভাড়া প্রস্তাবের বিবরণ
- খরচ অবস্থা
- স্বীকৃতি রাজ্য
- পদ্ধতি
রিসোর্স: ProductPurchaseV2
একটি ProductPurchaseV2 রিসোর্স ব্যবহারকারীর অ্যাপ-মধ্যস্থ পণ্য ক্রয়ের অবস্থা নির্দেশ করে।
| JSON উপস্থাপনা |
|---|
{ "productLineItem": [ { object ( |
| ক্ষেত্র | |
|---|---|
productLineItem[] | ProductPurchaseV2 এর জন্য আইটেম-স্তরের তথ্য রয়েছে। |
kind | এই ধরণেরটি androidpublisher পরিষেবাতে একটি ProductPurchaseV2 অবজেক্টকে প্রতিনিধিত্ব করে। |
purchaseStateContext | ক্রয়ের ক্রয়ের অবস্থা সম্পর্কে তথ্য। |
testPurchaseContext | পরীক্ষামূলক কেনাকাটা সম্পর্কিত তথ্য। এটি শুধুমাত্র পরীক্ষামূলক কেনাকাটার জন্য সেট করা হবে। |
orderId | ইনঅ্যাপ পণ্য কেনার সাথে সম্পর্কিত অর্ডার আইডি। ক্রয়ের সাথে সম্পর্কিত কোনও অর্ডার না থাকলে সেট করা নাও হতে পারে। |
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 বিলিং অঞ্চল কোড। |
purchaseCompletionTime | যে সময় ক্রয় সফল হয়েছিল, অর্থাৎ, যখন PurchaseState PURCHASED এ পরিবর্তিত হয়েছে। পেমেন্ট সম্পূর্ণ না হওয়া পর্যন্ত এই ক্ষেত্রটি উপস্থিত থাকবে না। উদাহরণস্বরূপ, যদি ব্যবহারকারী একটি মুলতুবি লেনদেন শুরু করেন ( https://developer.android.com/google/play/billing/integrate#pending ) , তাহলে ব্যবহারকারী লেনদেন সম্পূর্ণ করার জন্য প্রয়োজনীয় পদক্ষেপগুলি সফলভাবে সম্পন্ন না করা পর্যন্ত এই ক্ষেত্রটি পূরণ করা হবে না। RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: |
acknowledgementState | শুধুমাত্র আউটপুট। ক্রয়ের স্বীকৃতির অবস্থা। |
ক্রয় রাজ্য প্রসঙ্গ
ক্রয়ের অবস্থা সম্পর্কে প্রসঙ্গ।
| JSON উপস্থাপনা |
|---|
{
"purchaseState": enum ( |
| ক্ষেত্র | |
|---|---|
purchaseState | শুধুমাত্র আউটপুট। ক্রয়ের ক্রয়ের অবস্থা। |
ক্রয় রাজ্য
সম্ভাব্য ক্রয়ের অবস্থা।
| এনামস | |
|---|---|
PURCHASE_STATE_UNSPECIFIED | ক্রয়ের অবস্থা নির্দিষ্ট করা হয়নি। এই মানটি কখনই সেট করা উচিত নয়। |
PURCHASED | সফলভাবে কেনা হয়েছে। |
CANCELLED | ক্রয় বাতিল করা হয়েছে। |
PENDING | ক্রয়টি মুলতুবি অবস্থায় আছে এবং এখনও সম্পূর্ণ হয়নি। মুলতুবি থাকা ক্রয়গুলি পরিচালনা করার বিষয়ে আরও তথ্যের জন্য, https://developer.android.com/google/play/billing/integrate#pending দেখুন। |
টেস্টক্রয়প্রসঙ্গ
একটি পরীক্ষামূলক ক্রয়ের প্রসঙ্গ।
| JSON উপস্থাপনা |
|---|
{
"fopType": enum ( |
| ক্ষেত্র | |
|---|---|
fopType | পরীক্ষা ক্রয়ের fop প্রকার। |
FopType সম্পর্কে
সম্ভাব্য fop প্রকার।
| এনামস | |
|---|---|
FOP_TYPE_UNSPECIFIED | Fop টাইপ অনির্দিষ্ট। এই মানটি কখনই সেট করা উচিত নয়। |
TEST | একটি টেস্ট কার্ড ব্যবহার করে কেনাকাটা করা হয়েছিল। |
প্রোডাক্টলাইন আইটেম
ProductPurchaseV2 এর জন্য আইটেম-স্তরের তথ্য রয়েছে।
| JSON উপস্থাপনা |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| ক্ষেত্র | |
|---|---|
productId | ক্রয়কৃত পণ্য আইডি (উদাহরণস্বরূপ, 'monthly001')। |
productOfferDetails | এই আইটেমের অফারের বিবরণ। |
পণ্যঅফারবিস্তারিত
ক্রয় লাইন আইটেম সম্পর্কিত বিস্তারিত তথ্য প্রদান করুন।
| JSON উপস্থাপনা |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| ক্ষেত্র | |
|---|---|
offerTags[] | অফারের সাথে সম্পর্কিত সর্বশেষ অফার ট্যাগ। এতে ক্রয় বিকল্প থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ট্যাগগুলি অন্তর্ভুক্ত রয়েছে। |
offerId | অফার আইডি। শুধুমাত্র অফারগুলির জন্য উপস্থিত। |
purchaseOptionId | ক্রয় বিকল্প আইডি। |
rentOfferDetails | ভাড়ার অফার সম্পর্কে অফারের বিবরণ। এটি শুধুমাত্র ভাড়ার লাইন আইটেমের জন্য সেট করা হবে। |
offerToken | এই ক্রয় লাইন আইটেমটি তৈরি করতে ব্যবহৃত প্রতি-লেনদেন অফার টোকেন। |
quantity | ইনঅ্যাপ পণ্য কেনার সাথে সম্পর্কিত পরিমাণ। |
refundableQuantity | ফেরতের জন্য যোগ্য পরিমাণ, অর্থাৎ যে পরিমাণ ফেরত দেওয়া হয়নি। মূল্য পরিমাণ-ভিত্তিক আংশিক ফেরত এবং সম্পূর্ণ ফেরত প্রতিফলিত করে। |
consumptionState | শুধুমাত্র আউটপুট। ক্রয়ের খরচের অবস্থা। |
ভাড়া প্রস্তাবের বিবরণ
এই ধরণের কোনও ক্ষেত্র নেই।
ভাড়া লাইন আইটেম সম্পর্কিত বিস্তারিত তথ্য প্রদান করুন।
খরচ অবস্থা
সম্ভাব্য খরচের অবস্থা।
| এনামস | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED | খরচের অবস্থা নির্দিষ্ট করা হয়নি। এই মানটি কখনই সেট করা উচিত নয়। |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED | এখনও গ্রাস করা বাকি। |
CONSUMPTION_STATE_CONSUMED | ইতিমধ্যেই গ্রাস করা হয়েছে। |
স্বীকৃতি রাজ্য
এককালীন পণ্যের স্বীকৃতির অবস্থা।
| এনামস | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED | অনির্দিষ্ট স্বীকৃতির অবস্থা। |
ACKNOWLEDGEMENT_STATE_PENDING | ক্রয়টি এখনও স্বীকৃত হয়নি। |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED | ক্রয়টি স্বীকৃত। |
পদ্ধতি | |
|---|---|
| একটি ইনঅ্যাপ আইটেমের ক্রয় এবং ব্যবহারের অবস্থা পরীক্ষা করে। |
ত্রুটি কোড
এই রিসোর্সের ক্রিয়াকলাপগুলি নিম্নলিখিত 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 চেক করার কথা বিবেচনা করুন। |