সর্বশেষ সংস্করণে আপডেট করুন

গুগল পে এপিআই ২০১৮ সালের জুলাই মাসে PaymentDataRequest এবং IsReadyToPayRequest অবজেক্টগুলোর জন্য নতুন অবজেক্ট স্ট্রাকচার চালু করেছে। এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে গুগল পে এপিআই ভার্সন ১-এর জন্য ফরম্যাট করা অবজেক্টগুলোকে ভার্সন ২-এর জন্য ফরম্যাট করা অবজেক্টে আপডেট করতে হয়।

অর্থপ্রদানের পদ্ধতি

গুগল পে এপিআই-এর ভার্সন ২-এ প্রতিটি রিকোয়েস্ট অবজেক্টের সাথে একটি এপিআই ভার্সন নির্দিষ্ট করা থাকে।

Google Pay API-এর ভার্সন ১-এ পেমেন্টের একমাত্র মাধ্যম হিসেবে কার্ড সাপোর্ট করত। Google Pay API-এর ভার্সন ২-এ, CARD পেমেন্ট পদ্ধতিটি একাধিক সম্ভাব্য পেমেন্ট পদ্ধতির মধ্যে একটি। যে সাইটগুলো আগে allowedPaymentMethods ভ্যালু হিসেবে CARD নির্দিষ্ট করত, তাদের এখন allowedAuthMethods ভ্যালু হিসেবে PAN_ONLY সেট করতে হবে। যে সাইটগুলো আগে allowedPaymentMethods ভ্যালু হিসেবে TOKENIZED_CARD নির্দিষ্ট করত, তাদের এখন allowedAuthMethods ভ্যালু হিসেবে CRYPTOGRAM_3DS সেট করতে হবে।

অনুমোদিত কার্ড নেটওয়ার্কগুলোর পাশাপাশি সেই নেটওয়ার্কগুলোতে কার্ডের জন্য সমর্থিত প্রমাণীকরণ পদ্ধতিগুলোও নির্দিষ্ট করা থাকে।

apiVersion 1

{
  allowedPaymentMethods: [
    'CARD',
    'TOKENIZED_CARD'
  ],
  cardRequirements: {
    allowedCardNetworks: [
      'AMEX',
      'DISCOVER',
      'JCB',
      'MASTERCARD',
      'VISA'
    ]
  }
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0,
  allowedPaymentMethods: [{
    type: 'CARD',
    parameters: {
      allowedAuthMethods: [
        'PAN_ONLY',
        'CRYPTOGRAM_3DS'
      ],
      allowedCardNetworks: [
        'AMEX',
        'DISCOVER',
        'JCB',
        'MASTERCARD',
        'VISA'
      ]
    }
  }]
}

একটি CARD পেমেন্ট পদ্ধতির জন্য IsReadyToPayRequest এ অনুমোদিত কার্ড নেটওয়ার্ক এবং তাদের প্রমাণীকরণ পদ্ধতিগুলো অন্তর্ভুক্ত থাকে।

কার্ড পেমেন্ট ডেটা টোকেনাইজেশন

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

apiVersion 1

{
  paymentMethodTokenizationParameters: {
    tokenizationType: 'PAYMENT_GATEWAY',
    parameters: {
      'gateway': 'example',
      'gatewayMerchantId': 'exampleMerchantId'
    }
  }
}

apiVersion 2

{
  allowedPaymentMethods: [{
    type: 'CARD',
    tokenizationSpecification: {
      type: 'PAYMENT_GATEWAY',
      parameters: {
        'gateway': 'example',
        'gatewayMerchantId': 'exampleMerchantId'
      }
    }
  }]
}

গুগল মার্চেন্ট আইডি

Google Pay API-এর ভার্সন ১-এ Google মার্চেন্ট আইডি একটি টপ-লেভেল প্রপার্টি ছিল। এখন, Google মার্চেন্ট আইডিটি একটি MerchantInfo অবজেক্টের ভেতরে রাখা হয়, যেখানে মার্চেন্টের নাম ঐচ্ছিকভাবে যোগ করা যায়।

apiVersion 1

{
  merchantId: '12345678901234567890'
}

apiVersion 2

{
  merchantInfo: {
    merchantId: '12345678901234567890'
  }
}

বিলিং ঠিকানা

CARD পেমেন্ট পদ্ধতির সাথে একটি ঐচ্ছিক বিলিং ঠিকানা এবং একটি বিলিং ফোন নম্বর যুক্ত থাকে। যদি কোনো সাইট বিলিং ঠিকানার জন্য অনুরোধ করে, তবে প্রত্যাশিত প্রতিক্রিয়া সম্পর্কিত যেকোনো কনফিগারেশন একটি BillingAddressParameters অবজেক্টের মধ্যে রাখা হয়।

apiVersion 1

{
  cardRequirements: {
    billingAddressRequired: true,
    billingAddressFormat: 'FULL'
  },
  phoneNumberRequired: true
}

apiVersion 2

{
  allowedPaymentMethods: [{
    type: 'CARD',
    parameters: {
      billingAddressRequired: true,
      billingAddressParameters: {
        format: 'FULL',
        phoneNumberRequired: true
      }
    }
  }]
}

শিপিং ঠিকানা

PaymentDataRequest অবজেক্টের শীর্ষ স্তরে একটি ঐচ্ছিক শিপিং ঠিকানার আবশ্যকতা বহাল রয়েছে। shippingAddressRequirements প্রপার্টিটির নাম পরিবর্তন করে shippingAddressParameters রাখা হয়েছে।

আগে Google Pay API-এর রেসপন্সে, ফোন নম্বর অনুরোধ করা হলে শিপিং অ্যাড্রেসের অংশ হিসেবে একটি ফোন নম্বর ফেরত আসতে পারত। Google Pay API-এর কোনো ভার্সনেই এখন আর শিপিং ফোন নম্বর সাপোর্ট করা হয় না। যেসব রেসপন্স হ্যান্ডলার শিপিং ফোন নম্বর আশা করে, সেগুলোকে অবশ্যই আপডেট করতে হবে।

apiVersion 1

{
  shippingAddressRequired: true,
  shippingAddressRequirements: {
    allowedCountryCodes: [
      'US',
      'CA'
    ]
  }
}

apiVersion 2

{
  shippingAddressRequired: true,
  shippingAddressParameters: {
    allowedCountryCodes: [
      'US',
      'CA'
    ]
  }
}

পেমেন্টডেটা প্রতিক্রিয়া

যেসব সাইট PaymentDataRequest এ apiVersion প্রপার্টির মান 2 সেট করে, তাদের জন্য PaymentData অবজেক্ট রেসপন্সটি পরিবর্তিত হয়ে একাধিক সম্ভাব্য পেমেন্ট ডেটা রেসপন্সের মধ্যে একটি হিসেবে কার্ডকে উল্লেখ করে। PaymentDataRequest অবজেক্টে অন্তর্ভুক্ত apiVersion এবং apiVersionMinor প্রপার্টিগুলো প্রত্যাশিত ফরম্যাট নির্দেশ করার জন্য PaymentData রেসপন্সে প্রদর্শিত হয়।

apiVersion 1

{
  // no version specified
}

apiVersion 2

{
  apiVersion: 2,
  apiVersionMinor: 0
}

নির্বাচিত পেমেন্ট পদ্ধতি এবং এর টোকেনাইজেশন সম্পর্কিত তথ্য paymentMethodData প্রপার্টির মধ্যে রাখা হয়। কার্ড পেমেন্ট পদ্ধতির cardInfo অবজেক্ট থেকে দুটি প্রপার্টি সরিয়ে দেওয়া হয়েছে: cardClass এবং cardImageUri ।

apiVersion 1

{
  cardInfo: {
    cardDescription: 'Visa •••• 1234',
    cardNetwork: 'VISA',
    cardDetails: 1234
  },
  paymentMethodToken: {
    tokenizationType: 'PAYMENT_GATEWAY',
    token: 'examplePaymentMethodToken'
  }
}

apiVersion 2

{
  paymentMethodData: {
    type: 'CARD',
    description: 'Visa •••• 1234',
    info: {
      cardNetwork: 'VISA',
      cardDetails: '1234'
    },
    tokenizationData: {
      type: 'PAYMENT_GATEWAY',
      token: 'examplePaymentMethodToken'
    }
  }
}

এনক্রিপ্টেড বার্তা প্রতিক্রিয়া

যেসব সাইট DIRECT পেমেন্ট মেথড টোকেনাইজেশন টাইপ নির্দিষ্ট করে এবং TOKENIZED_CARD এর API ভার্সন 1 পেমেন্ট মেথড গ্রহণ করে, তাদের অবশ্যই ডিক্রিপ্টেড encryptedMessage প্রপার্টিটি যেভাবে হ্যান্ডেল করে তা আপডেট করতে হবে। 3-D Secure ক্রিপ্টোগ্রাম এবং ঐচ্ছিক ইলেকট্রনিক কমার্স ইন্ডিকেটর (ECI) দ্বারা প্রমাণীকৃত অ্যান্ড্রয়েড ডিভাইস টোকেনগুলো আপনার গেটওয়ে বা প্রসেসরের কাছে ফরোয়ার্ড করা চালিয়ে যাওয়ার জন্য সাইটটিকে অবশ্যই এটি করতে হবে। কার্ডের paymentMethod হলো CARD , এবং নির্বাচিত কার্ডের প্রমাণীকরণ পদ্ধতি সম্পর্কে অতিরিক্ত তথ্য paymentMethodDetails.authMethod এ থাকে।

apiVersion 1

{
  "paymentMethod": "TOKENIZED_CARD",
  "paymentMethodDetails": {
    "authMethod": "3DS",
    "dpan": "1111222233334444",
    "expirationMonth": 10,
    "expirationYear": 2020,
    "3dsCryptogram": "AAAAAA...",
    "3dsEciIndicator": "eci indicator"
  }
}

apiVersion 2

{
  "paymentMethod": "CARD",
  "paymentMethodDetails": {
    "authMethod": "CRYPTOGRAM_3DS",
    "pan": "1111222233334444",
    "expirationMonth": 10,
    "expirationYear": 2020,
    "cryptogram": "AAAAAA...",
    "eciIndicator": "eci indicator"
  }
}