Esta é uma pergunta de acompanhamento para: PHP: maneira fácil de iniciar a finalização da compra no PayPal?
Portanto, meu problema é que estou especificando o URL de retorno. No entanto, depois de pagar com o PayPal, acabo em uma tela que diz:
Você acabou de concluir seu pagamento. XXXX, você acabou de concluir seu pagamento. O seu ID de transação para este pagamento é: XXXXXXXXXXXXX.
Enviaremos um email de confirmação para [email protected]. Esta transação aparecerá no seu extrato como PAYPAL.
Go to PayPal account overview
Eu preciso que ele não mostre essa tela e vá diretamente para o URL de retorno. Eu tenho:
- Defina a variável "return"
- Defina a variável "rm" como: 2 (que de acordo com o guide = " o navegador do comprador é redirecionado para o URL de retorno usando o método POST, e todas as variáveis de pagamento estão incluídas ")
De fato, aqui está toda a minha forma:
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="[email protected]" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order at The Greek Merchant:<Br />Goldfish Flock BLG<br />" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" class="submitButton">
</form>
Alguma idéia de como posso fazê-lo voltar automaticamente? Como alternativa, como recupero o resultado do pagamento no meu site para que eu possa atualizar o banco de dados? O que é IPN?
Respostas:
Você deve ativar o retorno automático em sua conta do PayPal, caso contrário, o
return
campo será ignorado .A partir da documentação (atualizada para refletir o novo layout, janeiro de 2019):
IPN é para notificação de pagamento instantâneo. Ele fornecerá informações mais confiáveis / úteis do que as obtidas no retorno automático.
A documentação para IPN está aqui: https://www.x.com/sites/default/files/ipnguide.pdf
Documentação on-line para IPN: https://developer.paypal.com/docs/classic/ipn/gs_IPN/
O procedimento geral é que você transmita um
notify_url
parâmetro com a solicitação e configure uma página que manipule e valide notificações de IPN, e o PayPal enviará solicitações para essa página para notificá-lo quando pagamentos / reembolsos / etc. ir através. Essa página do manipulador de IPN seria o local correto para atualizar o banco de dados para marcar pedidos como pagos.fonte
My Selling Tools
Etapa 4) CliqueWebsite Preferences
emSelling Online
return
campo". Qualquerreturn
parâmetro de URL que você passar para a finalização da compra será respeitado e substituirá qualquer URL de devolução automática (ou a falta dela) configurado no perfil da conta do PayPal do vendedor, mas se eles não tiverem a devolução automática ativada, o comprador precisará clicar manualmente final do checkout para ser redirecionado para esse URL, em vez de ser redirecionado automaticamente.Exemplo de formulário usando PHP para pagamentos diretos.
gentilmente percorra os campos notify_url, return, cancel_return
código de exemplo para manipular o ipn (my_ipn.php), que é solicitado pelo paypal após o pagamento.
Para mais informações sobre a criação de um IPN, consulte este link.
A imagem abaixo ajudará você a entender o processo paypal.
Para leituras adicionais, consulte os seguintes links;
Espero que isso ajude você..:)
fonte
uma maneira que eu encontrei:
tente inserir este campo no código do formulário gerado:
rm significa método de retorno ;
2 meios (poste)
Depois que o usuário compra e retorna ao URL do site, esse URL também obtém os parâmetros POST
ps se estiver usando php, tente inserir
var_dump($_POST);
seu URL de retorno (script), faça uma compra de teste e, quando retornar ao seu site, verá quais variáveis são obtidas em seu URL.fonte
Compartilhando isso como encontrei recentemente problemas semelhantes a este tópico
Por um longo tempo, meu script funcionou bem (forma básica de pagamento) e retornou as variáveis POST para minha página success.php e os dados IPN como variáveis POST também. No entanto, ultimamente, notei que a página de retorno (success.php) não estava mais recebendo vars do POST. Eu testei no Sandbox e ao vivo e tenho certeza que o PayPal mudou alguma coisa!
O notify_url ainda recebe os dados IPN corretos, permitindo que eu atualize o banco de dados, mas não consegui exibir uma mensagem de sucesso na minha página de URL de retorno (success.php).
Apesar de tentar várias combinações para ativar e desativar as opções nas preferências de pagamento do site do PayPal e IPN, tive que fazer algumas alterações no meu script para garantir que ainda possa processar uma mensagem. Consegui isso ativando o PDT e o retorno automático, depois de seguir este excelente guia .
Agora tudo funciona bem, mas o único problema é que o URL de retorno contém todas as variáveis PDT que são feias!
Você também pode achar útil
fonte
Eu acho que a idéia de definir os valores de Retorno automático, como descrito acima por Kevin, é um pouco estranha!
Diga, por exemplo, que você possui vários sites que usam a mesma conta do PayPal para lidar com seus pagamentos ou que possui várias seções em um site que executam tarefas de compra diferentes e exigem endereços de retorno diferentes quando o pagamento está completo. Se eu colocar um botão na minha página, conforme descrito acima, na seção 'Exemplo de formulário usando PHP para pagamentos diretos', você poderá ver que existe uma linha:
onde você define o valor de retorno individual. Por que ele precisa ser definido geralmente, também na seção de perfil?!?!
Além disso, como você pode definir apenas um valor na seção Perfil, significa (AFAIK) que você não pode usar o Retorno automático em um site com várias ações.
Comentários please ??
fonte
return
valores substituídos por botão , então? Para que eu possa ter diferentes páginas de retorno que ainda receberão dados da PDT?na página de checkout, procure o elemento de formulário oculto 'cancel_return':
defina o valor do elemento do formulário cancel_return para o URL ao qual você deseja retornar:
fonte