PayPal ExpressCheckout отсутствует столбец итого - PullRequest
0 голосов
/ 15 сентября 2011

Почему я пропускаю сумму на странице оформления заказа?

Missing Totals

Извинения.

Поскольку мой код работает, потому что он действительно попал в PayPal и имеет все поля правильно. Я не думал, что это было необходимо опубликовать код. Я подумал, что можно ответить просто: «вы пропустили переменную XXXX в своем сообщении в PayPal».

Но, поскольку это StackOverflow, требуется код.

Это COLDFUSION (да, заглавные буквы, потому что люди думают, что это мертвый / умирающий язык).

<cffunction name="expressCheckout" access="remote" returnformat="JSON" output="false" description="Processes PayPal Subscription">
    <cfargument name="L_BILLINGAGREEMENTDESCRIPTION0" type="string" required="yes" />
    <cfargument name="L_BILLINGTYPE0" type="string" required="yes" />
    <cfargument name="AMT" type="numeric" required="yes" />

    <cfset var username = "wpp_1306278086_biz_api1.blahblah.com">
    <cfset var password = "1306278555">
    <cfset var signature = "someSig">
    <cfset var serverURL = "https://api-3t.sandbox.paypal.com/nvp">
    <cfset var version = "65.1">

    <cfset requestData = StructNew()>
    <cfset requestData.USER = "#USERNAME#">
    <cfset requestData.PWD = "#PASSWORD#">
    <cfset requestData.SIGNATURE = "#SIGNATURE#">
    <cfset requestData.SUBJECT = "">
    <cfset requestData.VERSION = "#version#">
    <cfset requestData.METHOD = "SetExpressCheckout">
    <cfset requestData.AMT = "#arguments.AMT#">
    <cfset requestData.DESC = "#arguments.L_BILLINGAGREEMENTDESCRIPTION0#">
    <cfset requestData.CUSTOM = "#session.rfcid#">

    <cfset requestData.returnURL = "http://localhost:8500/rfc2-1/membership/payPalConfirm.cfm">
    <cfset requestData.cancelURL = "http://localhost:8500/rfc2-1/membership/creditcardform.cfm">

    <cfset payPalReturn = doHttppost(requestData, serverURL, "no")>
    <cfset payPalReturn = getNVPResponse(#URLDecode(payPalReturn)#)>

    <cfif payPalReturn.ACK EQ "Failure">
        <!--- return the error message --->
        <cfset payPalReturn.ERRORMESSAGE = #payPalReturn.L_LONGMESSAGE0#>
    </cfif>

    <cfreturn payPalReturn>

</cffunction>

Это возвращает объект json в браузер. Затем браузер отправляет мне: https://sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=SomeToken

Все хорошо, когда я добираюсь до PayPal. Просто отсутствует сумма в левом поле (как показано на схеме)

1 Ответ

0 голосов
/ 15 сентября 2011

Попробуйте добавить & useraction = зафиксировать URL-адрес перенаправления PayPal (https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-xxxxxx&useraction=commit).

Не уверен, что это работает для биллинговых соглашений, но стоит попробовать. В любом случае это будет работать для регулярных платежей.

редактирование:
На самом деле, на второй мысли; так как это соглашение о выставлении счетов, которое не по фиксированной цене (в противном случае вам не понадобится соглашение о выставлении счетов в первую очередь); это было бы предназначено. Поскольку - это не конкретная цена для отображения.

...