PayPal IPN 间歇性地不通过表单提交将购物车/信息发布到 PayPal
Posted
技术标签:
【中文标题】PayPal IPN 间歇性地不通过表单提交将购物车/信息发布到 PayPal【英文标题】:PayPal IPN intermittently not POSTing cart/info to PayPal from form submit 【发布时间】:2021-04-02 13:32:06 【问题描述】:我遇到了一个奇怪的问题。这是非常断断续续的。它几乎与 iPhone 和 Safari 有关。而且,直到今天,我都无法复制它。每月可能发生几笔交易。
问题是当客户单击 PayPal 按钮选项通过 PayPal 付款时。这是使用 IPN 表单发布将购物车和交易信息发布到 PayPal。一个新窗口打开了,他们看到了 PayPal 的页面……就好像他们刚刚输入了 URL。没有订单等信息。
正如我所提到的,这是非常不一致和断断续续的。 99% 的用户会看到交易总额,他们可以结帐等。如果我收到有关此问题的电子邮件,我会要求他们尝试不同的浏览器、chrome 等。它通常可以工作。似乎它通常是 iPhone 和 Safari 浏览器。有时用旧手机。有时用新手机等。
这与从 PayPal 回发交易信息无关,而是将购物车信息发布到 PayPal。
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<?
$count = 1;
$session->setValue('sInvoice', strtoupper(substr(md5(uniqid(rand(),1)),0,8)));
for($val = 0; $val < sizeof($Cart); $val++)
$productID = $Cart[$val]['ProductID'];
$productTitle = $Cart[$val]['ProductLineDescription'];
$productPrice = $Cart[$val]['UnitPrice'];
$quantity = $Cart[$val]['Quantity'];
$calcPrice = $Cart[$val]['LineItemPrice'];
$shipping = number_format($session->getValue("ShippingTotal"), 2, '.', ',');
?>
<input type="hidden" name="item_name_<?=$count?>" value="<?=specialchars($productTitle)?>" />
<input type="hidden" name="amount_<?=$count?>" value='<?=number_format($productPrice, 2, '.', ',')?>' />
<input type="hidden" name="quantity_<?=$count?>" value="<?=$quantity?>" />
<input type='hidden' name='item_number_<?=$count?>' value='' />
<?
$count++;
?>
<input type="hidden" name="shipping_1" value='<?=$shipping?>' />
<input type="hidden" name="no_shipping" value="2" />
<input type="image" id="PayPalButton" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" name="submit" class="wp_cart_checkout_button" />
<input type="hidden" name="return" value="https://www.example.com/thankyou/" />
<input type="hidden" name="notify_url" value="https://www.example.com/paypal/" />
<input type="hidden" name="business" value="paypal@example.com" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="cmd" value="_cart" />
<input type="hidden" name="upload" value="1" />
<input type="hidden" name="rm" value="2" />
<input type="hidden" name="charset" value="utf-8" />
<input type="hidden" name="mrb" value="3FWGC6LFTMTUG" />
<input type="hidden" name="custom" value="cid=<?=$xCartID?>" />
</form>
当用户遇到问题时,我已经在他们的购物车中记录了商品和属性,并尝试了我的结果,但始终无法重现问题。单击 PayPal 按钮的行为符合预期。
有什么想法吗? TIA
【问题讨论】:
【参考方案1】:我可以告诉你我会做什么,即切换到不依赖过时的 HTML 表单帖子的当前集成方法。这是客户端专用的:https://developer.paypal.com/demo/checkout/#/pattern/client
v2/checkout/orders purchase_unit 请求对象是documented here
【讨论】:
是的!我喜欢这个升级选项。感谢您的信息,宁愿走这条路。我很感激。以上是关于PayPal IPN 间歇性地不通过表单提交将购物车/信息发布到 PayPal的主要内容,如果未能解决你的问题,请参考以下文章