Créer un objet PaymentDataRequest

Lorsque l'acheteur est prêt à payer, créez un objet PaymentDataRequest et assignez lui votre objet BaseRequest.

Cet objet devra contenir les données utiles au paiement:
  • informations de la passerelle de paiement,
  • méthodes de paiement supportées par votre application,
  • informations supplémentaires que vous souhaitez obtenir dans la réponse.

Définissez les méthodes de paiement supportées en valorisant la propriété allowedPaymentMethods avec le résultat de la fonction getCardPaymentMethod (voir chapitre Transmettre les méthodes de paiement supportées).

Définissez le détail de la transaction dans l'objet TransactionInfo:

propriété totalPriceStatus
valeur "FINAL"
  Paramètre obligatoire lors d'un appel createPaymentDataRequest().

Sa valeur ne sera pas prise en compte pour le paiement.

   
propriété totalPrice
valeur "10.00"
  Paramètre obligatoire lors d'un appel createPaymentDataRequest().

Cependant seule la valeur transmise lors de l'appel à la méthode createPayment de l'API Webservices SOAP v5 sera prise en compte pour le paiement.

   
propriété currencyCode
valeur "EUR"
  Paramètre obligatoire lors d'un appel createPaymentDataRequest().

Cependant seule la valeur transmise lors de l'appel à la méthode createPayment de l'API Webservices SOAP v5 sera prise en compte pour le paiement.

Pour plus de détails, consultez la documentation de l'objet TransactionInfo.

Précisez les informations supplémentaires que vous souhaitez obtenir dans la réponse:

propriété billingAddressRequired
valeur true
  Rend obligatoire la saisie de l'adresse de facturation. L'adresse sélectionnée sera retournée dans la payload.

Utile si vous souhaitez proposer un checkout rapide à l'acheteur.

   
propriété emailRequired
valeur true
  Permet de transmettre l'email associé au compte Google sélectionné.
   
propriété shippingAddressRequired
valeur true
  Rend obligatoire la saisie de l'addresse de livraison. L'adresse sélectionnée par l'acheteur sera retournée dans la payload.

Utile si vous souhaitez proposer un checkout rapide à l'acheteur.

   
propriété phoneNumberRequired
valeur true
  Rend obligatoire la saisie du numéro de téléphone dans l'addresse de livraison et de facturation.

Si shippingAddressRequired ou billingAddressRequired est valorisé à true, le numéro de téléphone sera transmis dans la payload.

Utile si vous souhaitez proposer un checkout rapide à l'acheteur.

   

Pour plus de détails, consultez la documentation de l'objet PaymentDataRequest.

Extrait du code d'exemple:

private fun preparePaymentDataRequest(price: String, currency: String, gatewayMerchantId: String): PaymentDataRequest {
    val paymentDataRequestJson = getBaseRequest()
    val additionalParams = JSONObject()
    val transactionJson = JSONObject()
    transactionJson
            .put("totalPriceStatus", "FINAL")
            .put("totalPrice", price)
            .put("currencyCode", currency)
    additionalParams.put("billingAddressRequired", true)
    additionalParams
            .put("billingAddressParameters", JSONObject()
            .put("format", "FULL").put("phoneNumberRequired", false))
    paymentDataRequestJson
            .put("allowedPaymentMethods", JSONArray()
            .put(getCardPaymentMethod(additionalParams, getTokenizationSpecification(gatewayMerchantId))))

    paymentDataRequestJson.put("shippingAddressRequired", true)
    paymentDataRequestJson.put("emailRequired", true)
    paymentDataRequestJson.put("transactionInfo", transactionJson)
    return PaymentDataRequest.fromJson(paymentDataRequestJson.toString())
}