1. ভূমিকা
তুমি কী তৈরি করবে
এই কোডল্যাবটি সম্পন্ন হওয়ার পর, আপনার কাছে Android এর জন্য একটি কার্যকর Google Pay ইন্টিগ্রেশন সহ একটি ন্যূনতম কার্যকর Flutter অ্যাপ থাকবে। এই প্রকল্পটি একটি পেমেন্ট টোকেন পুনরুদ্ধার করে যা প্রক্রিয়াকরণের জন্য একটি পেমেন্ট পরিষেবা প্রদানকারীর কাছে পাঠানো যেতে পারে।
তুমি কি শিখবে
- গুগল পে ফ্লাটার লাইব্রেরি কীভাবে ইনস্টল এবং কনফিগার করবেন
- গুগল পে বোতামটি কীভাবে প্রদর্শন করবেন এবং ক্লিকগুলি কীভাবে পরিচালনা করবেন
- গুগল পে থেকে কীভাবে পেমেন্ট টোকেনের অনুরোধ করবেন
তোমার যা লাগবে
- ডার্ট ফাইল সম্পাদনা করার জন্য আপনার পছন্দের একটি টেক্সট এডিটর।
- অ্যান্ড্রয়েডের জন্য একটি ফ্লাটার ডেভেলপমেন্ট পরিবেশ সেট আপ করা হয়েছে।
- উৎপাদনের জন্য, আপনার একটি Google Pay
merchantIdপ্রয়োজন হবে। Google Pay & Wallet Console- এ নিবন্ধন করতে মাত্র এক মিনিট সময় লাগে, তাই এখনই এটির যত্ন নেওয়া উচিত।
2. ফ্লাটার প্রকল্প তৈরি করুন
প্রকল্প ফাইল তৈরি করুন
-
googlepay_flutterনামে একটি নতুন Flutter প্রকল্প তৈরি করুন।flutter create googlepay_flutter
- গুগল পে ফ্লাটার লাইব্রেরি ইনস্টল করুন।
cd googlepay_flutter flutter pub add pay
- আপনার পছন্দের IDE তে
lib/main.dartখুলুন এবং কন্টেন্টগুলি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return const MaterialApp( home: PaySampleApp(), ); } } class PaySampleApp extends StatefulWidget { const PaySampleApp({super.key}); @override State<PaySampleApp> createState() => _PaySampleAppState(); } class _PaySampleAppState extends State<PaySampleApp> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Google Pay Codelab'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const Text('Transaction info and errors will be logged to the console.'), ], ), ), ); } }
৩. গুগল পে কনফিগার করুন
Google Pay পেমেন্ট অনুরোধের জন্য একটি অনুরোধ বস্তুর প্রয়োজন। এখানে _paymentItems হিসাবে সংজ্ঞায়িত বস্তুটিতে সমস্ত অনুরোধের জন্য ন্যূনতম সাধারণ সেটিংস রয়েছে। অনুরোধের উপর নির্ভর করে অতিরিক্ত সেটিংস যোগ করা হবে যা আমরা এই কোডল্যাবে পর্যালোচনা করব।
-
lib/main.dartএ Google Pay কনফিগারেশন ধ্রুবক যোগ করুন:
import 'package:pay/pay.dart';
const _paymentItems = [
PaymentItem(
label: 'Total',
amount: '14.95',
status: PaymentItemStatus.final_price,
)
];
-
assets/google_pay_config.jsonপাথে ডিফল্ট পেমেন্ট কনফিগারেশন json যোগ করুন:
{
"provider": "google_pay",
"data": {
"environment": "TEST",
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type": "CARD",
"tokenizationSpecification": {
"type": "PAYMENT_GATEWAY",
"parameters": {
"gateway": "example",
"gatewayMerchantId": "exampleGatewayMerchantId"
}
},
"parameters": {
"allowedCardNetworks": ["VISA", "MASTERCARD"],
"allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
"billingAddressRequired": true,
"billingAddressParameters": {
"format": "FULL",
"phoneNumberRequired": true
}
}
}
],
"merchantInfo": {
"merchantName": "Example Merchant Name"
},
"transactionInfo": {
"countryCode": "US",
"currencyCode": "USD"
}
}
}
রিসোর্স
- API রেফারেন্স : Google Pay API অনুরোধের অবজেক্ট ডকুমেন্টেশন
- API রেফারেন্স : অনুমোদিত অনুমোদন পদ্ধতি, অনুমোদিত কার্ড নেটওয়ার্ক এবং সঠিক গেটওয়ে মান সহ টোকেনাইজেশন স্পেসিফিকেশন সম্পর্কে আরও তথ্যের জন্য
PaymentMethodদেখুন।
৪. গুগল পে বোতামটি যোগ করুন
pay লাইব্রেরিতে একটি নেটিভ গুগল পে বোতাম উপাদান রয়েছে।
নিম্নলিখিত কোড দিয়ে lib/main.dart এ _PaySampleAppState ক্লাস আপডেট করুন:
class _PaySampleAppState extends State<PaySampleApp> {
late final Future<PaymentConfiguration> _gpayConfig;
void onGooglePayResult(paymentResult) {
// Send 'token' to your payment service provider (PSP)
print(paymentResult);
}
@override
void initState() {
super.initState();
_gpayConfig = PaymentConfiguration.fromAsset('google_pay_config.json');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Google Pay Codelab')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FutureBuilder<PaymentConfiguration>(
future: _gpayConfig,
builder: (context, snapshot) {
if (snapshot.connectionState != ConnectionState.done) {
return const Center(child: CircularProgressIndicator());
}
if (snapshot.hasError || !snapshot.hasData) {
return const Text('Error loading Google Pay config');
}
return GooglePayButton(
paymentConfiguration: snapshot.data!,
onPaymentResult: onGooglePayResult,
paymentItems: _paymentItems,
height: 48,
type: GooglePayButtonType.buy,
theme: GooglePayButtonTheme.dark,
margin: const EdgeInsets.only(top: 15.0),
loadingIndicator: const Center(
child: CircularProgressIndicator(),
),
);
},
),
const Text('Transaction info and errors will be logged to the console.'),
],
),
),
);
}
}
কোড ব্যাখ্যা
-
_paymentItemsএই বোতাম ক্লিকের মাধ্যমে যে লেনদেন প্রক্রিয়া করা উচিত তা বর্ণনা করে। -
GooglePayButtonউইজেটেরpaymentConfigurationAssetassets/google_pay_config.jsonফাইল থেকে কনফিগারেশন লোড করে। - যখন
GooglePayButtonটিপে দেওয়া হয়, তখনonGooglePayResultফাংশনটি কল করা হয়। এই ফাংশনটি পেমেন্টের ফলাফল গ্রহণ করে। - প্রতিক্রিয়া থেকে পেমেন্ট টোকেনটি পেয়ে গেলে, লেনদেন প্রক্রিয়া করার জন্য আপনি এটি আপনার পেমেন্ট গেটওয়েতে পাঠাবেন।
৫. ক্লিক করলেই পেমেন্ট শুরু করুন
GooglePayButton এ ট্যাপ করলে Google Pay শিটটি খুলে যাবে এবং ফলাফল দেখাবে — আলাদাভাবে "পেমেন্ট করুন" কল করার প্রয়োজন নেই। টোকেন, পৃষ্ঠের ত্রুটি লগ করার জন্য হ্যান্ডলার যোগ করুন এবং ঐচ্ছিকভাবে বোতাম টিপুন লগ করুন।
-
_PaySampleAppStateভিতরে ফলাফল হ্যান্ডলার যোগ বা আপডেট করুন:
void onGooglePayResult(dynamic paymentResult) {
try {
final token = paymentResult['paymentMethodData']['tokenizationData']['token'];
debugPrint('Google Pay payment token: $token');
} catch (e) {
debugPrint('Unexpected payment result: $e');
}
}
- প্রেস এবং এরর হ্যান্ডলার অন্তর্ভুক্ত করার জন্য
GooglePayButtonআপডেট করুন:
GooglePayButton(
paymentConfiguration: snapshot.data!,
paymentItems: _paymentItems,
onPaymentResult: onGooglePayResult,
onError: (Object err) => debugPrint('Google Pay error: $err'),
onPressed: () => debugPrint('Google Pay button pressed'),
height: 48,
type: GooglePayButtonType.buy,
theme: GooglePayButtonTheme.dark,
margin: const EdgeInsets.only(top: 15.0),
loadingIndicator: const Center(child: CircularProgressIndicator()),
)
মন্তব্য
- ট্যাপ নিজেই পেমেন্ট শিট ট্রিগার করে;
onPaymentResultপেলোড গ্রহণ করে। - উৎপাদনের সময়, চার্জ সম্পূর্ণ করার জন্য টোকেনটি আপনার পেমেন্ট পরিষেবা প্রদানকারীর কাছে পাঠান।
৬. উপসংহার
এই কোডল্যাবটি সম্পূর্ণ করার জন্য অভিনন্দন! আপনি শিখেছেন কিভাবে Android এর জন্য একটি Flutter অ্যাপে Google Pay API সংহত করতে হয়।
প্রকল্পটি চালান
আপনার অ্যাপটি শুরু করতে নিম্নলিখিত কমান্ডটি চালান:
flutter run
এখান থেকে কোথায় যাবেন
অতিরিক্ত সম্পদ
- ডিসকর্ডের #পেমেন্টস চ্যানেলে কথোপকথনে যোগ দিন
- X-এ @GooglePayDevs-কে অনুসরণ করুন
- YouTube-এ Google Pay সম্পর্কিত ভিডিও দেখুন