「直接送信」ワークフロー ( https://developers.dwolla.com/dev/pages/gateway#submit-directly ) を介して、カスタム ASPX/C# ベースの Web サイトに Dwolla のオフサイト ゲートウェイを利用しようとしています。
彼らが提供するスクリプトを使用して、Dwolla ボタンを ASPX ページに正常に追加することができました。
<script
src="https://www.dwolla.com/scripts/button.min.js" class="dwolla_button" type="text/javascript"
data-key="ConsumerKeyObtainedFromDwolla"
data-redirect="RedirectPage.aspx"
data-label="Dwolla"
data-name="MyNameGoesHere"
data-description="MyDescriptionGoesHere"
data-amount="123.45"
data-shipping="0"
data-tax="0"
data-guest-checkout="true"
data-type="freetype"
>
</script>
ただし、同じページに PayPal ボタンも含める必要があり、スクリプト入力タグが競合することは望ましくありません。また、変数 (コンシューマー キー、タイムスタンプ、注文 ID の HMAC-SHA1 16 進数ハッシュなど) を簡単に入力し、javascript を使用せずにいくつかの計算を実行したいと考えています。したがって、私の目標は、ページの C# コード ビハインドでこれをすべて行うことです。
最初のステップは、単純に PayPal スクリプトからフォーム タグを削除し、PayPal の PostBackURL を持つ ASP ボタンを追加することでした。これでうまくいったので、さらに ASPX から PayPal セクションを完全にリファクタリングし、C# コードを実装して、PayPal スクリプトの内容に基づいてリダイレクト URL を作成しました。
string txtRedirectURL = "";
txtRedirectURL += "https://www.paypal.com/cgi-bin/webscr?&cmd=_xclick";
txtRedirectURL += "&business=A1B2C3D4";
txtRedirectURL += "&lc=US";
...
txtRedirectURL += "&item_name=abcdefg";
txtRedirectURL += "&amount=123.45";
txtRedirectURL += "¤cy_code=USD";
Response.Redirect(txtRedirectURL);
これはうまく機能したので、Dwolla が使用するスクリプトでも同じことをしたいと思っていました (上記の文書を参照)。残念ながら、このアプローチの成功は証明されていません。私が試した最初のオプションは、Dwolla スクリプトのデータ フィールドに基づいて PayPal リダイレクトを模倣することでした。
string txtRedirectURL = "";
txtRedirectURL += "https://www.dwolla.com/payment/pay?";
txtRedirectURL += "key=ConsumerKeyObtainedFromDwolla";
txtRedirectURL += "&label=Dwolla";
txtRedirectURL += "&name=MyNameGoesHere";
txtRedirectURL += "&description=MyDescriptionGoesHere";
txtRedirectURL += "&amount=123.45";
txtRedirectURL += "&shipping=0.00";
txtRedirectURL += "&tax=0.00";
Response.Redirect(txtRedirectURL);
これは確かに Dwolla のhttps://www.dwolla.com/payment/payページに誘導しようとしますが、最終的には Dwolla の 404 ページ (泣いている青いコアラ) に誘導されます。また、次の行のさまざまなバージョンを追加しましたが、うまくいきませんでした。
txtRedirectURL += "&signature=HMACSHA1Hash;
txtRedirectURL += "&test=true";
txtRedirectURL += "&destinationid=UserIDObtainedFromDwolla";
txtRedirectURL += "&orderid=999;
txtRedirectURL += "×tamp=" + txtTimeStamp;
txtRedirectURL += "&allowFundingSources=true";
私の仮定は、次のいずれかです。
URL の何かが問題を引き起こし、Dwolla のエラー処理によって、エラーが表示される代わりに 404 ページが表示されます (ボタンをいじったときに見たように)
button.min.js スクリプトは、C# で再作成する必要がある奇妙なことを行っています。私はそれをレビューしましたが、その欠けているステップが何であるかについて頭も尻尾も作ることができません.
また、C# 内からスクリプトを実行するための、より直接的なアプローチも試みました。
string dwollaScript = "<script
src="https://www.dwolla.com/scripts/button.min.js" class="dwolla_button" type="text/javascript"
data-key="ConsumerKeyObtainedFromDwolla"
data-redirect="RedirectPage.aspx"
data-label="Dwolla"
data-name="MyNameGoesHere"
data-description="MyDescriptionGoesHere"
data-amount="123.45"
data-shipping="0"
data-tax="0"
data-guest-checkout="true"
data-type="freetype"
>
</script>";
System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "123", dwollaScript.ToString(), false);
ボタンのクリックにバインドすると、これは正常に起動しますが、ポストバックすると、ページに Dwolla ボタンが表示されるだけです。通常の Dwolla ボタンのように Dwolla に移動しません。
何かご意見は?