API do carrinho de compras para qualquer gateway de pagamento? (PayPal, pelo menos, obrigatório)

Eu estou tentando encontrar uma API baseada em java que envolve os detalhes do processamento de uma transação de cartão de crédito ou compra via PayPal no mínimo, e outros gateways como um plus em uma forma IPN (ou seja, nenhum produto necessário, apenas um valor de fatura)

Como uma simplificação, acho que deveria ser capaz de fazer algo como o seguinte pseudocódigo:

<code>shoppingApi.postTransaction("paypal", amount, currency, invoiceId, purchaseDescription)
</code>

e mais tarde, durante uma tarefa agendada ou na notificação de um URL de IPN:

<code>completedPayments = shoppingApi.getUnprocessedCompletedPayments();
for (Payment payment: completedPayments)
{
  // my code to process a successful payment.
}
</code>

e então eu processaria as compras.

Eu sei que há toneladas de carrinhos de compras que fazem isso, mas pelo que vi, todos querem que você coloque seus produtos em seus sistemas, o que não funciona para mim. Meus produtos estão em um sistema de terceiros e eu só quero processar um pagamento. Isso é tudo.

E nenhum carrinho que conheço expõe uma API simples como a que estou sugerindo acima. Eu não me importo com o tipo de pagamento que meus usuários usam, apenas quero saber se eles foram concluídos. Eu sei que o Shopify.com tem uma API REST que faz algo assim, mas não é como o IPN (quer seus produtos em seu sistema).

Agradecemos antecipadamente por qualquer sugestão!

EDITAR: Eu sei, é claro, que haveria outros status que eu precisaria examinar, como "pendente", etc, mas que seria simplesmente outra chamada simples da API, como shoppingApi.getPendingPayments (). Se a API fizesse as 2 chamadas acima, eu ficaria muito feliz ;-)

EDIT 2: Eu prefiro opensource, mas estou totalmente aberto ao comercial se é uma taxa fixa, pode ser testado até certo ponto, e é razoavelmente maduro / respeitável

EDITAR 3 - PRINCIPAL NOTA: Eu me sinto confiante de que tal biblioteca deveria existir. Se isso é ou não uma outra questão. Então, para ser claro, eu realmente gostaria de ver respostas "sim, usar esta biblioteca", não "NÃO", isso não pode ser feito, como eu tenho% 99.999 certeza de que isso pode ser feito ;-) Obrigado antecipadamente !

questionAnswers(6)

yourAnswerToTheQuestion