• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stripe / stripe-java / #16660

21 Nov 2024 09:08PM CUT coverage: 12.4%. Remained the same
#16660

push

github

ramya-stripe
Bump version to 28.2.0-beta.1

18860 of 152092 relevant lines covered (12.4%)

0.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/com/stripe/examples/MeterEventStream.java
1
package com.stripe.examples;
2

3
import com.stripe.StripeClient;
4
import com.stripe.model.v2.billing.MeterEventSession;
5
import com.stripe.param.v2.billing.MeterEventStreamCreateParams;
6
import java.time.Instant;
7

8
/**
9
 * Use the high-throughput meter event stream API to report create billing meter events.
10
 *
11
 * <p>In this example, we:
12
 *
13
 * <ul>
14
 *   <li>create a meter event session and store the session's authentication token
15
 *   <li>define an event with a payload
16
 *   <li>use the meterEventStream service to create an event stream that reports this event
17
 * </ul>
18
 *
19
 * <p>This example expects a billing meter with an event_name of 'alpaca_ai_tokens'. If you have a
20
 * different meter event name, you can change it before running this example.
21
 */
22
public class MeterEventStream {
23

24
  private String apiKey;
25
  private MeterEventSession meterEventSession;
26

27
  public MeterEventStream(String apiKey) {
×
28
    this.apiKey = apiKey;
×
29
  }
×
30

31
  @SuppressWarnings("CatchAndPrintStackTrace")
32
  private void refreshMeterEventSession() {
33
    if (meterEventSession == null || meterEventSession.getExpiresAt().isBefore(Instant.now())) {
×
34
      // Create a new meter event session in case the existing session expired
35
      try {
36
        StripeClient client = new StripeClient(apiKey);
×
37
        meterEventSession = client.v2().billing().meterEventSession().create();
×
38
      } catch (Exception e) {
×
39
        e.printStackTrace();
×
40
      }
×
41
    }
42
  }
×
43

44
  @SuppressWarnings("CatchAndPrintStackTrace")
45
  public void sendMeterEvent(String eventName, String stripeCustomerId, String value) {
46
    // Refresh the meter event session, if necessary
47
    refreshMeterEventSession();
×
48

49
    // Create a meter event
50

51
    MeterEventStreamCreateParams.Event eventParams =
52
        MeterEventStreamCreateParams.Event.builder()
×
53
            .setEventName(eventName)
×
54
            .putPayload("stripe_customer_id", stripeCustomerId)
×
55
            .putPayload("value", value)
×
56
            .build();
×
57
    MeterEventStreamCreateParams params =
58
        MeterEventStreamCreateParams.builder().addEvent(eventParams).build();
×
59

60
    try {
61
      StripeClient client = new StripeClient(meterEventSession.getAuthenticationToken());
×
62
      client.v2().billing().meterEventStream().create(params);
×
63
    } catch (Exception e) {
×
64
      e.printStackTrace();
×
65
    }
×
66
  }
×
67

68
  public static void main(String[] args) {
69
    String apiKey = "{{API_KEY}}";
×
70
    String customerId = "{{CUSTOMER_ID}}"; // Replace with actual customer ID
×
71

72
    MeterEventStream manager = new MeterEventStream(apiKey);
×
73
    manager.sendMeterEvent("alpaca_ai_tokens", customerId, "28");
×
74
  }
×
75
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc