First, integrated addresses embed an 8 byte (64 bit, 16 hex chars), payment ID. Monero started with an older format of payment ID which allowed for 32 bytes, but this was deprecated in favor of shorter 8 byte encrypted payment IDs, as used by integrated addresses.
Second, when using the RPC method transfer, if you are transferring to an integrated address, you would not supply the optional parameter
payment_id as this is already set in the integrated address.
I have 16 character string and I want 64 character strings, in this case what should I do?
I strongly recommend against this. Payment IDs in general are being deprecated in favor of subaddresses. If you must use a payment ID right now, use the short payment IDs (e.g. the type embedded in integrated addresses), therefore limited to 8 bytes. There really is no good reason for any new implementations to use payment IDs.