1

Google チェックアウトの「今すぐ購入」ボタンがあり、クリックされたときに送信する動的に作成された情報を追加したいと考えています。それ、どうやったら出来るの?

ボタンのhtmlは次のとおりです。

<form action="https://sandbox.google.com/checkout/..." id="Form1" method="post" name="..." target="_top">
<input name="item_name_1" type="hidden" value="..." />
...
<input alt="" src="https://sandbox.google.com/checkout/buttons/buy.gif?merchant_id=..." type="image" />
</form>

それで、何を追加しますか?(そして、可能であれば、ASP.Net コードを使用して実行したいと考えています。)

追加してみましonclick="Button1_Click"たが、うまくいきませんでした。

4

2 に答える 2

2

これが Google Checkout 用である場合は、Google Checkout 用の既存の.Net ライブラリの使用を検討する必要があります。

上記の提案は機能しますが、これを行う正しい (安全な) 方法は、ここに文書化されています。XML の代替手段 (署名) はこちら です。そのうちの 1 つは、安全な方法で Google に直接 FORM POST を行うことができます。

クライアント メソッドを介して送信すると、常に改ざんの影響を受けやすくなります。基本的な HTML フォームを Google に投稿することとほとんど違いはありません (セキュリティの観点から)。


更新日:

...今すぐ購入をサポートしていません...

結局のところ、「今すぐ購入」が他の「カート」送信と異なる点が 2 つあります。

  1. 画像
  2. Buy Now の単品購入(他の実装では 1 つまたは複数)。

.Net Library のこのサンプル コードを参照してください。それはあなたが必要とするすべてを与えるはずです....


更新 2 :

ライブラリについて「堅い」ものは何もありません。すべてを使用する必要はありません。すでに作成されているすべての配管を利用することもできます。

Google Checkout .Net Library を使用して、BUY NOW を実装する簡単な例

Web フォーム コード (aspx):

<p>Some ASP.net button:<br />
<asp:Button ID="Button1" runat="server" Text="BUY ME NOW" onclick="Button1_Click" /><br />

An ASP.NET Image Button using BUY NOW Image:<br />
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="https://checkout.google.com/buttons/buy.gif?merchant_id=[USE YOUR OWN MERCHANT ID]&amp;w=117&amp;h=48&amp;style=white&amp;variant=text&amp;loc=en_US" onclick="ImageButton1_Click" />

この時点で、ブラウザには次のように表示されます。

スクリーンショット Google Checkout 今すぐ購入

コード (インラインまたは分離コード):

using GCheckout.Checkout;
using GCheckout.Util;

....

protected void Button1_Click(object sender, EventArgs e)
{
    doSomething();
}

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    doSomething();
}

private void doSomething()
{
    /**
     * Use the correct Merchant ID and Key based on GCheckout.EnvironmentType
     * You cannot mix/match sandbox and production id or key
     */
    CheckoutShoppingCartRequest Req = new CheckoutShoppingCartRequest("your_production_MID", "your_production_KEY", GCheckout.EnvironmentType.Production, "USD", 20);

    /**
     * Everything from this point is a copy and paste
     * from .net libary sample code
     * http://code.google.com/p/google-checkout-dotnet-sample-code/source/browse/examples/post_cart/simple.aspx
     */
    Req.AddItem("Mars bar", "Packed with peanuts", 0.75m, 2);

    //lets make sure we can add 2 different flat rate shipping amounts
    Req.AddFlatRateShippingMethod("UPS Ground", 5);

    //Add a rule to tax all items at 7.5% for Ohio
    Req.AddStateTaxRule("OH", 7.5, true);

    GCheckoutResponse Resp = Req.Send();
    if (Resp.IsGood)
    {
        Response.Redirect(Resp.RedirectUrl, true);
    }
    else
    {
        Response.Write("Resp.ResponseXml = " + Resp.ResponseXml + "<br>");
        Response.Write("Resp.RedirectUrl = " + Resp.RedirectUrl + "<br>");
        Response.Write("Resp.IsGood = " + Resp.IsGood + "<br>");
        Response.Write("Resp.ErrorMessage = " + Resp.ErrorMessage + "<br>");
    }
}

重要

上記は、.Net ライブラリで何ができるかを示すサンプル コードです。Google Checkout 実装ポリシーに準拠するには、ImageButton 実装を使用します。これにより、Google の [今すぐ購入] ボタン (変更されていないなど) を使用していることを確認できます。

于 2012-06-20T14:59:06.710 に答える
1

ASP はサーバー側のスクリプトであるため、ページが読み込まれた後に起動することはできません。onlcick 属性は、javascript を起動するために使用されます。2 つの回避策:

  • できることは、それを別のページにリダイレクトすることです。これにより、Google チェックアウトにリダイレクトされます。
  • javascript と ajax を使用して、動的な情報を読み込み、javascript を使用して送信します
于 2012-06-20T12:03:19.643 に答える