REST Resource: purchases.productsv2

রিসোর্স: ProductPurchaseV2

একটি ProductPurchaseV2 রিসোর্স ব্যবহারকারীর অ্যাপ-মধ্যস্থ পণ্য ক্রয়ের অবস্থা নির্দেশ করে।

JSON উপস্থাপনা
{
  "productLineItem": [
    {
      object (ProductLineItem)
    }
  ],
  "kind": string,
  "purchaseStateContext": {
    object (PurchaseStateContext)
  },
  "testPurchaseContext": {
    object (TestPurchaseContext)
  },
  "orderId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "purchaseCompletionTime": string,
  "acknowledgementState": enum (AcknowledgementState)
}
ক্ষেত্র
productLineItem[]

object ( ProductLineItem )

ProductPurchaseV2 এর জন্য আইটেম-স্তরের তথ্য রয়েছে।

kind

string

এই ধরণেরটি androidpublisher পরিষেবাতে একটি ProductPurchaseV2 অবজেক্টকে প্রতিনিধিত্ব করে।

purchaseStateContext

object ( PurchaseStateContext )

ক্রয়ের ক্রয়ের অবস্থা সম্পর্কে তথ্য।

testPurchaseContext

object ( TestPurchaseContext )

পরীক্ষামূলক কেনাকাটা সম্পর্কিত তথ্য। এটি শুধুমাত্র পরীক্ষামূলক কেনাকাটার জন্য সেট করা হবে।

orderId

string

ইনঅ্যাপ পণ্য কেনার সাথে সম্পর্কিত অর্ডার আইডি। ক্রয়ের সাথে সম্পর্কিত কোনও অর্ডার না থাকলে সেট করা নাও হতে পারে।

obfuscatedExternalAccountId

string

আপনার অ্যাপে ব্যবহারকারীর অ্যাকাউন্টের সাথে অনন্যভাবে যুক্ত আইডির একটি অস্পষ্ট সংস্করণ। কেনার সময় https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid ব্যবহার করে নির্দিষ্ট করা থাকলেই এটি উপস্থিত হবে।

obfuscatedExternalProfileId

string

আপনার অ্যাপে ব্যবহারকারীর প্রোফাইলের সাথে অনন্যভাবে যুক্ত আইডির একটি অস্পষ্ট সংস্করণ। কেনার সময় https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid ব্যবহার করে নির্দিষ্ট করা থাকলেই এটি উপস্থিত হবে।

regionCode

string

পণ্যটি মঞ্জুর করার সময় ব্যবহারকারীর ISO 3166-1 আলফা-2 বিলিং অঞ্চল কোড।

purchaseCompletionTime

string ( Timestamp format)

যে সময় ক্রয় সফল হয়েছিল, অর্থাৎ, যখন PurchaseState PURCHASED এ পরিবর্তিত হয়েছে। পেমেন্ট সম্পূর্ণ না হওয়া পর্যন্ত এই ক্ষেত্রটি উপস্থিত থাকবে না। উদাহরণস্বরূপ, যদি ব্যবহারকারী একটি মুলতুবি লেনদেন শুরু করেন ( https://developer.android.com/google/play/billing/integrate#pending ) , তাহলে ব্যবহারকারী লেনদেন সম্পূর্ণ করার জন্য প্রয়োজনীয় পদক্ষেপগুলি সফলভাবে সম্পন্ন না করা পর্যন্ত এই ক্ষেত্রটি পূরণ করা হবে না।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

acknowledgementState

enum ( AcknowledgementState )

শুধুমাত্র আউটপুট। ক্রয়ের স্বীকৃতির অবস্থা।

ক্রয় রাজ্য প্রসঙ্গ

ক্রয়ের অবস্থা সম্পর্কে প্রসঙ্গ।

JSON উপস্থাপনা
{
  "purchaseState": enum (PurchaseState)
}
ক্ষেত্র
purchaseState

enum ( PurchaseState )

শুধুমাত্র আউটপুট। ক্রয়ের ক্রয়ের অবস্থা।

ক্রয় রাজ্য

সম্ভাব্য ক্রয়ের অবস্থা।

এনামস
PURCHASE_STATE_UNSPECIFIED ক্রয়ের অবস্থা নির্দিষ্ট করা হয়নি। এই মানটি কখনই সেট করা উচিত নয়।
PURCHASED সফলভাবে কেনা হয়েছে।
CANCELLED ক্রয় বাতিল করা হয়েছে।
PENDING ক্রয়টি মুলতুবি অবস্থায় আছে এবং এখনও সম্পূর্ণ হয়নি। মুলতুবি থাকা ক্রয়গুলি পরিচালনা করার বিষয়ে আরও তথ্যের জন্য, https://developer.android.com/google/play/billing/integrate#pending দেখুন।

টেস্টক্রয়প্রসঙ্গ

একটি পরীক্ষামূলক ক্রয়ের প্রসঙ্গ।

JSON উপস্থাপনা
{
  "fopType": enum (FopType)
}
ক্ষেত্র
fopType

enum ( FopType )

পরীক্ষা ক্রয়ের fop প্রকার।

FopType সম্পর্কে

সম্ভাব্য fop প্রকার।

এনামস
FOP_TYPE_UNSPECIFIED Fop টাইপ অনির্দিষ্ট। এই মানটি কখনই সেট করা উচিত নয়।
TEST একটি টেস্ট কার্ড ব্যবহার করে কেনাকাটা করা হয়েছিল।

প্রোডাক্টলাইন আইটেম

ProductPurchaseV2 এর জন্য আইটেম-স্তরের তথ্য রয়েছে।

JSON উপস্থাপনা
{
  "productId": string,
  "productOfferDetails": {
    object (ProductOfferDetails)
  }
}
ক্ষেত্র
productId

string

ক্রয়কৃত পণ্য আইডি (উদাহরণস্বরূপ, 'monthly001')।

productOfferDetails

object ( ProductOfferDetails )

এই আইটেমের অফারের বিবরণ।

পণ্যঅফারবিস্তারিত

ক্রয় লাইন আইটেম সম্পর্কিত বিস্তারিত তথ্য প্রদান করুন।

JSON উপস্থাপনা
{
  "offerTags": [
    string
  ],
  "offerId": string,
  "purchaseOptionId": string,
  "rentOfferDetails": {
    object (RentOfferDetails)
  },
  "offerToken": string,
  "quantity": integer,
  "refundableQuantity": integer,
  "consumptionState": enum (ConsumptionState)
}
ক্ষেত্র
offerTags[]

string

অফারের সাথে সম্পর্কিত সর্বশেষ অফার ট্যাগ। এতে ক্রয় বিকল্প থেকে উত্তরাধিকারসূত্রে প্রাপ্ত ট্যাগগুলি অন্তর্ভুক্ত রয়েছে।

offerId

string

অফার আইডি। শুধুমাত্র অফারগুলির জন্য উপস্থিত।

purchaseOptionId

string

ক্রয় বিকল্প আইডি।

rentOfferDetails

object ( RentOfferDetails )

ভাড়ার অফার সম্পর্কে অফারের বিবরণ। এটি শুধুমাত্র ভাড়ার লাইন আইটেমের জন্য সেট করা হবে।

offerToken

string

এই ক্রয় লাইন আইটেমটি তৈরি করতে ব্যবহৃত প্রতি-লেনদেন অফার টোকেন।

quantity

integer

ইনঅ্যাপ পণ্য কেনার সাথে সম্পর্কিত পরিমাণ।

refundableQuantity

integer

ফেরতের জন্য যোগ্য পরিমাণ, অর্থাৎ যে পরিমাণ ফেরত দেওয়া হয়নি। মূল্য পরিমাণ-ভিত্তিক আংশিক ফেরত এবং সম্পূর্ণ ফেরত প্রতিফলিত করে।

consumptionState

enum ( ConsumptionState )

শুধুমাত্র আউটপুট। ক্রয়ের খরচের অবস্থা।

ভাড়া প্রস্তাবের বিবরণ

এই ধরণের কোনও ক্ষেত্র নেই।

ভাড়া লাইন আইটেম সম্পর্কিত বিস্তারিত তথ্য প্রদান করুন।

খরচ অবস্থা

সম্ভাব্য খরচের অবস্থা।

এনামস
CONSUMPTION_STATE_UNSPECIFIED খরচের অবস্থা নির্দিষ্ট করা হয়নি। এই মানটি কখনই সেট করা উচিত নয়।
CONSUMPTION_STATE_YET_TO_BE_CONSUMED এখনও গ্রাস করা বাকি।
CONSUMPTION_STATE_CONSUMED ইতিমধ্যেই গ্রাস করা হয়েছে।

স্বীকৃতি রাজ্য

এককালীন পণ্যের স্বীকৃতির অবস্থা।

এনামস
ACKNOWLEDGEMENT_STATE_UNSPECIFIED অনির্দিষ্ট স্বীকৃতির অবস্থা।
ACKNOWLEDGEMENT_STATE_PENDING ক্রয়টি এখনও স্বীকৃত হয়নি।
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED ক্রয়টি স্বীকৃত।

পদ্ধতি

getproductpurchasev2

একটি ইনঅ্যাপ আইটেমের ক্রয় এবং ব্যবহারের অবস্থা পরীক্ষা করে।

ত্রুটি কোড

এই রিসোর্সের ক্রিয়াকলাপগুলি নিম্নলিখিত 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 চেক করার কথা বিবেচনা করুন।