As you need to decrypt, there is always a chance that encryption keys will leak and you will lose everything. This way you will never get absolute security, but you can make it more difficult to access data.
No one but you can judge what level of security (or ambiguity) you should have. This is most likely a function of database size, visibility, etc.
For leaks, unfortunately, you have to assume that everything will leak sooner or later (for example, using brute force with weak passwords), you did not win too much when you left.
Given the latest scandals of credit card leakage - the worst of them had a 3-digit (CVV) number stored with a regular credit card number, which credit card companies explicitly forbid (why would you always have to return it again if someone has your credit card file)
If you do not want to take responsibility for the storage and processing of such data, a good way to go is using the external payment service - let them process it and just say that the payment has been processed, you will have to pay them for your services, but you will also have to pay for implementing your own decision and risk.
source share