Paypal自适应支付API的问题

Paypal自适应支付API的问题,paypal,coldfusion,paypal-ipn,paypal-sandbox,paypal-adaptive-payments,Paypal,Coldfusion,Paypal Ipn,Paypal Sandbox,Paypal Adaptive Payments,我在链接支付API方面遇到了问题,该API仍在开发中 为沙盒说话:我已经读到,出于某种原因,PayKey(Paypal为交易创建的唯一标识符)没有传递回交易。当然,在我的测试中,我得到了大部分数据(比如买家的电子邮件地址、姓名、地址信息),但我没有得到回扣 这个字段不仅仅是空白的,它根本不存在。我正在对表单范围执行最基本的循环,并将结果写入一个文件(显然,我不会在生产中执行如此基本的操作,这只是为了了解我得到的数据) 所以我想我应该传递自己的唯一标识符,将其存储在数据库中,然后通过自定义变量传递

我在链接支付API方面遇到了问题,该API仍在开发中

为沙盒说话:我已经读到,出于某种原因,
PayKey
(Paypal为交易创建的唯一标识符)没有传递回交易。当然,在我的测试中,我得到了大部分数据(比如买家的电子邮件地址、姓名、地址信息),但我没有得到回扣

这个字段不仅仅是空白的,它根本不存在。我正在对
表单
范围执行最基本的循环,并将结果写入一个文件(显然,我不会在生产中执行如此基本的操作,这只是为了了解我得到的数据)

所以我想我应该传递自己的唯一标识符,将其存储在数据库中,然后通过自定义变量传递。奇怪的是,(自定义字段)每次都返回空白

最后,我想我应该把它作为
IpnNotificationUrl
的url的一部分传递,就像
receipt.cfm?myKey=SOMEVERYRANDOMLYGENERATEDKEYHERE
一样,但是当我传递
IpnNotificationUrl
时,指定的url不会被ping,无论我的沙箱帐户中是否有单独的
IPN通知url
设置。每次都会正确ping帐户中指定的URL

这两个文件都是相同的,只是它们写入不同名称的文本文件。两个文件都没有错误

<cfoutput><cfsavecontent variable="buildfile">--- Break ---
    <cfloop list="#structkeylist(form)#" index="i">
    #i#: #form[i]#
    </cfloop>
</cfsavecontent></cfoutput>

<cffile file="#expandpath(".")#\dump_new.txt" action="write" output="#buildfile#" />

我想你会迷失在自适应支付交易实际上对应用程序和接收方都有单独的IPN这一事实中。如果您同时担任这两个角色,您将获得两个独立的IPN

这里包含的是特定于接收方/事务的IPN。这将不包括一个支付密钥,而是一个事务ID,就像你得到的一样。您会注意到根本没有PayKey参数(与包含它相反,它是空的,就像您最初所说的那样)

如果你想处理特定于应用程序的数据,包括支付密钥,你需要从特定于应用程序的IPN中进行处理,这就是我为我的示例将你链接到的IPN。您会注意到它包含的参数与这里得到的参数大不相同

在我的示例中,我确实是应用程序的所有者和事务的接收者,因此我同时获得了2个IPN,但当然我的IPN脚本被配置为相应地处理它们

同样,我有一个应用程序,其中包括特定于应用程序的数据,包括支付密钥。然后我还得到了一个,包括你们在这里显示的数据,但不包括支付密钥

你需要确保你正确地处理了这两个问题。支付请求中的IPNNotificationURL参数将触发特定于应用程序的IPN,其中接收方帐户中的IPN配置将触发特定于交易的IPN


我看到您在请求中包含了IPNNotificationURL的值,但您得到的数据并不是这样。您需要检查您的web服务器日志,因为看起来其中一个一定是由于某种原因失败了,但另一个却成功了

我从来没有经历过一个空白的工资单回来。您需要将PayKey重定向到PayPal,因此如果它为空,则根本无法工作。你能为你的付费电话提供原始的API请求和响应吗?我意识到这看起来有多么混乱,我在帖子中附加了这样一条评论:为了澄清,Paykey是从这项服务回来的,这是我如何生成将用户发送到paypal的链接的。Paykey根本不会传递到我的IPN,尽管其他事务数据会传递。我只是在包含IPN的服务器上运行了一个测试Pay请求,我在IPN详细信息中很好地获得了Paykey。您可以看到的示例,其中包括预期的PayKey。你能提供你得到的IPN数据的原始转储吗?@AndrewAngell我刚刚编辑了一个完整的转储,我唯一的编辑是省略特定信息,并格式化cold fusion通过任何形式提交生成的FieldName项,使其不超过六英里宽。谢谢你的帮助。在您提到上述内容之前,我还没有看到有人提到特定于应用程序的IPN。一个在工作,另一个不在(正如你所说的),这看起来确实很奇怪。谢谢你给我指出了正确的方向。我确实解决了我的问题,谢谢你的建议,但我想说的是,当我研究其他与paypal相关的事情时,我在很多地方找到了你的名字,比如寻找GetVerifiedStatus的信息,我找到了php api示例调用。非常感谢。哈,是的,我是个贝宝极客。这个类库非常有用,我今天刚刚发布了一个非常重要的更新,所以请确保您拥有最新版本。
    <cfinvoke component="svc.adaptivepayments" method="payRequest" returnvariable="response">
        <cfinvokeargument name="returnURL" value="#request.serverURL#/success.cfm">
        <cfinvokeargument name="cancelURL" value="#request.serverURL#/cancel.cfm">
        <cfinvokeargument name="ipnNotificationUrl" value="http://myurl/taction/pp_rect2.cfm">
        <cfinvokeargument name="senderEmail" value="">
        <cfinvokeargument name="custom" value="test data">
        <cfinvokeargument name="receiverAmount" value="#ArrayToList(pp_amounts)#">
        <cfinvokeargument name="receiverEmail" value="#ArrayToList(pp_emails)#">
        <cfinvokeargument name="receiverPrimary" value="true,false,false,false,false,false">
        <cfinvokeargument name="feesPayer" value="PRIMARYRECEIVER">
        <cfinvokeargument name="receiverPaymentType" value="DIGITALGOODS,DIGITALGOODS,DIGITALGOODS,DIGITALGOODS,DIGITALGOODS,DIGITALGOODS">
        <cfinvokeargument name="actionType" value="PAY">
        <cfinvokeargument name="currencyCode" value="USD">
    </cfinvoke>
    payer_email: redacted

    charset: windows-1252

    item_name: 

    payment_gross: 10.00

    payer_id: A62WKW8N3YDYU

    transaction_subject: 

    item_number: 

    payment_status: Completed

    payment_fee: 0.55

    notify_version: 3.8

    verify_sign: A.CSYz4u5IILQm5wM0J0JbJiIcEuAHODNEgw.2k7ZMYT31eXFO6G0R1o

    mc_currency: USD

    quantity: 0

    residence_country: US

    tax: 0.00

    first_name: John

    receiver_email: redacted

    last_name: Blow

    mc_fee: 0.55

    ipn_track_id: dd4151b653ead

    payer_status: verified

    custom: 

    fieldnames: payer_email,charset,item_name,payment_gross,payer_id,transaction_subject,
    item_number,payment_status,payment_fee,notify_version,verify_sign,
    mc_currency,quantity,residence_country,tax,first_name,receiver_email,
    last_name,mc_fee,ipn_track_id,payer_status,custom,mc_gross,test_ipn,
    business,txn_id,receiver_id,txn_type,payment_type,payment_date,protection_eligibility

    mc_gross: 10.00

    test_ipn: 1

    business: redacted

    txn_id: 71N09598H1922352W

    receiver_id: VBETUFDEQL5BC

    txn_type: web_accept

    payment_type: instant

    payment_date: 12:53:10 Nov 04, 2014 PST

    protection_eligibility: Ineligible