Create Checkout Order
3 min
This API creates a payin order to enable users to make checkout transactions. It accepts amount and currency details. On creating an order a dynamic token is returned from this api which is required to be passed to Pay3 Android SDK
This api requires access token that can be generated using Access Token API.
Create Checkout Order
Create an order with payin details from application's backend
POST
https://your-hostname.pay3.app/v1/client/checkout/create-order
curl --location 'https://your-hostname.pay3.app/v1/client/checkout/create-order' \
--header 'signature': "generated-signature"\
--header 'access-token' : "dynamic-access-token" \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"requestId":"input-request-id",
"currencyId":"currency-id",
"fiatAmount":"input-amount",
"clientId":"your-client-id",
"paymentMethodId":"your-paymentMethod-id",
"email:"user-email",
}'
Signature Generation
The request for creating checkout order requires a header signature. This can be generated using following code snippet.
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
class Signature {
fun getPay3Signature(secretKey: String, requestId: String, fiatAmount: String, currencyId: String): String {
return try {
val stringToSign = "currencyId=$currencyId&fiatAmount=$fiatAmount&requestId=$requestId"
val mac = Mac.getInstance("HmacSHA256")
val secretKeySpec = SecretKeySpec(secretKey.toByteArray(), "HmacSHA256")
mac.init(secretKeySpec)
val hash = mac.doFinal(stringToSign.toByteArray(Charsets.UTF_8))
Base64.getEncoder().encodeToString(hash)
} catch (e: Exception) {
throw RuntimeException("Error generating signature", e)
}
}
}