我正在将 PayPal 添加到我的结帐表单中。我没有使用 API,而是使用了一个表单脚本。但是,付款后我没有从 PayPal 获得响应变量。我想确认我收到的金额,看看用户是否支付了他应该支付的金额。
因为我没有收到来自 paypal 的响应变量,所以我看不到用户是否确实支付了足够的钱。难道我做错了什么?我看到很多人对此有疑问,但没有人有答案。
我的表单:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" >
<input type="hidden" name="business" value="seller@seller.com">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="upload" value="1" />
<input type="hidden" name="item_name" value="<?php echo $_amount_credits ?> credits">
<input type="hidden" name="item_number" value="<?php echo $_invoice_id ?>">
<input type="hidden" name="amount" value="<?php echo $_total_amount ?>">
<input type="hidden" name="lc" value="NL">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="cbt" value="Go back to http://domain.com">
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="return" value="http://domain.com/index.php?payment=success&transaction_id=<?php echo $_GET['tx'] ?>"/>
<input type="hidden" name="cancel_return" value="http://domain.com/index.php?payment=canceled&transaction_id=<?php echo $_GET['tx'] ?>"/>
<input type="submit" class="button blue _quick_order_overview _payment_paypal" name="submit" value="Pay via PayPal">
</form>
最佳答案
你应该使用 Instant Payment Notification (IPN)对于这种事情。在 GitHub/Packagist 等平台上有很多很好的模板。
每当您的 PayPal 帐户发生交易时,IPN 都会将交易数据发布到您在服务器上设置的监听器脚本。这将用于付款、退款、争议、清除电子支票等。您可以根据 IPN 发送给您的不同 txn_type 自动执行各种任务。
关于php - Paypal 不返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27323403/