1 年以上にわたって、BMCreateButton NVP API を使用して購読ボタンを生成する同じコードを実行してきました。何らかの理由で、これは最近機能しなくなりました。ColdFusion で記述した現在の HTTP リクエストを次に示します。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 ドキュメントに明確に対応しています。
ドキュメントには、これらの値が必須であることが明確に記載されています。これは以前は必要ありませんでした。何らかの理由でオプションを指定していたという事実は、これを上書きしたと思います。しかし、もはやそうではありません。そこで、A3、P3、および T3 HTML 変数を追加しようとしたところ、次のエラーが表示されました。その時点で、オプション フォームフィールドを削除しようとしましたが、予想どおり、プルダウン メニューなしでサブスクライブ ボタンを生成できました。続いて、HTML 変数 on0、os0、option_select0、および option_amount0 を使用してオプション フィールドを作成しようとしましたが、これは効果がなく、プルダウン メニューのない同じボタンが表示されました。
では、BMCreateButton NVP API を使用して、オプション プルダウン メニュー付きの [購読] ボタンをどのように生成するのでしょうか? 問題なくボタン マネージャーを使用して作成しようとしましたが、カスタム フィールドを渡す必要があり、暗号化されたボタンを使用して作成したいと考えています。現在、上記の例では、デバッグのためだけに CLEARTEXT を使用しています。これはもう可能ですか?