使用BMCreateButton构建Subscribe按钮时OPTION发生了什么变化?

时间:2013-08-27 17:53:17

标签: paypal

在一年多的时间里,我一直在运行相同的代码,使用BMCreateButton NVP API生成订阅按钮。出于某种原因,这最近停止了工作。这是我当前的HTTP请求,用ColdFusion编写。 request.setup.paypal引用了一个设置结构,request.user是一个定义用户会话的对象。

<cfset buttonvars = [
    'item_name=Membership',
    'src=1',

    'currency_code=USD',
    'no_note=1',
    'no_shipping=1',

    'rm=0',
    'return=#request.setup.paypal('return')#',
    'cancel_return=#request.setup.paypal('cancel_return')#',
    'notify_url=#request.setup.paypal('notify_url')#',

    'custom=#request.user.getUserID()#'

] />

<cfhttp method="post" url="#request.setup.paypal('host')#">

    <cfhttpparam type="formfield" name="USER" value="#request.setup.paypal('user')#" />
    <cfhttpparam type="formfield" name="PWD" value="#request.setup.paypal('pwd')#" />
    <cfhttpparam type="formfield" name="SIGNATURE" value="#request.setup.paypal('signature')#" />
    <cfhttpparam type="formfield" name="VERSION" value="65.2" />

    <cfhttpparam type="formfield" name="METHOD" value="BMCreateButton" />
    <cfhttpparam type="formfield" name="BUTTONTYPE" value="SUBSCRIBE" />
    <cfhttpparam type="formfield" name="BUTTONSUBTYPE" value="SERVICES" />
    <cfhttpparam type="formfield" name="BUTTONCODE" value="CLEARTEXT" /> <!--- CLEARTEXT, ENCRYPTED --->

    <cfhttpparam type="formfield" name="OPTION0NAME" value="Membership Duration" />

    <cfhttpparam type="formfield" name="L_OPTION0SELECT0" value="Monthly Membership" />
    <cfhttpparam type="formfield" name="L_OPTION0PRICE0" value="20.00" />
    <cfhttpparam type="formfield" name="L_OPTION0BILLINGPERIOD0" value="Month" />

    <cfhttpparam type="formfield" name="L_OPTION0SELECT1" value="Annual Membership" />
    <cfhttpparam type="formfield" name="L_OPTION0PRICE1" value="200.00" />
    <cfhttpparam type="formfield" name="L_OPTION0BILLINGPERIOD1" value="Year" />


    <cfloop from="1" to="#arrayLen(buttonvars)#" index="buttonvar">
        <cfhttpparam type="formfield" name="L_BUTTONVAR#buttonvar-1#" value="#buttonvars[buttonvar]#" />
    </cfloop>

</cfhttp>

当我提出此请求时,我收到一条失败回复,说明“您必须为订阅按钮指定A3,P3和T3参数的有效值。”这显然符合API文档这里:

https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#id08A6HI00JQU

文档清楚地说明了这些值是必需的。之前没有必要这样做,因为我因为某些原因指定了选项,我认为这会超出此范围。然而,情况已不再如此。所以我试图添加A3,P3和T3 HTML变量,然后收到此错误:“您无法为订阅指定A3 / P3 / T3和选项选项。”此时,我尝试删除选项formfields并能够生成订阅按钮但没有下拉菜单,如预期的那样。我通过使用HTML变量on0,os0,option_select0和option_amount0尝试创建一个选项字段,但这没有任何效果,我看到没有下拉菜单的相同按钮。

那么如何使用BMCreateButton NVP API生成带有选项下拉菜单的“订阅”按钮?我尝试使用按钮管理器创建一个没有问题,但我需要传递一个自定义字段,并希望使用加密按钮。现在我上面的例子是使用CLEARTEXT进行调试。这可能了吗?

0 个答案:

没有答案