*ショッピングカートのサンプルコード(VB.NET) [#qc621072] ここで紹介しているコードは[[こちらのプロキシクラス>../../../ProxyClass]]を使用しています。 ここで紹介しているコードは[[こちらのC#のコード>../../CS/Cart]]をVB.NETに変換したものです。 Amazon.co.jpのリモートショッピングカートを操作する(商品をショッピングカートに入れる、出す、すべて出す、カート内を表示)サンプルです。ショッピングカートに商品を入れるには、TextBoxに商品のASINかOfferListingIdを入力します。ショッピングカートから出すには、CartItemIdを入力します。 #code(vbnet){{ <%@ Page Language="VB" %> <%@ Import Namespace="Amazon.jp.v20060913" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Private Const AWS_ACCESS_KEY_ID As String = "(あなたのAccessKeyID)" Private Const ASSOCIATE_TAG As String = "dobonnet-22" Private Const CART_ID_SESSION As String = "CartID" Private Const CART_HMAC_SESSION As String = "Cart_HMAC" 'カートに商品を追加 Protected Sub Button1_Click( _ ByVal sender As Object, ByVal e As EventArgs) AddToCart() End Sub 'カートから商品を削除 Protected Sub Button2_Click( _ ByVal sender As Object, ByVal e As EventArgs) RemoveFromCart() End Sub 'カーとの中身を確認 Protected Sub Button3_Click( _ ByVal sender As Object, ByVal e As EventArgs) GetCart() End Sub 'カートをクリア Protected Sub Button4_Click( _ ByVal sender As Object, ByVal e As EventArgs) ClearCart() End Sub 'カートを作成し、商品を追加 Protected Sub CreateCart() Dim ri As New CartCreateRequestItem() 'カートに追加する商品のASINを指定 ri.ASIN = TextBox1.Text If IdTypeList.SelectedValue = "OfferListingId" Then 'カートに追加する商品のOfferListingIdを指定 ri.OfferListingId = TextBox1.Text Else 'カートに追加する商品のASINを指定 ri.ASIN = TextBox1.Text End If 'カートに入れる個数を指定 ri.Quantity = "1" Dim req As New CartCreateRequest() req.Items = New CartCreateRequestItem() {ri} Dim cart As New CartCreate() 'あなたのAccess Key ID cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID 'あなたのAssociate ID cart.AssociateTag = ASSOCIATE_TAG cart.Request = New CartCreateRequest() {req} Dim aws As New AWSECommerceService() Dim res As CartCreateResponse Try 'カートを作成し、商品を追加 res = aws.CartCreate(cart) Catch ex As Exception Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message) Return End Try '失敗した時 If res Is Nothing OrElse res.Cart Is Nothing Then Label1.Text = "結果を取得できませんでした。" Return End If If Not (res.Cart(0).Request.Errors Is Nothing) Then Label1.Text = "エラー:" + _ res.Cart(0).Request.Errors(0).Message Return End If 'カートの中身を表示 Label1.Text = GetCartItemsList(res.Cart(0)) 'CartIDとHMACを保存する Session(CART_ID_SESSION) = res.Cart(0).CartId Session(CART_HMAC_SESSION) = res.Cart(0).HMAC End Sub 'カートに商品を追加する Protected Sub AddToCart() 'カートがなければ、作成する If Session(CART_ID_SESSION) Is Nothing OrElse _ Session(CART_HMAC_SESSION) Is Nothing Then CreateCart() Return End If Dim ri As New CartAddRequestItem() If IdTypeList.SelectedValue = "OfferListingId" Then 'カートに追加する商品のOfferListingIdを指定 ri.OfferListingId = TextBox1.Text Else 'カートに追加する商品のASINを指定 ri.ASIN = TextBox1.Text End If 'カートに入れる個数を指定 ri.Quantity = "1" Dim req As New CartAddRequest() 'CartIDとHMACを指定 req.CartId = CStr(Session(CART_ID_SESSION)) req.HMAC = CStr(Session(CART_HMAC_SESSION)) req.Items = New CartAddRequestItem() {ri} Dim cart As New CartAdd() 'あなたのAccess Key ID cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID 'あなたのAssociate ID cart.AssociateTag = ASSOCIATE_TAG cart.Request = New CartAddRequest() {req} Dim aws As New AWSECommerceService() Dim res As CartAddResponse Try 'カートに追加 res = aws.CartAdd(cart) Catch ex As Exception Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message) Return End Try '失敗した時 If res Is Nothing OrElse res.Cart Is Nothing Then Label1.Text = "結果を取得できませんでした。" Return End If If Not (res.Cart(0).Request.Errors Is Nothing) Then Label1.Text = "エラー:" + res.Cart(0).Request.Errors(0).Message Return End If 'カートの中身を表示 Label1.Text = GetCartItemsList(res.Cart(0)) End Sub 'カートから商品を削除 Protected Sub RemoveFromCart() 'カートがあるか If Session(CART_ID_SESSION) Is Nothing OrElse _ Session(CART_HMAC_SESSION) Is Nothing Then Label1.Text = "ショッピングカートがありません。" Return End If Dim ri As New CartModifyRequestItem() '削除する商品のCartItemIdを指定 ri.CartItemId = TextBox2.Text 'Quantityを0にする ri.Quantity = "0" Dim req As New CartModifyRequest() 'CartIDとHMACを指定 req.CartId = CStr(Session(CART_ID_SESSION)) req.HMAC = CStr(Session(CART_HMAC_SESSION)) req.Items = New CartModifyRequestItem() {ri} Dim cart As New CartModify() 'あなたのAccess Key ID cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID 'あなたのAssociate ID cart.AssociateTag = ASSOCIATE_TAG cart.Request = New CartModifyRequest() {req} Dim aws As New AWSECommerceService() Dim res As CartModifyResponse Try 'カートから商品を削除 res = aws.CartModify(cart) Catch ex As Exception Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message) Return End Try '失敗した時 If res Is Nothing OrElse res.Cart Is Nothing Then Label1.Text = "結果を取得できませんでした。" Return End If If Not (res.Cart(0).Request.Errors Is Nothing) Then Label1.Text = "エラー:" + _ res.Cart(0).Request.Errors(0).Message Return End If 'カートの中身を表示 Label1.Text = GetCartItemsList(res.Cart(0)) End Sub 'カートの中身を見る Protected Sub GetCart() 'カートがあるか If Session(CART_ID_SESSION) Is Nothing OrElse _ Session(CART_HMAC_SESSION) Is Nothing Then Label1.Text = "ショッピングカートがありません。" Return End If Dim req As New CartGetRequest() 'CartIDとHMACを指定 req.CartId = CStr(Session(CART_ID_SESSION)) req.HMAC = CStr(Session(CART_HMAC_SESSION)) Dim cart As New CartGet() 'あなたのAccess Key ID cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID 'あなたのAssociate ID cart.AssociateTag = ASSOCIATE_TAG cart.Request = New CartGetRequest() {req} Dim aws As New AWSECommerceService() Dim res As CartGetResponse Try 'カートの中身を取得 res = aws.CartGet(cart) Catch ex As Exception Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message) Return End Try '失敗した時 If res Is Nothing OrElse res.Cart Is Nothing Then Label1.Text = "結果を取得できませんでした。" Return End If If Not (res.Cart(0).Request.Errors Is Nothing) Then Label1.Text = "エラー:" + _ res.Cart(0).Request.Errors(0).Message Return End If 'カートの中身を表示 Label1.Text = GetCartItemsList(res.Cart(0)) End Sub 'カートの中身をクリアする Protected Sub ClearCart() 'カートがあるか If Session(CART_ID_SESSION) Is Nothing OrElse _ Session(CART_HMAC_SESSION) Is Nothing Then Label1.Text = "ショッピングカートがありません。" Return End If Dim req As New CartClearRequest() 'CartIDとHMACを指定 req.CartId = CStr(Session(CART_ID_SESSION)) req.HMAC = CStr(Session(CART_HMAC_SESSION)) Dim cart As New CartClear() 'あなたのAccess Key ID cart.AWSAccessKeyId = AWS_ACCESS_KEY_ID 'あなたのAssociate ID cart.AssociateTag = ASSOCIATE_TAG cart.Request = New CartClearRequest() {req} Dim aws As New AWSECommerceService() Dim res As CartClearResponse Try 'カートをクリアする res = aws.CartClear(cart) Catch ex As Exception Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message) Return End Try If res Is Nothing OrElse res.Cart Is Nothing Then Label1.Text = "結果を取得できませんでした。" Return End If If Not (res.Cart(0).Request.Errors Is Nothing) Then Label1.Text = "エラー:" + _ res.Cart(0).Request.Errors(0).Message Return End If 'カートの中身を表示 Label1.Text = GetCartItemsList(res.Cart(0)) End Sub 'カート内の商品を表示 Protected Function GetCartItemsList(ByVal cart As Cart) As String Dim ret As String = "" ret = "ショッピングカート内の商品 :<br />" + vbLf If Not (cart.CartItems Is Nothing) Then ret += "<ul>" + vbLf Dim i As CartItem For Each i In cart.CartItems.CartItem ret += "<li><b>" + i.Title + "</b><br />" + vbLf ret += "数量 : " + i.Quantity + "<br />" + vbLf ret += "価格 : " + i.ItemTotal.FormattedPrice + _ "<br />" + vbLf ret += "CartItemId : " + i.CartItemId + "<br />" + _ vbLf Next i ret += "</ul>" + vbLf ret += "合計 : " + cart.SubTotal.FormattedPrice + _ "<br />" + vbLf ret += "<a href=""" + cart.PurchaseURL + _ """>購入する</a><br />" + vbLf Else ret += "カートは空です。<br />" + vbLf End If Return ret End Function </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Amazonショッピングカート</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="IdTypeList" runat="server"> <asp:ListItem>ASIN</asp:ListItem> <asp:ListItem>OfferListingId</asp:ListItem> </asp:DropDownList> <asp:TextBox ID="TextBox1" runat="server" EnableViewState="False"> </asp:TextBox> <asp:Button ID="Button1" runat="server" Text="カートに入れる" OnClick="Button1_Click" /> <br /> <label for="TextBox2">CartItemId : </label> <asp:TextBox ID="TextBox2" runat="server" EnableViewState="False"> </asp:TextBox> <asp:Button ID="Button2" runat="server" Text="カートから出す" OnClick="Button2_Click" /><br /> <asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="カートの中身を見る" /> <asp:Button ID="Button4" runat="server" Text="カートをクリア" OnClick="Button4_Click" /><br /> </div> </form> <br /> <asp:Label ID="Label1" runat="server" EnableViewState="False"> </asp:Label> </body> </html> }} //これより下は編集しないでください #pageinfo(,2006-10-20 (金) 01:25:14,DOBON!,2006-10-20 (金) 02:17:30,DOBON!) |