Implement your own payment provider