স্যান্ডবক্স পেমেন্ট সেট আপ করুন

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

কনফিগারেশন

স্যান্ডবক্স পরিবেশে স্যান্ডবক্স পেমেন্ট মোড সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাকশন সেন্টারে , কনফিগারেশন > বৈশিষ্ট্যগুলিতে নেভিগেট করুন।
  2. অ্যাকাউন্ট বৈশিষ্ট্য কার্ডে, পেমেন্ট মোড রেডিও বোতাম খুঁজুন।
  3. স্যান্ডবক্স বিকল্পটি নির্বাচন করুন এবং পরিবর্তনগুলি সংরক্ষণ করুন ক্লিক করুন।

স্যান্ডবক্স মোড সহ অ্যাকাউন্ট বৈশিষ্ট্য কার্ড নির্বাচন করা হয়েছে৷

দ্রুত পরীক্ষার পরিবেশে স্যান্ডবক্স পেমেন্ট মোড সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. অ্যাকশন সেন্টারে , ফিড > দ্রুত পরীক্ষা- এ নেভিগেট করুন।
  2. GPay রেডিও বোতামের জন্য স্যান্ডবক্স ব্যবহার করুন নির্বাচন করুন।

স্যান্ডবক্স মোডের সাথে দ্রুত পরীক্ষা নির্বাচন করা হয়েছে

যখন স্যান্ডবক্স পেমেন্ট মোড নির্বাচন করা হয়:

  • এন্ড-টু-এন্ড অর্ডার করলে কার্ডের আসল বিবরণের পরিবর্তে টেস্ট কার্ডের ডেটা থাকে এমন ইন্সট্রুমেন্ট টোকেন ফেরত দিতে Google Pay কনফিগার করে।
  • CheckoutRequestMessage এবং SubmitOrderRequestMessage-isInSandbox ক্ষেত্রটি true হিসাবে সেট করা হয়েছে।

এনভায়রনমেন্ট, পেমেন্ট মোড এবং isInSandbox এর বিভিন্ন সমন্বয় নিম্নরূপ:

পরিবেশ পেমেন্ট মোড isInSandbox
দ্রুত পরীক্ষা স্যান্ডবক্স সত্য
দ্রুত পরীক্ষা উৎপাদন মিথ্যা
স্যান্ডবক্স স্যান্ডবক্স সত্য
স্যান্ডবক্স উৎপাদন মিথ্যা
উৎপাদন উৎপাদন মিথ্যা

চেকআউট প্রতিক্রিয়া বার্তা

আপনার ফুড অর্ডারিং ওয়েব পরিষেবা দ্বারা পাঠানো CheckoutResponseMessage PaymentOptions রয়েছে৷ আপনি যখন আপনার চেকআউট সেট আপ করেন , আপনি একটি উদাহরণ পেমেন্ট গেটওয়ে ব্যবহার করে একটি স্থানধারক অর্থপ্রদানের বিকল্প প্রদান করেন।

  • উপযুক্ত টোকেনাইজেশন কনফিগারেশন সহ আপনার ওয়েব পরিষেবা দ্বারা প্রেরিত CheckoutResponseMessage আপডেট করতে ভুলবেন না।

পেমেন্ট বিকল্প উদাহরণ

স্যান্ডবক্স কী ব্যবহার করে বিভিন্ন পেমেন্ট গেটওয়ের জন্য একটি CheckoutResponseMessage থেকে JSON PaymentOptions অবজেক্টের উদাহরণ নিচে দেওয়া হল:

JSON

"paymentOptions": {
    "googleProvidedOptions": {
        "facilitationSpecification": "{\"apiVersion\":2,\"apiVersionMinor\":0,\"merchantInfo\":{\"merchantName\":\"merchantName\"},\"allowedPaymentMethods\":[{\"type\":\"CARD\",\"parameters\":{\"allowedAuthMethods\":[\"PAN_ONLY\"],\"allowedCardNetworks\":[\"VISA\",\"MASTERCARD\"],\"billingAddressRequired\":true,\"cvcRequired\":false},\"tokenizationSpecification\":{\"type\":\"PAYMENT_GATEWAY\",\"parameters\":{\"gatewayMerchantId\":\"YOUR_MERCHANT_ID\",\"gateway\":\"cybersource\"}}}],\"transactionInfo\":{\"currencyCode\":\"USD\",\"totalPriceStatus\":\"ESTIMATED\",\"totalPrice\":\"31.85\"}} "
    }
}

JSON

"paymentOptions": {
    "googleProvidedOptions": {
        "facilitationSpecification": "{\"apiVersion\":2,\"apiVersionMinor\":0,\"merchantInfo\":{\"merchantName\":\"merchantName\"},\"allowedPaymentMethods\":[{\"type\":\"CARD\",\"parameters\":{\"allowedAuthMethods\":[\"PAN_ONLY\"],\"allowedCardNetworks\":[\"VISA\",\"MASTERCARD\"],\"billingAddressRequired\":true,\"cvcRequired\":false},\"tokenizationSpecification\":{\"type\":\"PAYMENT_GATEWAY\",\"parameters\":{\"gateway\":\"braintree\",\"braintree:apiVersion\":\"v1\",\"braintree:sdkVersion\":\"1.4.0\",\"braintree:merchantId\":\"YOUR_MERCHANT_ID\",\"braintree:clientKey\":\"YOUR_BRAINTREE_SANDVOX_OR_PRODUCTION_KEY\"}}}],\"transactionInfo\":{\"currencyCode\":\"USD\",\"totalPriceStatus\":\"ESTIMATED\",\"totalPrice\":\"31.85\"}} "
    }
}

JSON

"paymentOptions": {
    "googleProvidedOptions": {
        "facilitationSpecification": "{\"apiVersion\":2,\"apiVersionMinor\":0,\"merchantInfo\":{\"merchantName\":\"merchantName\"},\"allowedPaymentMethods\":[{\"type\":\"CARD\",\"parameters\":{\"allowedAuthMethods\":[\"PAN_ONLY\"],\"allowedCardNetworks\":[\"VISA\",\"MASTERCARD\"],\"billingAddressRequired\":true,\"cvcRequired\":false},\"tokenizationSpecification\":{\"type\":\"PAYMENT_GATEWAY\",\"parameters\":{\"gateway\":\"stripe\",\"stripe:version\":\"2018-10-31\",\"stripe:publishableKey\":\"YOUR_PRODUCTION_OR_SANDBOX_STRIPE_KEY\"}}}],\"transactionInfo\":{\"currencyCode\":\"USD\",\"totalPriceStatus\":\"ESTIMATED\",\"totalPrice\":\"31.85\"}} "
    }
}

JSON

"paymentOptions": {
    "googleProvidedOptions": {
        "facilitationSpecification": "{\"apiVersion\":2,\"apiVersionMinor\":0,\"merchantInfo\":{\"merchantName\":\"merchantName\"},\"allowedPaymentMethods\":[{\"type\":\"CARD\",\"parameters\":{\"allowedAuthMethods\":[\"PAN_ONLY\"],\"allowedCardNetworks\":[\"VISA\",\"MASTERCARD\"],\"billingAddressRequired\":true,\"cvcRequired\":false},\"tokenizationSpecification\":{\"type\":\"PAYMENT_GATEWAY\",\"parameters\":{\"gateway\":\"stripev2\",\"gatewayMerchantId\":\"YOUR_PRODUCTION_OR_SANDBOX_STRIPE_KEY\"}}}],\"transactionInfo\":{\"currencyCode\":\"USD\",\"totalPriceStatus\":\"ESTIMATED\",\"totalPrice\":\"31.85\"}} "
    }
}

পতাকা স্যান্ডবক্স লেনদেন

যখন স্যান্ডবক্স পেমেন্ট মোড সক্ষম করা হয়, তখন isInSandbox ক্ষেত্রটি অনুরোধে অন্তর্ভুক্ত করা হয় এবং আপনার ওয়েব পরিষেবার শেষ পয়েন্টে ( CheckoutRequestMessage এবং SubmitOrderRequestMessage ) আগত অনুরোধগুলির জন্য true হিসাবে সেট করা হয়। isInSandbox ক্ষেত্রটি true হিসাবে সেট করা হলে নিম্নলিখিতগুলি করুন:

  • আপনার পেমেন্ট গেটওয়ের জন্য টোকেনাইজেশন কনফিগারেশনে প্রোডাকশন কীগুলির পরিবর্তে স্যান্ডবক্স কী ব্যবহার করুন। বেশিরভাগ পেমেন্ট প্রসেসর স্যান্ডবক্স এবং উত্পাদন উভয়ের জন্য API কী সরবরাহ করে।
  • ওয়েব পরিষেবা প্রদানকারীর সাথে কোনো যোগাযোগ ট্রিগার করবেন না, সাধারণত একটি রেস্তোরাঁ, কারণ তাদের কোনো স্যান্ডবক্স লেনদেন সম্পর্কে অবহিত করতে হবে না।

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

প্রসেস পেমেন্ট

যখন একজন গ্রাহক তাদের অর্ডার জমা দেন, তখন অর্ডার এন্ড-টু-এন্ড আপনার ওয়েব সার্ভিস এন্ডপয়েন্টে SubmitOrderRequestMessage পাঠায়। SubmitOrderRequestMessage instrumentToken ফিল্ডে Google Pay টোকেন একটি বেস-64 এনকোড করা স্ট্রিং হিসেবে অন্তর্ভুক্ত করা হয়েছে। গ্রাহকের অর্থপ্রদান প্রক্রিয়া করতে, আপনার পেমেন্ট গেটওয়ের উপর নির্ভর করে নিম্নলিখিতগুলির মধ্যে একটি করুন:

পেমেন্ট গেটওয়ে
স্ট্রাইপ বা ব্রেনট্রি বেস-64 এনকোড করা টোকেন স্ট্রিংটি ডিকোড করুন এবং অর্থপ্রদান প্রক্রিয়া করতে আপনার পেমেন্ট গেটওয়েতে ডিকোড করা টোকেন পেলোডে থাকা উপযুক্ত ডেটা পাঠান।
অন্যান্য সমস্ত পেমেন্ট গেটওয়ে (স্ট্রাইপইভ 2 সহ) পেমেন্ট প্রক্রিয়া করতে আপনার পেমেন্ট গেটওয়ে এপিআই-এ সম্পূর্ণ বেস-64 এনকোড করা টোকেন স্ট্রিং পাঠান। Google Pay পেমেন্ট পদ্ধতির টোকেন স্ট্রাকচারে এনক্রিপ্ট করা ফিল্ড রয়েছে যেগুলি আপনার পেমেন্ট গেটওয়ে পেমেন্ট প্রক্রিয়া করার জন্য ডিক্রিপ্ট করতে পারে।

ডিকোডেড পেলোড উদাহরণ

নিম্নলিখিত উদাহরণগুলি বিভিন্ন পেমেন্ট গেটওয়ের জন্য instrumentToken ক্ষেত্রে ফেরত ডিকোড করা পেলোডগুলি দেখায়:

JSON

Braintree ব্যবহার করার সময় এই JSON উদাহরণটি একটি ডিকোড করা পেমেন্ট টোকেন উপস্থাপন করে। nonce ফিল্ডের মান বের করুন এবং পেমেন্ট প্রক্রিয়া করার জন্য মানটি Braintree-এ পাঠান।

{
  "androidPayCards": [{
    "type": "AndroidPayCard",
    "nonce": "aeeb8297-4242...",
    "description": "AndroidPay",
    "consumed": false,
    "details": {
      "cardType": "Visa",
      "lastTwo": "29"
    }
  }]
}

Braintree কন্ট্রোল প্যানেলে Google Pay চালু না থাকলে, instrumentToken ফিল্ডটি নিম্নলিখিত ত্রুটিটিকে ডিকোড করে:

{
  "error": {
    "message": "Record not found"
  },
  "fieldErrors": []
}

JSON

এই JSON উদাহরণ স্ট্রাইপ ব্যবহার করার সময় একটি ডিকোড করা পেমেন্ট টোকেন উপস্থাপন করে। id ফিল্ডের মান বের করুন এবং পেমেন্ট প্রক্রিয়া করতে স্ট্রাইপে পাঠান।

{
  "id": "tok_abcdefg1234...",
  "object": "token",
  "card": {
    "id": "card_abcde...",
    "object": "card",
    "address_city": null,
    "address_country": null,
    "address_line1": null,
    "address_line1_check": null,
    "address_line2": null,
    "address_state": null,
    "address_zip": null,
    "address_zip_check": null,
    "brand": "Visa",
    "country": "US",
    "cvc_check": null,
    "dynamic_last4": "1234",
    "exp_month": 1,
    "exp_year": 2019,
    "funding": "credit",
    "last4": "1234",
    "metadata": {},
    "name": null,
    "tokenization_method": "android_pay"
  },
  "client_ip": "74.125.177.36",
  "created": 1500483670,
  "livemode": false,
  "type": "card",
  "used": false
}

JSON

এই JSON উদাহরণ stripev2 ব্যবহার করার সময় একটি ডিকোড করা পেমেন্ট টোকেন উপস্থাপন করে।

  {
  "protocolVersion":"ECv2",
  "signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d",
  "intermediateSigningKey":{
    "signedKey": "{\"keyExpiration\":\"1542323393147\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}",
    "signatures": ["MEYCIQCO2EIi48s8VTH+ilMEpoXLFfkxAwHjfPSCVED/QDSHmQIhALLJmrUlNAY8hDQRV/y1iKZGsWpeNmIP+z+tCQHQxP0v"]
  },
  "signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"
}
  

JSON

স্কোয়ার ব্যবহার করার সময় এই JSON উদাহরণটি একটি ডিকোড করা পেমেন্ট টোকেন উপস্থাপন করে।

  {
    "signature": "MEYCIQCMAsWCrY2GfHM/gMAKiK3QCKJJOIkjZeTQGzcdWgvrhwIhAJ3mXwe+wmU9z+Apv1rTDsCVQBzayvWzT4ywxytrSPla",
    "protocolVersion": "ECv1",
    "signedMessage": "{\"encryptedMessage\":\"WkYz21EYxojwTqWh6A3oYXtmctu1PlqF+tNYPA4cq017nqj16Ge7kaVR7MI1XG1OrCmcMwP20u5Zb5E28XYan8UI8M4L120orvE9XU1ivZuO4Myq2O3ue8v0lY1MDx8Mnk+5mkAv1kLmzJc91gEQ2leIwrPuMDYqsQUHzTR3Jikh5/v+iWRkyQPKKxgj5c6Erdu/pkg1xV6fQJcHNdq9Jw11zl95x6eQurxw2Uy8v811azGr+noKJbw0uye72MkhmzMS5QKOzwGT9nBfO+zPLYSEewsdOcPbNZF94zk/KU9nxom/gQ+eYEMIZvOj9lO4gQqDqR6DyWyStk7MjeXQTvXWZBI1JpqvOrlTHL0Ct18RpbfOio7hAtafzb0NnqEKlsun+SSpJmvI7U6n6Cnu1JUMUGfT/Jsi6RJ3N6pRw2BubeR1925Xl3jXQnlz5io6X1YRlAcnshZyf6CjBpKES32aTf1m1IHRhZ2Jj6i/g7Y\\u003d\",\"ephemeralPublicKey\":\"BDQA0Cf//BHPcnB0R/GRrWa2g7T1QF97eOhAYy7l45M+kJnsoeL9OaUQV/KIMLvcgbmKkZIm2FQeL7ftd6S4q4c\\u003d\",\"tag\":\"DHtVyXNo+PDr7Thi/EjBBbsr2k7y1SwGIn0D9mmPTJc\\u003d\"}"
  }
    

টোকেন ব্যবহার করে অর্থপ্রদান প্রক্রিয়া করতে, gpay দ্বারা প্রিফিক্স করা source_id ক্ষেত্রে স্কোয়ারের পেমেন্ট এপিআই-এ আপনার অনুরোধ সহ বেস-64 এনকোড করা টোকেন স্ট্রিংটি ফেরত দিন:

  {
    "idempotency_key": "ID",
    "source_id": "gpay:GOOGLE_PAY_BASE64_ENCODED_TOKEN",
    "amount_money": {
        "amount": 50,
        "currency": "USD"
    },
    "location_id": "LOCATION_ID",
    "billing_address": {
        "postal_code": "11111"
    }
  }

নিচের একটি Node.js উদাহরণ যা Braintree থেকে বেস-64 এনকোড করা instrumentToken ডিকোড করে:

Node.js

function decodeToken(instrumentToken) {
  let decodedString = new Buffer(instrumentToken, 'base64').toString('ascii')
  if (decodedString.androidPayCards) {
    return decodedString.androidPayCards[0].nonce;
  }
}