我正在改进 PayPal IPN 侦听器。我已阅读规格,但仍有一些悬而未决的问题。众所周知,如果您收到通知,您必须在第二个通道上连接到 PayPal,向他们发送收到的数据,PayPal 将回答“已验证”或“无效”。在某些情况下,PayPal 会重新发送通知,直到收到我们的答复。PayPal 有一个名为“IPN History”的调试页面。
我至少有一次收到无效消息,而“IPN 历史记录”显示正常状态“已发送”。
问题 1:PayPal 不检查我是否在第二个通道上连接到他们来确定消息是否正确发送,这是否正确?
Q2:我假设 PayPal 只查看从我们这里收到的 http 状态标头(例如“200 OK”)来决定在“IPN 历史记录”中显示什么状态。它是否正确?
Q3:我还假设 PayPal 仅查看 http 状态标头来决定是否必须重新发送消息。那是对的吗?
我收到的无效 PayPal 付款现在在 PayPal 中显示为正常付款。但随后并没有进一步的通知。
问题 4:我认为此行为是 PayPal 内部问题,正确的方法是告诉 PayPal 有错误,以便它在 5 分钟后发送另一个通知。那是对的吗?
问题 5:如果是这样,如果我收到 INVALID,我必须将什么 http 状态标头发送回 PayPal,以确保 PayPal 稍后重新发送通知?
谢谢!
我正在PayPal 中设置付款数据传输 (PDT)。
tx
来自 URL的参数。unique PDT token
来自 PayPal 个人资料设置页面。文档说下一步(图中的第 3 步)是:
您的返回 URL 网页包含一个 HTML POST 表单,用于检索交易 ID 并将交易 ID 和您的唯一 PDT 令牌发送到 PayPal。
没关系。
但是,我将这些数据发布到哪个 PayPal URL 以检索交易详细信息?我使用什么形式/参数名称?
我已经阅读了PayPal 文档站点上的多个页面,但找不到任何对此 PDT URL 的引用!?
这似乎是一组很幼稚的问题,但我真的找不到。
问题 1)我正在尝试为 PayPal 实施 IPN。我想输入侦听器 URL,但找不到位置。我在互联网上搜索过,所有的回答都很旧。我可以把它放在哪里?
问题 2)我正在使用以下代码,我想传递自定义数据,以便当 IPN 向我发送回交易消息时,它会包含该自定义数据。我需要传递 2 个自定义数据。下面的代码怎么可能呢?我真的在文档中也找不到这个。
<template>
<div id="paypal-button-container"></div>
</template>
<script>
export default {
props: ["amount"],
mounted() {
let self = this;
paypal
.Buttons({
createOrder: function(data, actions) {
// Set up the transaction
return actions.order.create({
purchase_units: [
{
amount: {
value: self.amount,
}
}
],
});
},
onApprove: function(data, actions) {
// Capture the funds from the transaction
return actions.order.capture().then(function(details) {
// Show a success message to your buyer
console.log(details);
self.$emit("paypalPaySuccess", …
Run Code Online (Sandbox Code Playgroud) 我对Paypal的IPN有疑问.创建订阅配置文件(定期付款配置文件)后,在IPN上收到"recurring_payment_profile_created"类型的确认.在继续付款后,在IPN上收到"recurring_payment"类型的确认.问题是我应该如何确定付款(recurring_payment)属于唯一(特定)配置文件.
谢谢.
我使用贝宝按钮生成器创建了一个立即付款按钮.
该按钮有2个字段,然后您立即按下付款.
但是,如果您将这些字段留空,您仍然可以付款
我想让这些字段"必填",如果用户没有填写这些字段,他应该无法付款.怎么样?
该按钮不在paypal上托管,但按钮保护为ON.我希望按钮被加密.
编辑
我试过javascript表单验证,没有用,有什么帮助吗?
这是脚本
<form
action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<table>
<tr><td><input type="hidden" name="on0" value="first form">form 1</td></tr><tr><td><input type="text" name="os0" maxlength="200"></td></tr>
<tr><td><input type="hidden" name="on1" value="2nd form">2nd form</td></tr><tr><td><input type="text" name="os1" maxlength="200"></td></tr>
</table>
<input type="hidden" name="encrypted" value=" encryption here ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
Run Code Online (Sandbox Code Playgroud)
有什么帮助需要这些领域吗?我会给你3张投票,因为我有3个stackoverflow帐户和一个接受的答案 - 这是我能做的最少:)
PS
我无法进行表单验证工作,所以我试图隐藏提交按钮,除非表单已填写,到目前为止,这不起作用.
更新 - @Last Rose Studios
我尝试了很多验证方法,最后我使用了我朋友的联系表格验证lol
validation.js
function has_id(id){try{var tmp=document.getElementById(id).value;}catch(e){return …
Run Code Online (Sandbox Code Playgroud) 我正在使用Paypal"订阅"按钮.我有一个IPN处理程序,总的来说我觉得我已经弄明白了.我的最后一个问题是,显然没有好方法来测试定期付款(除了等待周期发生).这个问题在这里讨论:[问题]:测试Paypal订阅IPN
我真的不需要测试这种定期付款,但我确实需要知道每个定期付款是否都有自己的txn_id,或者订阅中的每笔付款是否共享相同的ID.
谢谢!
我的IPN URL是http://:85 /它有一个自定义端口.这个网址工作正常,但paypal总是在模拟器上给我错误,而不是在付款时调用我的IPN.
会导致这个问题的原因是什么?
在PayPal(沙盒)中,我定义了一个日语用户,其名字和姓氏带有日文字符.
但是,我收到的IPN通知使用charset = windows-1252进行编码.实际上,这是从Paypal收到的HTTP请求中的参数之一.
我想用他/她的名字问候用户,但由于我似乎收到的不是Unicode,我会发送垃圾字符而不是付款人姓名.
有没有办法让Paypal的IPN通知以Unicode发送给我的监听器?
我使用paypal订阅(托管按钮)
auto-return for Website Payments is on
Payment Data Transfer is on
success, fail and notify url are different
extra params for button are:
rm=2
notify_url=<url>
sra=1
rest in PayPal is default.
Run Code Online (Sandbox Code Playgroud)
所有在pro和sandbox中都有效
但来自IPN的POST请求每次都带有空数据.
我忘记了什么吗?
请确认或拒绝您的IPN上的PayPal问题.
多年来我一直在使用paypal按钮,使用IPN处理付款.
其中一些按钮几天前停止工作.它们会产生错误,如下图所示:( 截图)
这些按钮是使用Paypal在线工具创建的,他们的HTML代码是指在paypal网站上编辑的一些paypal UR3ZPGJAT7M数据(这应该是正确的吗?)(注意:UR3ZPGJAT7M是一个编辑过的值).
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="UR3ZPGJAT7M">
<table>
<tr><td><input type="hidden" name="on0" value="Expédition">Expédition</td></tr><tr><td><select name="os0">
<option value="Expédition en France">Expédition en France €25,00 EUR</option>
<option value="Expédition en Europe">Expédition en Europe €27,00 EUR</option>
<option value="Reste du Monde">Reste du Monde €30,00 EUR</option>
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal, le réflexe sécurité pour payer en ligne">
<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
</form>
Run Code Online (Sandbox Code Playgroud)
从屏幕截图中可以看出,反馈网址包含以下查询字符串:"&code = AMOUNT_ERROR"
我试图改变定义UR3ZPGJAT7M代码的paypal在线按钮编辑表单中的金额值.我尝试了小数分隔符的各种值: