我已经在我的Java spring MVC Web应用程序
中配置了stripe
支付。我可以添加一个客户
,创建一个计划
,还可以为客户设置订阅
。由于我有经常性的付款,我想发送一个电子邮件通知客户一旦发票生成,也一旦付款。从Stripe文档中,我需要的事件类型是Invoice.Ublings.
,Invoice.Payment_Succede
和Customer.Subscription.Trial_Will_End
,因为我对很少的计划有试用期。
我在我的应用程序中添加了一个webhookendpoint,如下所示:
@ResponseBody
@RequestMapping(consumes="application/json", produces="application/json", method=RequestMethod.POST, value="/webhook-endpoint")
public Response stripeWebhookEndpoint(@RequestBody String stripeJsonEvent)
{
Event event = Event.GSON.fromJson(stripeJsonEvent, Event.class);
String type = event.getType();
StripeObject stripeObject = event.getData().getObject();
return Response.status(Response.Status.OK).build();
}
我正在尝试获取事件类型
和客户ID
,以便能够从我的数据库中获取客户并根据事件发送电子邮件通知。由于我的webhook url位于localhost
中,因此无法从Stripe中触发实际数据。此外,我无法从Stripe文档中找到示例数据:https://Stripe.com/docs/api#invoice_object。我还尝试从stripe webhook事件中检索stripe数据,但在没有一些示例数据的情况下无法对其进行测试。
有没有一种方法,我可以从事件中获得所需的细节,也可以在我的localhost上测试这一点。
数据
对象包含客户
ID作为字符串
对于invoice.progining
和invoice.payment_succede
,在data
对象中作为string
接收的客户ID。
下面的JSON包含invoice.programmed
的事件data
对象
{
"object": {
"object": "invoice",
"amount_due": 30000,
"application_fee": null,
"attempt_count": 0,
"attempted": false,
"charge": null,
"closed": false,
"currency": "gbp",
"customer": "cus_ATtwlQqRx75cxxx",
"date": 1505559958,
"description": null,
"discount": null,
"ending_balance": null,
"forgiven": false,
"lines": {
"object": "list",
"data": [
{
"id": "sub_AU9VONtkvz9xxx",
"object": "line_item",
"amount": 30000,
"currency": "gbp",
"description": null,
"discountable": true,
"livemode": false,
"metadata": {
},
"period": {
"start": 1505559958,
"end": 1508151958
},
"plan": {
"id": "package_1",
"object": "plan",
"amount": 30000,
"created": 1492282426,
"currency": "gbp",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Package 1",
"statement_descriptor": null,
"trial_period_days": null
},
"proration": false,
"quantity": 1,
"subscription": null,
"subscription_item": "si_1A9BCcJ7IsZfBU9bw4Cxxx",
"type": "subscription"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/invoices/in_xxxxxnV9RmPcl/lines"
},
"livemode": false,
"metadata": {
},
"next_payment_attempt": 1505563558,
"paid": false,
"period_end": 1505559958,
"period_start": 1502881558,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"subscription": "sub_AU9VONtkvz9xxx",
"subtotal": 30000,
"tax": null,
"tax_percent": null,
"total": 30000,
"webhooks_delivered_at": null
},
"previous_attributes": null
}
在web应用程序的开发过程中,为了检查发送到本地主机的Webhook,您可以使用像NGROK这样的解决方案。
安装并运行ngrok后,配置Stripe将Webhook发送到ngrok提供的唯一URL,例如http://my-super-application.ngrok.io
。
ngrok会将它从Stripe获得的http请求“转发”到您的本地机器,就像Stripe会将数据直接发送到您的本地应用程序一样。
代替ngrok,您还可以检查其他解决方案,搜索“本地隧道”关键字。
要检查从条形仪表板中由条形网络挂钩发送的数据,请转到“API”菜单,然后“网络挂钩”选项卡,单击与要测试的端点相关的“测试”按钮。
如果您点击“发送测试webhook”按钮,Stripe将向您显示“请求”下webhook发送的数据。(即使webhook无法从端点获得应答,您也可以检查请求。)
例如,对于invoice.programmed
事件,您将得到如下内容:
{
"created": 1326853478,
"livemode": false,
"id": "evt_00000000000000",
"type": "invoice.upcoming",
"object": "event",
"request": null,
"pending_webhooks": 1,
"api_version": "2017-06-05",
"data": {
"object": {
"id": null,
"object": "invoice",
"amount_due": 0,
"application_fee": null,
"attempt_count": 0,
"attempted": true,
"charge": null,
"closed": true,
"currency": "jpy",
"customer": "cus_00000000000000",
"date": 1503541536,
"description": null,
"discount": null,
"ending_balance": 0,
"forgiven": false,
"lines": {
"data": [
{
"id": "sub_BN5yNiTkAlQOye",
"object": "line_item",
"amount": 500,
"currency": "jpy",
"description": null,
"discountable": true,
"livemode": true,
"metadata": {
},
"period": {
"start": 1507604796,
"end": 1510283196
},
"plan": {
"id": "bplan",
"object": "plan",
"amount": 500,
"created": 1504352393,
"currency": "jpy",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "B plan",
"statement_descriptor": null,
"trial_period_days": null
},
"proration": false,
"quantity": 1,
"subscription": null,
"subscription_item": "si_1B0LmKE9P3qCpf5erqbpMxkI",
"type": "subscription"
}
],
"total_count": 1,
"object": "list",
"url": "/v1/invoices/in_1AuB2KE9P3qCpf5ekFh7qpAi/lines"
},
"livemode": false,
"metadata": {
},
"next_payment_attempt": null,
"paid": true,
"period_end": 1503541536,
"period_start": 1503541536,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"subscription": "sub_00000000000000",
"subtotal": 0,
"tax": null,
"tax_percent": null,
"total": 0,
"webhooks_delivered_at": 1503541537
}
}
}
我可以使用razorpay API获取付款ID。。。但现在我想获取其他付款详细信息,而不是付款ID。。。我怎样才能从Razorpay拿到数据
Paypal为iOS开发者发布了新的SDK:Paypal iOS SDK 这个SDK允许两种支付方式: 一次性付款 我需要在我的应用程序中实现未来支付,所以用户只需一次输入他的支付细节。每隔一次金额会自动转账。 问题:可以使用PapPal帐户和信用卡进行一次性支付,但未来的支付只能使用PapPal帐户(进行未来支付)。 作为另一个选择,我尝试授权。net,但它不允许使用iOS SDK选择API进行
我想对访客结帐用户使用Paypal定期付款。也就是说,用户可以在没有任何Paypal帐户的情况下订阅我的计划。此外,他不需要创建Paypal帐户。仅使用他/她的信用卡
是否可以使用OAuth 2访问令牌从ForgeRock的OpenAM获取用户详细信息(属于资源所有者的属性)? 我有一个受信任的SPA UI,可以使用资源所有者密码凭据授予类型从OpenAM获取访问令牌。然而,该访问令牌没有提供有关资源所有者的信息。类似地,endpoint没有提供任何信息。 OpenAM似乎有用于列出用户属性的endpoint,但是期望使用JWT作为请求的身份验证手段。 如何从访
我想在我的网站上使用信用卡重复付款。我网站的访客可以不用paypal注册就用信用卡进行定期付款吗?我尝试使用订阅按钮,但当我选择用信用卡支付时,我输入了信用卡信息,然后贝宝让我在贝宝上注册(https://snag.gy/hxO2Gl.jpg)。此外,我还尝试使用信用卡进行定期付款(直接付款定期付款(DPRP)),但我必须符合PCI标准才能在我的网站上处理dredit卡。我可以通过结账页面(带有“
是否可以使用此信用卡ID进行交易?有人帮忙吗?
Amazon标识管理iam=Amazon标识管理客户端Builder.standard()。US_EAST_1)。 有人能告诉我怎么做吗? 我试图在下面的程序中列出一个用户的标签,但我得到了下面的错误:我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅维修文档。 公共类ListUserTags{ }