এই কোডল্যাব সম্পর্কে
1. ভূমিকা
Google Pay API ব্যবহারকারীদের তাদের Google অ্যাকাউন্টে সঞ্চিত অর্থপ্রদানের তথ্য ব্যবহার করে সর্বত্র অর্থপ্রদান করার সুযোগ দেয়। এই ল্যাবে, আপনি একটি সরলীকৃত নমুনা মোবাইল অ্যাপ্লিকেশনের চেকআউট অভিজ্ঞতা উন্নত করতে Android-এর জন্য Google Pay-এর ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, একটি দ্রুত, আরও সুবিধাজনক এবং নিরাপদ অভিজ্ঞতা তৈরি করে, যার ফলে আরও বেশি রূপান্তর হয় এবং গ্রাহকদের সুখী হয়।
অটো টি-শার্ট শপ হল একটি উদ্ভাবনী দোকান যা কৃত্রিম বুদ্ধিমত্তার সর্বশেষ অগ্রগতি এবং শৈলী পছন্দ, আবহাওয়া, বছরের সময় এবং ফ্যাশন প্রবণতার মতো তথ্য ব্যবহার করে, আপনাকে কেনার জন্য সবচেয়ে উপযুক্ত আইটেমটির পরামর্শ দেয়।
ব্যস্ততার মেট্রিক্স ছাদের উপরে। দুর্ভাগ্যবশত, চেকআউট প্রক্রিয়া চলাকালীন সংখ্যাগুলি প্রচুর পরিমাণে পরিত্যাগও প্রতিফলিত করে। এটি মোকাবেলা করার জন্য দৃঢ়প্রতিজ্ঞ, প্রকল্পের মালিকদের একজন মনে করেন যে Google Pay অন্যান্য অনুরূপ সাইটগুলির জন্য প্রতিশ্রুতিবদ্ধ ফলাফল দেখানো একটি ভিডিও দেখেছে, তাই তারা এটিকে যেতে দেওয়ার সিদ্ধান্ত নিয়েছে এবং ইন্টিগ্রেশনের যত্ন নেওয়ার জন্য আপনাকে বিশ্বাস করবে।
ওভারভিউ
এই কোডল্যাবটি আপনাকে একটি বিদ্যমান অ্যাপ্লিকেশনে Google Pay সংহত করার মাধ্যমে নিয়ে যায়, যার মধ্যে একজন ব্যবহারকারী Google Pay দ্বারা সমর্থিত একটি অর্থপ্রদানের পদ্ধতি ব্যবহার করে অর্থপ্রদান করতে সক্ষম কিনা তা নির্ধারণ করা, পেমেন্ট বোতামের প্লেসমেন্ট এবং ডিজাইন এবং লেনদেন সম্পাদন করা।
এই কোডল্যাবে, আপনি শিখবেন কিভাবে:
- একটি বিদ্যমান Android অ্যাপ্লিকেশনে Google Pay সংহত করুন
- একজন ব্যবহারকারী Google Pay ব্যবহার করে অর্থপ্রদান করতে প্রস্তুত কিনা তা নির্ধারণ করুন
- আপনার ইউজার ইন্টারফেসে Google Pay বোতাম যোগ করুন
- Google Pay দিয়ে একটি পেমেন্ট অপারেশন সম্পূর্ণ করুন
পূর্বশর্ত
- গিট
- অ্যান্ড্রয়েড স্টুডিও বা অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য একটি বিকল্প উন্নয়ন পরিবেশ
- একটি Android ডিভাইস বা এমুলেটর যেখানে Google Play পরিষেবার সর্বশেষ সংস্করণ ইনস্টল করা আছে৷
সমর্থন
আপনি যদি আটকে যান, google-pay/android-quickstart GitHub সংগ্রহস্থলে রেফারেন্সের জন্য একটি সম্পূর্ণ সমাধান রয়েছে।
2. শুরু করুন
GitHub থেকে সংগ্রহস্থল ক্লোন করুন
আপনার কম্পিউটারে একটি ফোল্ডারে সংগ্রহস্থল ক্লোন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
git clone https://github.com/google-pay/android-quickstart
অথবা যদি আপনি একটি জিপ সংরক্ষণাগার পছন্দ করেন:
নমুনা আবেদন মাধ্যমে স্কিম
আপনি দেখতে পাচ্ছেন, সংগ্রহস্থলটিতে একটি জটিল ফাইল কাঠামো রয়েছে। এই কোডল্যাবের প্রাথমিক উদ্দেশ্য হল আপনি যে প্রোগ্রামিং ভাষা, লাইব্রেরি বা টুলগুলির সাথে কাজ করতে চান তা থেকে স্বাধীনভাবে আপনার বিদ্যমান এবং ভবিষ্যতের অ্যাপ্লিকেশনগুলিতে এই ইন্টিগ্রেশনটিকে মানিয়ে নেওয়ার ক্ষমতা প্রদান করা।
3. অ্যান্ড্রয়েড স্টুডিওতে প্রকল্পটি খুলুন
আপনার ক্লোন করা GitHub সংগ্রহস্থলে একটি মৌলিক কার্যকলাপ সহ একটি Android প্রকল্প রয়েছে। এই ধাপে, আপনি Google Pay-এর প্রস্তুতি যাচাই করতে এই অ্যাক্টিভিটি এডিট করবেন এবং একটি Google Pay বোতাম দেখাবেন।
- অ্যান্ড্রয়েড স্টুডিও খুলুন
- ফাইল নির্বাচন করুন, তারপর খুলুন
- সংগ্রহস্থলে
kotlin
ডিরেক্টরি নির্বাচন করুন - খুলুন নির্বাচন করুন
আপনার build.gradle
ফাইলে নির্ভরতা হিসেবে Google Pay লাইব্রেরি যোগ করুন
- মডিউল-স্তরের গ্রেডল বিল্ড ফাইলটি খুলুন (
kotlin/app/build.gradle.kts
) -
dependencies
বিভাগে Google Pay লাইব্রেরি যোগ করুন
implementation "com.google.android.gms:play-services-wallet:19.3.0"
- ফাইলটি সংরক্ষণ করুন
- ফাইল নির্বাচন করুন, তারপর গ্রেডল ফাইলগুলির সাথে প্রকল্প সিঙ্ক করুন
আপনার Android ম্যানিফেস্ট ফাইলে Google Pay API চালু করুন
অবশেষে, আপনার ম্যানিফেস্ট ফাইলের application
নোডের ভিতরে একটি meta-data
উপাদান যোগ করুন:
<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true" />
4. আপনার ইন্টারফেসে Google Pay বোতামটি কোথায় রাখবেন তা ঠিক করুন
আপনার মতামতের লেআউট এবং সামগ্রিক প্লেসমেন্ট গুরুত্বপূর্ণ দিক যা আপনার ব্যবহারকারীদের একটি অর্থপ্রদানের লেনদেন সম্পূর্ণ করার সম্ভাবনা কতটা প্রভাবিত করে। Google Pay ব্যবহার করে কয়েকটি ট্যাপে অর্থপ্রদানের পদ্ধতি বেছে নেওয়ার ক্ষমতা ব্যবহারকারীদের কোথায় এবং কখন আপনার অ্যাপ্লিকেশনে অর্থপ্রদানের উপায় অফার করতে হবে তার নতুন বিকল্পগুলি সক্ষম করে। উদাহরণস্বরূপ, ব্যবহারকারীদের তাদের পছন্দের একটি আইটেমের জন্য দ্রুত অর্থপ্রদান করার অনুমতি দেওয়ার জন্য, আপনি একটি আইটেমের বিশদ দৃশ্যের মতো এলাকায় দ্রুত চেকআউট বিকল্পগুলি যোগ করতে পারেন।
একবার আপনি আপনার ইউজার ইন্টারফেস কীভাবে সাজাতে হবে তা ঠিক করে নিলে, পরবর্তী ধাপ হল Google Pay বোতামটি স্থাপন করা। আপনি বোতামের কিছু ভিজ্যুয়াল বৈশিষ্ট্য কনফিগার করতে পারেন যেমন ধরন, থিম এবং কোণার গোলাকারতা। এখানে কিছু উদাহরণ আছে:
Google Pay লাইব্রেরিতে আপনার ইউজার ইন্টারফেসে বোতাম যোগ করা সহজ করার জন্য একটি ভিউ রয়েছে। আপনি যদি XML ব্যবহার করে আপনার লেআউটগুলি তৈরি করেন তবে আপনি এটি কীভাবে করবেন তা এখানে:
<com.google.android.gms.wallet.button.PayButton
android:id="@+id/googlePayButton"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
আপনি পরে প্রোগ্রামগতভাবে বোতামটি শুরু করবেন ( উদাহরণ দেখুন)।
আপনি যদি জেটপ্যাক কম্পোজ ব্যবহার করেন, তাহলে আপনার build.gradle
বা build.gradle.kts
ফাইলে নিম্নলিখিত নির্ভরতার সর্বশেষ সংস্করণ অন্তর্ভুক্ত করুন:
implementation "com.google.pay.button:compose-pay-button:1.0.0"
এবং আপনার রচনা লেআউটে Google Pay বোতামটি যোগ করুন এইভাবে:
PayButton(
modifier = Modifier
.testTag("payButton")
.fillMaxWidth(),
onClick = onGooglePayButtonClick,
allowedPaymentMethods = PaymentsUtil.allowedPaymentMethods.toString()
)
গৃহীত অর্থপ্রদানের পদ্ধতির তালিকা কীভাবে তৈরি করা যায় সে সম্পর্কে আরও জানতে GitHub-এ নমুনাটি দেখুন।
5. Google Pay API চালু এবং কনফিগার করুন
এপিআই ক্লায়েন্ট ইনস্ট্যান্টিয়েট করুন
API ব্যবহার শুরু করার জন্য, আপনাকে একটি ক্লায়েন্ট অবজেক্ট ইনস্ট্যান্টিয়েট করতে হবে, যেটি আপনি Google Pay API-তে কল করতে ব্যবহার করেন। আপনার কার্যকলাপ বা নিয়ামক তৈরি হওয়ার সাথে সাথে আপনি এটি করতে পারেন:
private val paymentsClient: PaymentsClient = createPaymentsClient(context)
fun createPaymentsClient(context: Context): PaymentsClient {
val walletOptions = Wallet.WalletOptions.Builder()
.setEnvironment(WalletConstants.ENVIRONMENT_TEST).build()
return Wallet.getPaymentsClient(context, walletOptions)
}
পেমেন্ট ক্লায়েন্টকে একটি WalletOptions অবজেক্ট দিয়ে আরম্ভ করা হয়। পরিবেশকে ENVIRONMENT_TEST- এ সেট করা আপনাকে পরীক্ষার অর্থপ্রদানের তথ্য নিয়ে পরীক্ষা করার অনুমতি দেয়। একবার আপনি প্রকৃত অর্থপ্রদানের লেনদেন ইস্যু করার জন্য প্রস্তুত হলে, আপনি পরিবেশের সম্পত্তি ENVIRONMENT_PRODUCTION- এ আপডেট করতে পারেন।
Google Pay অনুরোধের অ্যানাটমি
আপনি যখন Google Pay API-এর বিরুদ্ধে অনুরোধগুলি ইস্যু করেন, তখন অনেকগুলি কনফিগারেশন প্যারামিটার থাকে যা আপনাকে আপনার অনুরোধগুলিতে অন্তর্ভুক্ত করতে হবে, যেমন আপনি লক্ষ্য করছেন API-এর সংস্করণ। এই কোডল্যাবের উদ্দেশ্যে, এই অবজেক্টে আপনার আবেদনে গৃহীত অর্থপ্রদানের পদ্ধতি সম্পর্কে তথ্যও রয়েছে। চূড়ান্ত কাঠামো নিম্নলিখিত হিসাবে দেখায়:
{
apiVersion: number,
apiVersionMinor: number,
allowedPaymentMethods: Array
}
allowedPaymentMethods
সম্পত্তি PaymentMethods অর্থপ্রদান পদ্ধতির একটি তালিকা নেয়। প্রতিটি অর্থপ্রদান পদ্ধতির জন্য আপনাকে নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে হবে:
{
type: 'CARD',
parameters: {
allowedCardNetworks: Array.<string>,
allowedAuthMethods: Array.<string>
}
}
পেমেন্ট পদ্ধতি কনফিগারেশন
এই উদাহরণের উদ্দেশ্যে, আপনি শুধুমাত্র মাস্টারকার্ড এবং ভিসার জন্য একটি টোকেনাইজড এবং প্রাথমিক অ্যাকাউন্ট নম্বর ( PAN ) ফর্মের মাধ্যমে কার্ডের অর্থপ্রদান গ্রহণ করতে যাচ্ছেন। আপনার অর্থপ্রদানের পদ্ধতিটি এইরকম দেখাচ্ছে:
private val baseCardPaymentMethod =
JSONObject()
.put("type", "CARD")
.put("parameters", JSONObject()
.put("allowedCardNetworks", JSONArray(listOf("VISA", "MASTERCARD")))
.put("allowedAuthMethods", JSONArray(listOf("PAN_ONLY", "CRYPTOGRAM_3DS")))
)
এটা সব একসাথে নির্বাণ
এর সংক্ষেপ করা যাক. আপনি আপনার অ্যাপ্লিকেশনে গৃহীত হওয়ার জন্য একটি অর্থপ্রদানের পদ্ধতি সংজ্ঞায়িত করেছেন এবং আপনি API এর 2.0 সংস্করণের সাথে কাজ করতে যাচ্ছেন। এই ফলাফল কনফিগারেশন মত দেখায় কি:
private val baseCardPaymentMethod = JSONObject()
.put("type", "CARD")
.put("parameters", JSONObject()
.put("allowedCardNetworks", JSONArray(listOf("VISA", "MASTERCARD")))
.put("allowedAuthMethods", JSONArray(listOf("PAN_ONLY", "CRYPTOGRAM_3DS")))
)
private val googlePayBaseConfiguration = JSONObject()
.put("apiVersion", 2)
.put("apiVersionMinor", 0)
.put("allowedPaymentMethods", JSONArray(listOf(baseCardPaymentMethod)))
}
6. Google Pay দিয়ে অর্থপ্রদান করার প্রস্তুতি নির্ধারণ করুন
isReadyToPay
রিকোয়েস্ট ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশানের একজন ব্যবহারকারী Google Pay দিয়ে অর্থপ্রদান করতে পারবেন কিনা তা নির্ধারণ করতে পারবেন। সেই অনুযায়ী আপনার অ্যাপ্লিকেশনে ব্যবহারকারীর অভিজ্ঞতা সামঞ্জস্য করতে এই তথ্যটি ব্যবহার করুন।
এই অনুরোধের জন্য আপনাকে Google Pay API-এর সংস্করণ এবং আপনার অ্যাপ্লিকেশনে অনুমোদিত অর্থপ্রদানের পদ্ধতির তালিকা উল্লেখ করতে হবে। পূর্ববর্তী ধাপে সংজ্ঞায়িত বেস কনফিগারেশন অবজেক্টে ঠিক এটি রয়েছে:
private suspend fun fetchCanUseGooglePay(): Boolean {
val request = IsReadyToPayRequest.fromJson(googlePayBaseConfiguration.toString())
return paymentsClient.isReadyToPay(request).await()
}
পাশাপাশি Google Pay API দূরবর্তী কলগুলি সমাধান করতে Task
ব্যবহার করে৷ টাস্ক এপিআই আপনাকে কোরোটিন ব্যবহার করে Task
অপারেশন সমাধান করতে দেয়। আরও জানুন
আপনি দেখতে পাচ্ছেন, Google Pay-এর মাধ্যমে অর্থপ্রদান করার প্রস্তুতি পরীক্ষা করা একটি বুলিয়ান অবজেক্ট ফিরিয়ে দেয়। ফলাফল ইতিবাচক হলে, পরবর্তী ধাপ হল আপনার ইউজার ইন্টারফেসে Google Pay বোতাম দেখান। অন্যথায়, পেমেন্টের অন্যান্য উপায় সমর্থন করে এমন অতিরিক্ত UI দেখানোর কথা বিবেচনা করুন।
Google Pay বোতামটি দেখান
এখন আপনার ইউজার ইন্টারফেসে ফিরে যান এবং আগের কলের ফলাফলের উপর ভিত্তি করে Google Pay বোতামের প্লেসমেন্ট আপডেট করুন। এই উদাহরণটি দৃশ্যের অবস্থা ধরে রাখতে একটি ক্লাস ব্যবহার করে , যা isReadyToPay
এ কলের মতো ইনপুটের উপর ভিত্তি করে আপডেট করা হয়।
if (payUiState !is PaymentUiState.NotStarted) {
PayButton(
modifier = Modifier
.testTag("payButton")
.fillMaxWidth(),
onClick = onGooglePayButtonClick,
allowedPaymentMethods = PaymentsUtil.allowedPaymentMethods.toString()
)
}
7. এটা বেতনের সময়!
### অর্থপ্রদানের অনুরোধ প্রস্তুত করুন
এই মুহুর্তে, আপনি Google Pay API লোড করেছেন এবং নির্ধারণ করেছেন যে আপনার অ্যাপ্লিকেশনের ব্যবহারকারী পেমেন্ট করতে Google Pay ব্যবহার করতে পারবেন। ফলস্বরূপ, আপনি UI-তে Google Pay পেমেন্ট বোতামটি দেখিয়েছেন এবং এখন আপনার ব্যবহারকারী লেনদেন শুরু করার জন্য প্রস্তুত। আপনার ব্যবহারকারীর জন্য উপলব্ধ অর্থপ্রদানের ফর্মগুলির সাথে অর্থপ্রদানের শীটটি লোড করার এখন সময়।
isReadyToPay
এর কলের মতোই, এই অনুরোধটির জন্য আগে সংজ্ঞায়িত বেস কনফিগারেশন অবজেক্টের বৈশিষ্ট্য প্রয়োজন ( apiVersion
, apiVersionMinor
এবং allowedPaymentMethods
)। এই সময়, আপনার tokenizationSpecification
নামে একটি নতুন সম্পত্তি এবং লেনদেন বর্ণনা করতে এবং বিলিং এবং শিপিং ঠিকানা বা ব্যবহারকারীর ইমেল ঠিকানা বা ফোন নম্বরের মতো তথ্যের অনুরোধ করার জন্য অতিরিক্ত প্যারামিটারের প্রয়োজন।
#### tokenizationSpecification
বৈশিষ্ট্য
টোকেনাইজেশন স্পেসিফিকেশন নির্ধারণ করে যে আপনার ব্যবহারকারীদের দ্বারা নির্বাচিত অর্থপ্রদানের পদ্ধতিটি কীভাবে পরিচালনা করা হয় এবং একটি লেনদেন সম্পূর্ণ করতে ব্যবহৃত হয়।
দুটি ভিন্ন ধরনের হ্যান্ডলিং মেকানিজম সমর্থিত। আপনি যদি আপনার PCI DSS অনুবর্তী সার্ভারের মধ্যে থেকে অর্থপ্রদানের লেনদেন প্রক্রিয়াকরণ করেন, তাহলে DIRECT
স্পেসিফিকেশন টাইপ ব্যবহার করুন। এই উদাহরণে, আপনি পেমেন্ট প্রক্রিয়া করার জন্য একটি পেমেন্ট গেটওয়ে ব্যবহার করেন, তাই, আপনি PAYMENT_GATEWAY
স্পেসিফিকেশন টাইপ সেট করেন:
private val tokenizationSpecification = JSONObject()
.put("type", "PAYMENT_GATEWAY")
.put("parameters", JSONObject(mapOf(
"gateway" to "example",
"gatewayMerchantId" to "exampleGatewayMerchantId")))
}
parameters
বিভাগে, আপনি প্রতিটি গেটওয়ের জন্য প্রয়োজনীয় অতিরিক্ত কনফিগারেশন সহ Google Pay API দ্বারা সমর্থিত প্রদানকারীদের তালিকা থেকে একটি গেটওয়ে নির্দিষ্ট করতে পারেন। এই ল্যাবের উদ্দেশ্যে, আপনি example
গেটওয়ে ব্যবহার করবেন, যা সম্পাদিত লেনদেনের জন্য পরীক্ষার ফলাফল প্রদান করে।
অতিরিক্ত পরামিতি
একইভাবে, আপনি সফলভাবে অর্ডার দেওয়ার জন্য আপনার ব্যবহারকারীর কাছ থেকে আরও বিস্তারিত অনুরোধ করতে পারেন। দেখুন কিভাবে এই উদাহরণে, আপনি বৈশিষ্ট্য যুক্ত করেন billingAddressRequired
এবং billingAddressParameters
, এই লেনদেনের জন্য ব্যবহারকারীর বিলিং ঠিকানা সম্পূর্ণ ফরম্যাটে এবং একটি ফোন নম্বর সহ প্রয়োজন:
private val cardPaymentMethod = JSONObject()
.put("type", "CARD")
.put("tokenizationSpecification", tokenizationSpecification)
.put("parameters", JSONObject()
.put("allowedCardNetworks", JSONArray(listOf("VISA", "MASTERCARD")))
.put("allowedAuthMethods", JSONArray(listOf("PAN_ONLY", "CRYPTOGRAM_3DS")))
.put("billingAddressRequired", true)
.put("billingAddressParameters", JSONObject(mapOf("format" to "FULL")))
)
#### লেনদেন সম্পর্কে অতিরিক্ত তথ্য অন্তর্ভুক্ত করুন
transactionInfo
সম্পত্তিতে লেনদেন সম্পর্কে আর্থিক বিবরণ সহ একটি বস্তু রয়েছে, যথা মূল্য এবং মুদ্রা কোড ( ISO 4217 আলফা বিন্যাস) সহ মূল্যের অবস্থা , যা লেনদেনের প্রকৃতির উপর নির্ভর করে চূড়ান্ত বা অনুমান করা যেতে পারে (যেমন। : মূল্য নির্দিষ্ট শিপিং ঠিকানার উপর নির্ভর করে পরিবর্তিত হতে পারে):
private val transactionInfo = JSONObject()
.put("totalPrice", "123.45")
.put("totalPriceStatus", "FINAL")
.put("currencyCode", "USD")
}
#### আপনার ব্যবসার তথ্য যোগ করা হচ্ছে
অর্থপ্রদানের অনুরোধটি merchantInfo
সম্পত্তির অধীনে অনুরোধ সম্পাদনকারী ব্যবসায়ী সম্পর্কে তথ্য নেয়। এই কোডল্যাবে আপনি দুটি বৈশিষ্ট্যের উপর ফোকাস করবেন:
-
merchantId
আপনার অ্যাকাউন্টের সাথে যুক্ত শনাক্তকারীকে ধরে রাখে। আপনি পে এবং ওয়ালেট কনসোলে আপনার বণিক শনাক্তকারী পেতে পারেন৷ মনে রাখবেন যেTEST
পরিবেশ ব্যবহার করার সময় এই ক্ষেত্রটি মূল্যায়ন করা হয় না। -
merchantName
হল আপনার অ্যাপ্লিকেশন বা প্রতিষ্ঠানের ব্যবহারকারী-দৃশ্যমান নাম। এটিকে Google Pay পেমেন্ট শীটের ভিতরে দেখানো হতে পারে যাতে ব্যবহারকারীদের কে অপারেশনের জন্য অনুরোধ করছে সে সম্পর্কে আরও প্রসঙ্গ দিতে।
প্রস্তুত হয়ে গেলে, paymentDataRequest
অবজেক্টে বণিক সম্পর্কে তথ্য যোগ করুন:
private val merchantInfo = JSONObject()
.put("merchantName", "Example Merchant")
.put("merchantId", "01234567890123456789")
অনুরোধ জারি করুন এবং ফলাফল প্রক্রিয়া করুন
এখন, কনফিগারেশন অবজেক্টটি একসাথে আনুন এবং এটিকে loadPaymentData
অনুরোধে পাস করুন:
private val paymentDataRequestJson = JSONObject(googlePayBaseConfiguration.toString())
.put("allowedPaymentMethods", JSONArray().put(cardPaymentMethod))
.put("transactionInfo", transactionInfo)
.put("merchantInfo", merchantInfo)
এই মুহুর্তে, আপনার কাছে বৈধ অর্থপ্রদানের পদ্ধতির জন্য Google Pay API-কে জিজ্ঞাসা করার জন্য প্রয়োজনীয় সবকিছুই রয়েছে। এটি করতে, PaymentsClient
অবজেক্টে loadPaymentData
পদ্ধতিটি ব্যবহার করুন, আপনার এইমাত্র সংজ্ঞায়িত কনফিগারেশনটি পাস করুন:
fun getLoadPaymentDataTask(): Task<PaymentData> {
val request = PaymentDataRequest.fromJson(paymentDataRequestJson.toString())
return paymentsClient.loadPaymentData(request)
}
private fun requestPayment() {
val task = getLoadPaymentDataTask()
task.addOnCompleteListener(paymentDataLauncher::launch)
}
Google Pay API একটি ফলাফল ফেরাতে কার্যকলাপ ফলাফল API ব্যবহার করে। এপিআই প্রক্রিয়াকরণ এবং ফলাফলের প্রতিক্রিয়া সহজ করার জন্য চুক্তি ধারণ করে। এই উদাহরণটি GetPaymentDataResult
চুক্তি ব্যবহার করে, যাতে অর্থপ্রদানের ফলাফল ছাড়াও অপারেশন সম্পর্কে তথ্য অন্তর্ভুক্ত থাকে:
private val paymentDataLauncher = registerForActivityResult(GetPaymentDataResult()) { taskResult ->
when (taskResult.status.statusCode) {
CommonStatusCodes.SUCCESS -> {
taskResult.result!!.let {
Log.i("Google Pay result:", it.toJson())
// TODO something with the result
}
}
CommonStatusCodes.CANCELED -> // The user canceled
AutoResolveHelper.RESULT_ERROR -> // The API returned an error (it.status: Status)
CommonStatusCodes.INTERNAL_ERROR -> // Handle other unexpected errors
}
}
এই পদ্ধতিতে কল করলে Google Pay পেমেন্ট শিটের উপস্থাপনা শুরু হয়। যদি কোন কনফিগারেশন ত্রুটি না থাকে, আপনি বর্তমানে লগ ইন করা অ্যাকাউন্টের সাথে যুক্ত বৈধ অর্থপ্রদানের পদ্ধতির একটি তালিকা দেখতে পারেন।
নির্বাচন করার পরে, পত্রকটি বন্ধ হয়ে যায় এবং ফলাফলটি আপনার কার্যকলাপে ফেরত পাঠানো হয় এবং উপরে সংজ্ঞায়িত কার্যকলাপ ফলাফল লঞ্চার দ্বারা ক্যাপচার করা হয়।
নির্বাচন সফল হলে, ফলাফলটি একটি PaymentData
অবজেক্টের সাথে ফেরত দেওয়া হয় যাতে নির্বাচিত অর্থপ্রদানের পদ্ধতি সম্পর্কে প্রাসঙ্গিক তথ্য অন্তর্ভুক্ত থাকে:
{
"apiVersionMinor": 0,
"apiVersion": 2,
"paymentMethodData": {
"description": "Visa •••• 1234",
"tokenizationData": {
"type": "PAYMENT_GATEWAY",
"token": "examplePaymentMethodToken"
},
"type": "CARD",
"info": {
"cardNetwork": "VISA",
"cardDetails": "1234",
"billingAddress": {
"phoneNumber": ...,
...
}
}
}
}
আপনি এখন আপনার পেমেন্ট গেটওয়ে দিয়ে লেনদেন সম্পূর্ণ করতে এই অর্থপ্রদানের পদ্ধতি ব্যবহার করতে পারেন:
private fun handlePaymentSuccess(paymentData: PaymentData) {
val paymentMethodToken = paymentData
.getJSONObject("tokenizationData")
.getString("token")
// Sample TODO: Use this token to perform a payment through your payment gateway
}
8. অভিনন্দন!
আপনি সফলভাবে একটি Android অ্যাপ্লিকেশনে Google Pay যোগ করেছেন।
### পরবর্তী পদক্ষেপ
- আপনার অ্যাপ্লিকেশনে Google Pay পরীক্ষা করুন
- পে এবং ওয়ালেট কনসোলে একজন বণিক শনাক্তকারী পান
- ইন্টিগ্রেশন চেকলিস্ট পর্যালোচনা করুন
### আরও জানুন
- API রেফারেন্স দেখুন
- আপনি ত্রুটি দেখতে পেলে আপনার ইন্টিগ্রেশনের সমস্যা সমাধান করুন
- অন্যান্য প্রোগ্রামিং ভাষা এবং লাইব্রেরি ব্যবহার করে একীভূত করার নির্দেশনার জন্য ডক্সে ইন্টিগ্রেশন টিউটোরিয়ালটি দেখুন।
- একটি সম্পূর্ণ কাজের ডেমোর জন্য GitHub-এ নমুনা অ্যাপ্লিকেশনটি পড়ুন