- 追加された行はこの色です。
- 削除された行はこの色です。
*ショッピングカートのサンプルコード(C#) [#qc621072]
[[こちらの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 (金) 01:25:14,DOBON!)