在 VB.net 中使用 stripe.net
Using stripe.net in VB.net
我有一个较旧的应用程序,它是 Visual Studio 2013 使用 VB.net、框架 4.5
编写的
我必须更新 stripe.net NuGet 包,API 必须不同。我曾经使用以下脚本对卡(由用户在一个简单的表格中填充)收费:
Dim myCharge = New StripeChargeCreateOptions()
myCharge.Amount = lblPrice.Text * 100 'put into cents for Stripe
myCharge.Currency = "usd"
myCharge.Description = "sample test charge"
myCharge.CardNumber = txtCardNumber.Text
myCharge.CardExpirationYear = txtExpiresYear.Text
myCharge.CardExpirationMonth = txtExpiresMonth.Text
myCharge.CardCvc = txtCVC.Text
myCharge.Capture = True
Dim chargeService = New StripeChargeService
Dim StripeCharge = New StripeCharge
StripeCharge = chargeService.Create(myCharge)
它不再有效,因为我认为逻辑改变了!
我似乎无法弄清楚如何使用该软件包从卡中收取一定的金额。
包裹详情为:
Created by: Stripe, Jayme Davis
Id: Stripe.net
Version: 13.1.0
Dependency: Newtonsoft.Json (>= 9.0.1)
我想我需要像这样创建一个收费对象:
Dim charge = New StripeCharge
charge.Amount = lblPrice.Text
charge.Description = "test"
charge.Currency = "USD"
StripeCharge 对象中不再有信用卡号或卡详细信息的选项。我似乎无法理解为了收取简单交易费用我需要做的逻辑。
在 VB.net 中有人对此有任何经验吗?
在我开始编写基于评论的代码后添加了以下内容:
根据建议,我 "think" 我需要创建一个卡片令牌,然后将其分配给收费选项。这是我目前正在做的事情:
Dim tokenOptions = New StripeTokenCreateOptions
tokenOptions.Card.Number = txtCardNumber.Text
tokenOptions.Card.ExpirationMonth = txtExpiresMonth.Text
tokenOptions.Card.ExpirationYear = txtExpiresYear.Text
tokenOptions.Card.Cvc = txtCVC.Text
Dim tokenService = New StripeTokenService
Dim token = tokenService.Create(tokenOptions)
Dim charge = New StripeCharge
charge.Amount = lblPrice.Text
charge.Description = "test"
charge.Currency = "USD"
charge.Source.Card.Id = token.Id
Dim chargeService = New StripeChargeService
Dim StripeCharge = chargeService.Create(charge)
我希望我能用我的代码正确创建令牌。我遇到的下一个问题(如果令牌是正确的)是 chargeService.Create(charge) 是错误的。我收到以下 'charge' 部分的消息:
'Stripe.StripeCharge' 类型的值无法转换为 'Stripe.StripeChargeCreateOptions'
所以,如果我改变
Dim charge = New StripeCharge
到
Dim charge = New StripeChargeCreateOptions
... 然后突然之间.Amount、.Description、.Currency、.Source.Card.Id 不再是该对象的元素。
我(在朋友的帮助下)解决了这个问题,希望它能对其他人有所帮助。
我需要使用 API 在客户端创建信用卡令牌。从那里我将生成的令牌 ID 附加到收费选项,然后对卡收费!
这是有效的代码:
Stripe.StripeConfiguration.SetApiKey("sk_test_your_key_here")
Dim tokenOptions = New Stripe.StripeTokenCreateOptions()
tokenOptions.Card = New Stripe.StripeCreditCardOptions()
tokenOptions.Card.Number = txtCardNumber.Text
tokenOptions.Card.ExpirationMonth = Convert.ToInt32(txtExpiresMonth.Text)
tokenOptions.Card.ExpirationYear = Convert.ToInt32(txtExpiresYear.Text)
tokenOptions.Card.Cvc = txtCVC.Text
Dim tokenService = New Stripe.StripeTokenService()
Dim token = tokenService.Create(tokenOptions)
Dim charge = New Stripe.StripeChargeCreateOptions()
charge.Amount = Convert.ToInt32(lblPrice.Text) * 100
charge.Description = "test"
charge.Currency = "USD"
charge.SourceTokenOrExistingSourceId = token.Id
Dim chargeService = New Stripe.StripeChargeService
Dim StripeCharge = chargeService.Create(charge)
谢谢大家的评论。我很高兴将此搁置。
感谢您的宝贵意见,对我帮助很大。我为此花了 3 天时间,但仍然无法正常工作。第4天,它起作用了。
除了你发现的这个很棒的代码之外,我还必须做一些额外的工作。
我将以下 2 个 dll 文件添加到远程服务器上的 Bin 文件夹中。
C:\github\mywebsite\packages\Stripe.net.17.3.1\lib\net45\Stripe.net.dll 和
C:\github\mywebsite\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
这 2 个文件(Stripe.net.dll 和 Newtonsoft.Json.dll 没有路径名)应该在本地站点的 Bin 文件夹中。只需将它们复制到远程服务器上的 Bin 文件夹即可。这对我有用。希望它能帮助别人。我不得不使用 "Tools" 下 visual studio 的 NuGet 将 Stripe 更新到 17.3.1 并将 Json 更新到 9.0.1。谢谢
'Stripe.StripeConfiguration.SetApiKey("sk_test_C........SqQM555EezmpE....") 测试 api 键
Stripe.StripeConfiguration.SetApiKey("sk_live_....24V777ack7m......") 直播 api 关键
Dim tokenOptions As New Stripe.StripeTokenCreateOptions()
tokenOptions.Card = New Stripe.StripeCreditCardOptions()
tokenOptions.Card.Number = TextBox2.Text
tokenOptions.Card.Name = TextBox3.Text
tokenOptions.Card.ExpirationMonth = TextBox4.Text
tokenOptions.Card.ExpirationYear = TextBox5.Text
tokenOptions.Card.Cvc = TextBox6.Text
Try
Dim tokenService As New Stripe.StripeTokenService()
Dim token = tokenService.Create(tokenOptions)
Dim charge As New Stripe.StripeChargeCreateOptions()
charge.Amount = 200 ' .00
charge.Description = "live"
charge.Currency = "USD"
charge.SourceTokenOrExistingSourceId = token.Id
Dim chargeService As New Stripe.StripeChargeService
Dim StripeCharge = chargeService.Create(charge)
'Dim StripePublishableKey As String = "pk_test_....vtfVe666xwLpjuy....." 'test key
Dim StripePublishableKey As String = "pk_live_.....yntM7888f09iuj7....." 'live key
Catch ex As Exception
' Response.Write(ex)
warning.Visible = True
warning.Focus()
warning.Text = "Error - Credit or Debit card failed - Error"
Exit Sub
End Try
我有一个较旧的应用程序,它是 Visual Studio 2013 使用 VB.net、框架 4.5
编写的我必须更新 stripe.net NuGet 包,API 必须不同。我曾经使用以下脚本对卡(由用户在一个简单的表格中填充)收费:
Dim myCharge = New StripeChargeCreateOptions()
myCharge.Amount = lblPrice.Text * 100 'put into cents for Stripe
myCharge.Currency = "usd"
myCharge.Description = "sample test charge"
myCharge.CardNumber = txtCardNumber.Text
myCharge.CardExpirationYear = txtExpiresYear.Text
myCharge.CardExpirationMonth = txtExpiresMonth.Text
myCharge.CardCvc = txtCVC.Text
myCharge.Capture = True
Dim chargeService = New StripeChargeService
Dim StripeCharge = New StripeCharge
StripeCharge = chargeService.Create(myCharge)
它不再有效,因为我认为逻辑改变了!
我似乎无法弄清楚如何使用该软件包从卡中收取一定的金额。
包裹详情为:
Created by: Stripe, Jayme Davis
Id: Stripe.net
Version: 13.1.0
Dependency: Newtonsoft.Json (>= 9.0.1)
我想我需要像这样创建一个收费对象:
Dim charge = New StripeCharge
charge.Amount = lblPrice.Text
charge.Description = "test"
charge.Currency = "USD"
StripeCharge 对象中不再有信用卡号或卡详细信息的选项。我似乎无法理解为了收取简单交易费用我需要做的逻辑。
在 VB.net 中有人对此有任何经验吗?
在我开始编写基于评论的代码后添加了以下内容:
根据建议,我 "think" 我需要创建一个卡片令牌,然后将其分配给收费选项。这是我目前正在做的事情:
Dim tokenOptions = New StripeTokenCreateOptions
tokenOptions.Card.Number = txtCardNumber.Text
tokenOptions.Card.ExpirationMonth = txtExpiresMonth.Text
tokenOptions.Card.ExpirationYear = txtExpiresYear.Text
tokenOptions.Card.Cvc = txtCVC.Text
Dim tokenService = New StripeTokenService
Dim token = tokenService.Create(tokenOptions)
Dim charge = New StripeCharge
charge.Amount = lblPrice.Text
charge.Description = "test"
charge.Currency = "USD"
charge.Source.Card.Id = token.Id
Dim chargeService = New StripeChargeService
Dim StripeCharge = chargeService.Create(charge)
我希望我能用我的代码正确创建令牌。我遇到的下一个问题(如果令牌是正确的)是 chargeService.Create(charge) 是错误的。我收到以下 'charge' 部分的消息:
'Stripe.StripeCharge' 类型的值无法转换为 'Stripe.StripeChargeCreateOptions'
所以,如果我改变
Dim charge = New StripeCharge
到
Dim charge = New StripeChargeCreateOptions
... 然后突然之间.Amount、.Description、.Currency、.Source.Card.Id 不再是该对象的元素。
我(在朋友的帮助下)解决了这个问题,希望它能对其他人有所帮助。
我需要使用 API 在客户端创建信用卡令牌。从那里我将生成的令牌 ID 附加到收费选项,然后对卡收费!
这是有效的代码:
Stripe.StripeConfiguration.SetApiKey("sk_test_your_key_here")
Dim tokenOptions = New Stripe.StripeTokenCreateOptions()
tokenOptions.Card = New Stripe.StripeCreditCardOptions()
tokenOptions.Card.Number = txtCardNumber.Text
tokenOptions.Card.ExpirationMonth = Convert.ToInt32(txtExpiresMonth.Text)
tokenOptions.Card.ExpirationYear = Convert.ToInt32(txtExpiresYear.Text)
tokenOptions.Card.Cvc = txtCVC.Text
Dim tokenService = New Stripe.StripeTokenService()
Dim token = tokenService.Create(tokenOptions)
Dim charge = New Stripe.StripeChargeCreateOptions()
charge.Amount = Convert.ToInt32(lblPrice.Text) * 100
charge.Description = "test"
charge.Currency = "USD"
charge.SourceTokenOrExistingSourceId = token.Id
Dim chargeService = New Stripe.StripeChargeService
Dim StripeCharge = chargeService.Create(charge)
谢谢大家的评论。我很高兴将此搁置。
感谢您的宝贵意见,对我帮助很大。我为此花了 3 天时间,但仍然无法正常工作。第4天,它起作用了。 除了你发现的这个很棒的代码之外,我还必须做一些额外的工作。 我将以下 2 个 dll 文件添加到远程服务器上的 Bin 文件夹中。 C:\github\mywebsite\packages\Stripe.net.17.3.1\lib\net45\Stripe.net.dll 和 C:\github\mywebsite\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
这 2 个文件(Stripe.net.dll 和 Newtonsoft.Json.dll 没有路径名)应该在本地站点的 Bin 文件夹中。只需将它们复制到远程服务器上的 Bin 文件夹即可。这对我有用。希望它能帮助别人。我不得不使用 "Tools" 下 visual studio 的 NuGet 将 Stripe 更新到 17.3.1 并将 Json 更新到 9.0.1。谢谢
'Stripe.StripeConfiguration.SetApiKey("sk_test_C........SqQM555EezmpE....") 测试 api 键 Stripe.StripeConfiguration.SetApiKey("sk_live_....24V777ack7m......") 直播 api 关键
Dim tokenOptions As New Stripe.StripeTokenCreateOptions()
tokenOptions.Card = New Stripe.StripeCreditCardOptions()
tokenOptions.Card.Number = TextBox2.Text
tokenOptions.Card.Name = TextBox3.Text
tokenOptions.Card.ExpirationMonth = TextBox4.Text
tokenOptions.Card.ExpirationYear = TextBox5.Text
tokenOptions.Card.Cvc = TextBox6.Text
Try
Dim tokenService As New Stripe.StripeTokenService()
Dim token = tokenService.Create(tokenOptions)
Dim charge As New Stripe.StripeChargeCreateOptions()
charge.Amount = 200 ' .00
charge.Description = "live"
charge.Currency = "USD"
charge.SourceTokenOrExistingSourceId = token.Id
Dim chargeService As New Stripe.StripeChargeService
Dim StripeCharge = chargeService.Create(charge)
'Dim StripePublishableKey As String = "pk_test_....vtfVe666xwLpjuy....." 'test key
Dim StripePublishableKey As String = "pk_live_.....yntM7888f09iuj7....." 'live key
Catch ex As Exception
' Response.Write(ex)
warning.Visible = True
warning.Focus()
warning.Text = "Error - Credit or Debit card failed - Error"
Exit Sub
End Try