The following will cause a signature mismatch or a payment to fail:
- This is most likely caused if you generated the MD5 hashed string with the variables in the wrong order.
- A required field is missing.
- A field is greater than the allowable character length.
- Any of the fields containing excess or invalid characters.
- The parameter string has been URLencoded incorrectly. The resultant URLencoding must be in uppercase (eg. http%3A%2F%2F) and not lower case like http%3a%2f%2f, and spaces encoded as ‘+’.
- The parameter string has not been trimmed of white spaces on the ends.
- The passphrase, if used, must be identical on your PayFast account as well as the site, and may consist only of letters, numbers and -_/.
Should you wish to set up recurring billing, then you will need to have a passphrase set and recurring billing enabled on your account in order to prevent the signature mismatch error. - You will need to ensure that the MD5 hash characters are in lower case.