পেমেন্ট রিকোয়েস্ট API ব্যবহার করে WebView-এ Android পেমেন্ট অ্যাপগুলিকে সমর্থন করুন

আপনি WebView এর ভিতরে চলমান ওয়েবসাইটগুলি থেকে Android পেমেন্ট অ্যাপ চালু করতে পেমেন্ট অনুরোধ API ব্যবহার করতে পারেন। এটি Chrome এ ইতিমধ্যে উপলব্ধ একই JavaScript API ব্যবহার করে কাজ করে৷

এই বৈশিষ্ট্যটি WebView সংস্করণ 136 থেকে পাওয়া যায়, যা সাধারণত Chrome 136-এর সাথে পাঠানো হয়।

WebView হোস্ট অ্যাপে অর্থপ্রদানের অনুরোধ সেট আপ করুন

ওয়েবভিউ থেকে অ্যান্ড্রয়েড পেমেন্ট অ্যাপ চালু করতে, পেমেন্ট রিকোয়েস্ট এপিআই অ্যান্ড্রয়েড ইন্টেন্ট ব্যবহার করে সিস্টেমকে জিজ্ঞাসা করে। এটি সমর্থন করার জন্য, WebView হোস্ট অ্যাপটিকে অবশ্যই তার AndroidManifest.xml ফাইলে সেই উদ্দেশ্যগুলি ঘোষণা করতে হবে৷

ডিফল্টরূপে, পেমেন্ট অনুরোধ WebView-এ অক্ষম করা আছে।

AndroidX WebKit সংস্করণ 1.14.0 বা উচ্চতর থেকে WebSettingsCompat ব্যবহার করে এটি সক্ষম করতে এই পদক্ষেপগুলি অনুসরণ করুন:

ধাপ 1: AndroidX WebKit নির্ভরতা যোগ করুন

কোটলিন (build.gradle.kts)

dependencies {
  implementation("androidx.webkit:webkit:1.14.0")
}

গ্রোভি (build.gradle)

dependencies {
  implementation 'androidx.webkit:webkit:1.14.0'
}

সংস্করণ ক্যাটালগ

[versions]
webkit = "1.14.0"

[libraries]
androidx-ktx = { group = "androidx.webkit", name = "webkit", version.ref = "webkit" }

ধাপ 2: প্রয়োজনীয় ক্লাস ইম্পোর্ট করুন

এই ক্লাসগুলি আপনাকে ওয়েবভিউ সেটিংস অ্যাক্সেস এবং কনফিগার করতে দেয় এবং রানটাইমে বৈশিষ্ট্য সমর্থনের জন্য পরীক্ষা করে।

import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;

ধাপ 3: WebView কোডে অর্থপ্রদানের অনুরোধ সক্ষম করুন

এই ধাপটি আপনার WebView-এ অর্থপ্রদানের অনুরোধ বৈশিষ্ট্য চালু করে এবং নিশ্চিত করে যে সাইটটি JavaScript ব্যবহার করে এটিকে ট্রিগার করতে পারে।

এই ধাপটি আপনার WebView-এ অর্থপ্রদানের অনুরোধ বৈশিষ্ট্য চালু করে এবং নিশ্চিত করে যে সাইটটি JavaScript ব্যবহার করে এটিকে ট্রিগার করতে পারে।

কোটলিন (রচনা)

AndroidView(
  factory = {
      WebView(it).apply {
          settings.javaScriptEnabled = true
          if (WebViewFeature.isFeatureSupported(
                  WebViewFeature.PAYMENT_REQUEST)) {
              WebSettingsCompat.setPaymentRequestEnabled(settings, true);
          }
      }
  },
  update = {it.loadUrl(url)
  }
)

জাভা

WebView webView = findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavascriptEnabled(true);
if (WebViewFeature.isFeatureSupported(
        WebViewFeature.PAYMENT_REQUEST)) {
    WebSettingsCompat.setPaymentRequestEnabled(webSettings, true);
}

ধাপ 4: AndroidManifest.xml-এ অভিপ্রায় ফিল্টার যোগ করুন

এই ফিল্টারগুলি ওয়েবভিউকে সিস্টেম ইন্টেন্ট ব্যবহার করে অ্যান্ড্রয়েড পেমেন্ট অ্যাপগুলি আবিষ্কার এবং আহ্বান করতে দেয়:

<queries>
  <intent>
    <action android:name="org.chromium.intent.action.PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.IS_READY_TO_PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.UPDATE_PAYMENT_DETAILS"/>
  </intent>
</queries>

মূল অর্থপ্রদানের অনুরোধ বৈশিষ্ট্যগুলিকে সমর্থন করতে আপনার AndroidManifest.xml এ নিম্নলিখিত উদ্দেশ্যগুলি ব্যবহার করুন:

ধাপ 5: আপনার অ্যাপ পুনঃনির্মাণ এবং প্রকাশ করুন

এই পরিবর্তনগুলি করার পরে, আপনার অ্যাপটি পুনরায় তৈরি করুন এবং প্লে স্টোরে একটি আপডেট সংস্করণ প্রকাশ করুন৷

ঐচ্ছিক: প্রস্তুতি পরীক্ষা কাস্টমাইজ করুন

অ্যান্ড্রয়েড পেমেন্ট অ্যাপ চালু করার পাশাপাশি, পেমেন্ট রিকোয়েস্ট এপিআই ওয়েবসাইটগুলিকে চেক করতে দেয় যে ব্যবহারকারী পেমেন্ট করতে প্রস্তুত কিনা। উদাহরণস্বরূপ, ওয়েবসাইটগুলি সনাক্ত করতে পারে যে ব্যবহারকারীর একটি সমর্থিত অর্থপ্রদানের পদ্ধতি সেট আপ আছে কিনা৷

Chrome-এ একটি সেটিং রয়েছে যা ব্যবহারকারীদের এই চেকটিকে সক্ষম বা অক্ষম করতে দেয়৷ WebView হোস্ট অ্যাপগুলি ব্যবহার করে অনুরূপ টগল অফার করতে পারে:

WebSettingsCompat.setHasEnrolledInstrumentEnabled(WebSettings, boolean)

এই সেটিংটি ডিফল্টরূপে সক্রিয় ( true )। সক্রিয় থাকাকালীন, এটি ওয়েবভিউতে চলমান ওয়েবসাইটগুলিকে ব্যবহারকারীর একটি নথিভুক্ত অর্থপ্রদানের উপকরণ আছে কিনা তা সনাক্ত করতে অনুমতি দেয়।

জাভাস্ক্রিপ্টে অর্থপ্রদানের অনুরোধ সমর্থনের জন্য চেক করুন

WebSettingsCompat.setPaymentRequestEnabled(webSettings, true) জাভা বা Kotlin-এ কল করার পরে, window.PaymentRequest ইন্টারফেস জাভাস্ক্রিপ্টে উপলব্ধ হয়। এটি ওয়েবপৃষ্ঠায় বৈশিষ্ট্য সনাক্তকরণের জন্য ব্যবহার করা যেতে পারে:

if (window.PaymentRequest) {
  // Payment Request is available.
} else {
  // Payment Request is not available.
}

যখন window.PaymentRequest উপলব্ধ থাকে, তখন ওয়েবপৃষ্ঠাটি একটি অর্থপ্রদানের লেনদেন শুরু করা চালিয়ে যেতে পারে।

পেমেন্ট অনুরোধের সাথে অ্যান্ড্রয়েড পেমেন্ট অ্যাপ একত্রিত করুন

অর্থপ্রদানের অনুরোধ সমর্থন করার জন্য, Android পেমেন্ট অ্যাপগুলিকে অবশ্যই নির্দিষ্ট সিস্টেমের উদ্দেশ্যগুলিতে সাড়া দিতে হবে এবং নিরাপদে অর্থপ্রদানের ডেটা পরিচালনা করতে হবে। এই নির্দেশিকাগুলি ব্যাখ্যা করে যে কীভাবে অর্থপ্রদানের পদ্ধতি নিবন্ধন করবেন, আপনার অর্থপ্রদান পরিষেবা বাস্তবায়ন করবেন এবং আপনার অ্যাপকে সুরক্ষিত করবেন:

অপব্যবহারের বিরুদ্ধে আপনার অ্যাপকে সুরক্ষিত করুন

যেকোন অ্যাপ Android পেমেন্ট intents org.chromium.intent.action.PAY , IS_READY_TO_PAY , এবং UPDATE_PAYMENT_DETAILS কল করতে পারে। WebView হোস্ট অ্যাপগুলি অর্থপ্রদানের অনুরোধ কলগুলি পর্যবেক্ষণ করতে, শুরু করতে এবং বাধা দিতে পারে৷ যেহেতু ওয়েবভিউ হোস্ট অ্যাপের প্রক্রিয়ার মধ্যে চলে, তাই এই উদ্দেশ্যগুলি কীভাবে ব্যবহার করা হয় তা সীমাবদ্ধ করতে পারে না। ক্ষতিকারক অ্যাপগুলি ওরাকল আক্রমণ শুরু করতে এটিকে কাজে লাগাতে পারে৷

একটি ওরাকল আক্রমণে, একটি পেমেন্ট অ্যাপ অনিচ্ছাকৃতভাবে এমন তথ্য প্রকাশ করে যা করা উচিত নয়। উদাহরণ স্বরূপ, একজন আক্রমণকারী IS_READY_TO_PAY ব্যবহার করে ব্যবহারকারীর কাছে কোন অর্থপ্রদানের উপকরণ উপলব্ধ রয়েছে তা আবিষ্কার করতে পারে।

এই ধরনের অপব্যবহার থেকে রক্ষা করার জন্য আপনাকে অবশ্যই আপনার পেমেন্ট অ্যাপে সুরক্ষা তৈরি করতে হবে।

অপব্যবহার কমাতে নিম্নলিখিত কৌশলগুলি ব্যবহার করুন:

  • থ্রোটল অনুরোধ : আপনার অ্যাপ কত ঘন ঘন IS_READY_TO_PAY তে সাড়া দেয় তা সীমিত করুন। উদাহরণস্বরূপ, প্রতি 30 মিনিটে শুধুমাত্র একবার সাড়া দিন।
  • এনক্রিপশন ব্যবহার করুন : সংবেদনশীল প্রতিক্রিয়া এনক্রিপ্ট করুন যাতে শুধুমাত্র আপনার বিশ্বস্ত মার্চেন্ট সার্ভারগুলি সেগুলিকে ডিক্রিপ্ট করতে পারে৷ সার্ভারের পাশে সর্বদা এনক্রিপশন এবং ডিক্রিপশন সঞ্চালন করুন।
  • অ্যাক্সেস সীমাবদ্ধ করুন : বিশ্বস্ত ওয়েবভিউ হোস্ট অ্যাপগুলির প্যাকেজের নাম এবং SHA256 স্বাক্ষরকারী শংসাপত্রগুলি ব্যবহার করে একটি অনুমোদিত তালিকা বজায় রাখুন৷ অ্যান্ড্রয়েড পেমেন্ট অ্যাপ ডেভেলপার গাইডে আরও জানুন।