Create Order with .NET SDK
Request
| Parameter Name | Data Type | Mandatory (Yes/No) | Description |
merchantOrderId | String | Yes | Unique order ID generated by you |
amount | Long | Yes | Order amount in paisa |
redirectUrl | String | Yes | URL to which the user will be redirected after the payment (success or failure) |
Sample Request
public async Task<IActionResult> CustomSdkOrder()
{
var merchantOrderID = $"SDK_Order_{DateTime.UtcNow:yyyyMMddHHmmssfff}";
var metaInfo = MetaInfo.Builder()
.SetUdf1("free-text-value-1")
.SetUdf2("free-text-value-2")
.SetUdf3("free-text-value-3")
.SetUdf4("free-text-value-4")
.SetUdf5("free-text-value-5")
.SetUdf6("free-text-value-6")
.SetUdf7("free-text-value-7")
.SetUdf8("free-text-value-8")
.SetUdf9("free-text-value-9")
.SetUdf10("free-text-value-10")
.SetUdf11("ref_11")
.SetUdf12("tag-12")
.SetUdf13("user@13")
.SetUdf14("code.14")
.SetUdf15("val+15")
.Build();
var sdkOrderRequest = CreateSdkOrderRequest.CustomCheckoutBuilder()
.SetMerchantOrderId(merchantOrderID)
.SetAmount(100)
.SetExpireAfter(300)
.SetMetaInfo(metaInfo)
.Build();
try
{
var response = await _customCheckoutClient.CreateSdkOrder(sdkOrderRequest);
return Ok(response); // Extract response.Token for mobile SDK
}
catch (Exception ex)
{
_logger.LogError(ex, "Custom CreateSdkOrder API Failed");
return StatusCode(500, new { message = ex.Message });
}
Response
The function returns a CreateOrderResponse object with the following properties:
Parameters
| Parameter Name | Data Type | Description |
orderId | String | Order ID generated by PhonePe PG. |
state | String | State of the Order. Initially it will be PENDING. |
expireAt | Long | Expiry time in epoch. |
token | String | Token used by your app to initiate order. |