



  

<!DOCTYPE html>
<html
  lang="en"
  
  data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
  data-a11y-animated-images="system" data-a11y-link-underlines="true"
  
  >




  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-0f910d8806d5761b.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-a7abd4d4c49ac593.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-5fc4c4a9cb41e596.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-ed0cee9214dedabd.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-78a2491d538dab5a.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-c26b63d7c532d0a2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-a6f60cea68c08405.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-f66faf28b2ea18b6.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-6701f6218c53cf5b.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-7037fa46ae124d97.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-97df7784617ce1ea.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-9be9fe6313f476af.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-62747e27e61258dc.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-7a418ea859d1654d.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-72bd7d974b5ac1cc.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-4c5c0895f723f870.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_caches_react_shell","actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","actions_runners_react_shell","activity_diff_file_tree","activity_repos_file_tree","activity_repos_overview_header","activity_repos_overview_sidebar","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_base_model_policy_row","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_early_task_provisioning","copilot_chat_persist_session_drafts","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_task_hyperlinking","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_awps_batching","copilot_mission_control_early_stop","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_discussion_comment_trigger","copilot_swe_agent_discussion_opened_trigger","copilot_swe_agent_discussion_updated_trigger","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_assigned_trigger","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_issue_labeled_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_assigned_trigger","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_labeled_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_ready_for_review_trigger","copilot_swe_agent_pull_request_review_requested_trigger","copilot_swe_agent_pull_request_review_submitted_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_sub_issue_added_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_web_integration_cutover","copilot_workbench_sunset_redirect","dashboard_agents_module_auth_token_check","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","fgpat_permissions_selector_redesign","glc_code_quality_repo_settings_workflow_config","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_team_vs_personal","issue_relative_time_micro","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_header_feedback","milestone_closed_issues_prioritization","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","primer_react_timeline_list_semantics","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_copilot_attribution_header","pull_request_overview_merge_control","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_navigation_shortcuts","pull_request_virtualization_image_estimate","pull_request_virtualization_loader_batching","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_logged_out_repository_header","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_declutter","repo_pulls_dashboard_ga","repo_pulls_dashboard_persistence","repo_pulls_dashboard_sidebar_links","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_nav_spark_models_removed","speculation_rules_ui_service","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","update_issue_suggestions","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-ecea76118deb7aaa.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-ae2c923ed3fb42c7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-e30e053a2ec05810.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-43a736cfb17bfc3b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-63626b86ca960a13.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-a0f837900b980022.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tp-daaf4baff8a79901.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-0ab7314d757363cf.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.7ee70a9cd769c13f.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-42724bfdecdcf111.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e8810f64c443fb9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-0417f617ad744a0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-9da36843ba9d191d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-9a1160b939f2cd52.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3h-55903cf2303047ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hk-f1498fec45311acd.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-7aa1ff0a0e750f41.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-1d800d09e9a8720a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-ccaf30a6d91f2f83.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-88cfe118d5489440.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-085c10092566a106.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-5e0b3ae3c4036207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-827ce46b7ade1744.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-9080b92ee55ecdce.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-181fffe35f64a86b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a9-c3ca0fbca57ec92e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/urv-054283cae3e84e4a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-b7957415f663bc13.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pb-1b8646f441999bcd.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6n-afcf86ccabc4cad2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zj-1e9837c8e3c294ac.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ix-db979d3ffe7f4c37.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tw-dd6dc4caea8bef08.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qyq-3e7962e375ef7004.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bcs-f35fbf8e2ea6dbe7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7l-560ecaad1259d656.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jl-e8dc4e5499c418bf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/85-45c9403416d395d4.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-99a3920e2db317c9.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.be84e87b659d3b98.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-380374377b31f5ad.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-b8b1f4173243006b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nc-602186f274c7f83c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmp-16b258ea4c9e9207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-e2974066e87682ac.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-07b4d1555e9567f3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4u-1fa5e65b146a8e59.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s0-ef17fe8bd07a3b4d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y5-1b30b762023d3e89.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4u-f85b84521e1734c3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8s-48e0fe20eefd980e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-27679061f16e1495.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iu-58ac501be176845a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gru-90582bf85fdae29b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a0-62a325e8a801c241.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vy-77fa71d04f920b10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gb-6acc3941ce05eb8d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f7-0866cc20e1a6e4a3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/csq-a4622df32bd3f47f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ssg-cf5ac52afa782913.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lk-079e9de06c3be0af.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/x00-344c6e66a12fe4b8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wsu-447e9f95188c7974.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/038-7e759dd92b23180b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmq-b7fd747ac0dec1dc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hwq-eba66f3e802ed05e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lcf-c3749f061b720d7a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/meu-720cfd8779ef970d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tg-0262af28cee91950.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/is-72fb9279eae70f4e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dc-9a4f5284b4d6b55b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/w9-183da1d030133670.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r09-6a8e9e38bd26e4b8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/642-0c34f01503252c51.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/45z-500ac78bc30b1f49.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/61-99828705784c9574.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ioz-e202cd57dfb0dbae.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kwg-1568470998026677.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1mc-0231984e8f3f4958.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pc-986abafaf53b769e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1e-f3794268c20cd18d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/uu-6b8bc874d43973a0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2sj-a0b3d11863f57a1e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/oj-79a85dac88e9d3f4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ys-eeb95a3084a8716b.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-a6e093b12b2a5e7b.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/45z.922f816fb2d6b268.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/oj.ecb4903dbaae6412.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.206bdff86ecd228e.module.css" />


  <title>WxJava/README.md at develop · binarywang/WxJava · GitHub</title>



  <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
  <meta name="route-controller" content="blob" data-turbo-transient>
  <meta name="route-action" content="show" data-turbo-transient>
  <meta name="fetch-nonce" content="v2:b000b091-8765-bc80-4813-cc63c0b0c3cf">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="C832:13E99B:A40F51:E24716:6AC87001" data-pjax-transient="true"/><meta name="html-safe-nonce" content="06814a63deac01203ddf8954336fe1f47f5c56bc7e453b83e4e2870589b2490c" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDODMyOjEzRTk5QjpBNDBGNTE6RTI0NzE2OjZBQzg3MDAxIiwidmlzaXRvcl9pZCI6IjY3NjUzNTY5NjM3NDU3ODc5MDUiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="e1d2f1f5a81d7f4f3e850f0e1ae08a086b89b8cea3aceb7a75c44cb5ce9867b0" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:49122742" data-turbo-transient>


  <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
  

  <meta name="selected-link" value="repo_source" data-turbo-transient>
  <link rel="assets" href="https://github.githubassets.com/">

    <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">

<meta name="octolytics-url" content="https://collector.github.com/github/collect" />





  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />

  




    <meta name="user-login" content="">

  

    <meta name="viewport" content="width=device-width">

    

      <meta name="description" content="微信开发 Java SDK ，支持包括微信支付，开放平台，小程序，企业微信，视频号，公众号等的后端开发 - WxJava/README.md at develop · binarywang/WxJava">

      <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">

    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <meta property="fb:app_id" content="1401488693436528">
    <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/binarywang/WxJava/blob/develop/README.md" />

      <meta name="twitter:image" content="https://repository-images.githubusercontent.com/49122742/1a65d480-d489-11e9-9aca-4eb0aa3c2c8d" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="WxJava/README.md at develop · binarywang/WxJava" /><meta name="twitter:description" content="微信开发 Java SDK ，支持包括微信支付，开放平台，小程序，企业微信，视频号，公众号等的后端开发 - binarywang/WxJava" />
  <meta property="og:image" content="https://repository-images.githubusercontent.com/49122742/1a65d480-d489-11e9-9aca-4eb0aa3c2c8d" /><meta property="og:image:alt" content="微信开发 Java SDK ，支持包括微信支付，开放平台，小程序，企业微信，视频号，公众号等的后端开发 - binarywang/WxJava" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="WxJava/README.md at develop · binarywang/WxJava" /><meta property="og:url" content="https://github.com/binarywang/WxJava/blob/develop/README.md" /><meta property="og:description" content="微信开发 Java SDK ，支持包括微信支付，开放平台，小程序，企业微信，视频号，公众号等的后端开发 - binarywang/WxJava" />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="a32d59659161670c11d8e96bef14462ce3a919034c4f0e460dd991bb77cc7a8e" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="c4a65e47b0c850e1157ae8e66298070851d7e3b558038de5a3b4ff7a93e630ed" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="1ff3f1d4e1abd61f6f135b47d3b815e2f7169f8dd418f0118c6b1cf4de6cbc86" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="62c694dbfccd36668466b597ca6355de7647b48d3ef1ba1c805e3ac89f6c2c64" data-turbo-track="reload">

  <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">

      <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>

    <meta data-hydrostats="publish">

  <meta name="go-import" content="github.com/binarywang/WxJava git https://github.com/binarywang/WxJava.git">

  <meta name="octolytics-dimension-user_id" content="1343140" /><meta name="octolytics-dimension-user_login" content="binarywang" /><meta name="octolytics-dimension-repository_id" content="49122742" /><meta name="octolytics-dimension-repository_nwo" content="binarywang/WxJava" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="49122742" /><meta name="octolytics-dimension-repository_network_root_nwo" content="binarywang/WxJava" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">


  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <meta name="release" content="8d63c7709da41fbaec6a3a2c34ee9f1785dc2937" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">

<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
    <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
      <div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>

      <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
    <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/no-1cf75929f17e3028.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-a7b1e720c8d8dc36.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.ac351e8516148495.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>





      

          <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-install-banner-partial-90fc15644d34d442.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-install-banner-partial.4ea51448c4f973db.module.css" />

<react-partial
  partial-name="app-install-banner-partial"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>


          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2lp-a40e70e520dbe650.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/rwd-7b2c7e3d5830b9e9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-26e9f173be523540.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jag-e8b94ef4bf214893.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/l19-ab9291460ccba23f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5nx-54af91826ad57196.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zn-f168d65b85b3e44a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-0c7e99a55d76a9f8.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.05b219cdb8e80c43.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/zn.9fc2e923e926de87.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Fbinarywang%2FWxJava%2Fblob%2Fdevelop%2FREADME.md","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=binarywang%2FWxJava","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/binarywang/WxJava/blob/develop/README.md\",\"user_id\":null}}","auth_hydro_click_hmac":"761ea02b946c507d93682548d9b368f7ad21f0ef2a5c4308fc8fe25dbcbbe51b","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fbinarywang%2FWxJava%2Fblob%2Fdevelop%2FREADME.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/binarywang/WxJava/blob/develop/README.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="761ea02b946c507d93682548d9b368f7ad21f0ef2a5c4308fc8fe25dbcbbe51b"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fbinarywang%2FWxJava%2Fblob%2Fdevelop%2FREADME.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/binarywang/WxJava/blob/develop/README.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="761ea02b946c507d93682548d9b368f7ad21f0ef2a5c4308fc8fe25dbcbbe51b"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=binarywang%2FWxJava" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/binarywang/WxJava/blob/develop/README.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="761ea02b946c507d93682548d9b368f7ad21f0ef2a5c4308fc8fe25dbcbbe51b"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>

    <button id="icon-button-07449d25-bbaf-49a3-8696-cb4018f6e307" aria-labelledby="tooltip-c2745428-0074-410b-b359-3c269cdf3c4a" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-c2745428-0074-410b-b359-3c269cdf3c4a" for="icon-button-07449d25-bbaf-49a3-8696-cb4018f6e307" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>


  
</div>
    </div>

  <div id="start-of-content" class="show-on-focus"></div>








    <div id="js-flash-container" class="flash-container" data-turbo-replace>






  <template class="js-flash-template">
    
<div class="flash flash-full   {{ className }}">
  <div >
    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    <div aria-atomic="true" role="alert" class="js-flash-alert">
      
      <div>{{ message }}</div>

    </div>
  </div>
</div>
  </template>
</div>


    






  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
    data-project-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" >
      
      








  

    <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ym-4c4d2b70d5b17037.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mng-af5547fcfd291f53.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t5-8ffaa093c3420000.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j24-43443b443f213349.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vw-9a8839ba1b0498ae.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ac-330683e1e1b3028b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f4t-6a4e2ce1a3f6bcd5.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/36-e7bb48b69e86f71b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tps-84accc305677e828.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/e8k-f5cca939ef074708.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nx-e5a4a427b19a5363.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3s-7ab43a292b98ba5f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a1w-8b2cb4a1188ed337.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nr-79588a4a563e6198.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/global-nav-bar-2b07b8ab08f594ac.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/45z.922f816fb2d6b268.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-nav-bar.b71e2cfbb18d6882.module.css" />

<react-partial
  partial-name="global-nav-bar"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"contextRegion":{"crumbs":[{"crumb_type":"user","label":"binarywang","is_root":false,"href":"/binarywang"},{"crumb_type":"repository","label":"WxJava","is_root":false,"href":"/binarywang/WxJava"}],"localNavigation":[{"id":"code","icon":"code","label":"Code","href":"/binarywang/WxJava","selectedLinks":["repo_source","repo_downloads","repo_commits","repo_releases","repo_tags","repo_branches","repo_packages","repo_deployments","repo_attestations"],"popoverTarget":false,"commandId":"repositories:go-to-code","reactNav":{"appTarget":"code-view","anchor":"code-view-repo-link"},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"issues","icon":"issue-opened","label":"Issues","href":"/binarywang/WxJava/issues","selectedLinks":["repo_issues","repo_labels","repo_milestones"],"count":5,"popoverTarget":false,"commandId":"repositories:go-to-issues","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"pull-requests","icon":"git-pull-request","label":"Pull requests","href":"/binarywang/WxJava/pulls","selectedLinks":["repo_pulls","checks"],"count":5,"popoverTarget":false,"commandId":"repositories:go-to-pull-requests","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"discussions","icon":"comment-discussion","label":"Discussions","href":"/binarywang/WxJava/discussions","selectedLinks":["repo_discussions"],"popoverTarget":false,"commandId":"repositories:go-to-discussions","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"actions","icon":"play","label":"Actions","href":"/binarywang/WxJava/actions","selectedLinks":["repo_actions"],"popoverTarget":false,"commandId":"repositories:go-to-actions","reactNav":{"appTarget":"actions-workflows","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"wiki","icon":"book","label":"Wiki","href":"/binarywang/WxJava/wiki","selectedLinks":["repo_wiki"],"popoverTarget":false,"commandId":"repositories:go-to-wiki","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"security-and-quality","icon":"shield","label":"Security and quality","href":"/binarywang/WxJava/security","selectedLinks":["security","overview","alerts","policy","token_scanning","code_scanning"],"count":0,"popoverTarget":false,"commandId":"repositories:go-to-security","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"insights","icon":"graph","label":"Insights","href":"/binarywang/WxJava/pulse","selectedLinks":["repo_graphs","repo_contributors","dependency_graph","dependabot_updates","pulse","people","community"],"popoverTarget":false,"commandId":"repositories:go-to-insights","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}}],"localNavigationUpdateChannel":null,"selectedLink":"repo_source"},"owner":null,"headerLogo":{"href":"/","aria-label":"Homepage "},"notifications":{"indicatorMode":"disabled","websocketChannel":null,"fetchIndicatorSrc":"/notifications/indicator","fetchIndicatorEnabled":false},"issues":{"href":"/issues"},"pulls":{"href":"/pulls"},"contributedRepos":{"href":"/repos"},"copilot":{"show":false,"showAgentsButton":false,"showRelaunchAnnouncement":false,"copilotChatUrl":null,"copilotApiUrl":"https://api.githubcopilot.com"},"search":{"show":true,"showCommandPalette":false,"isSearchPage":false,"isJumpToSearch":false,"searchContext":{"scope":"repo:binarywang/WxJava","current_repo_name":"WxJava","current_repo_nwo":"binarywang/WxJava","user_id":"binarywang"}},"commandPalette":null,"enterpriseBar":{"show":false},"globalTransactionalMessage":[],"payloadsUrl":"/_global-navigation/payloads.json?can_toggle_site_admin_and_employee_status=0\u0026is_admin_mode_on=0\u0026is_ui_opted_out=0\u0026show_ui_opt_out=0\u0026v=6","contextRegionUrl":"/_global-navigation/context-region.json"}}</script>
  <div data-target="react-partial.reactRoot"><header aria-label="Global navigation menu" data-component="Stack" class="GlobalNav styles-module__appHeader__YzYWk prc-Stack-Stack-UQ9k6" data-gap="none" data-direction="vertical" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="none"><div data-component="Stack" class="prc-Stack-Stack-UQ9k6" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="center" data-padding="none"><div data-testid="top-nav-center" data-component="Stack" class="styles-module__center__R3QRv styles-module__withLocalNavigation__rjTJ_ GlobalNavBar-module__loggedOut__Jv1rk prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="normal"><nav class="styles-module__contextRegion__VbSp2 prc-Breadcrumbs-BreadcrumbsBase-3Gb-B" aria-label="Breadcrumbs" data-overflow="menu" data-variant="normal" data-component="Breadcrumbs"><ol class="prc-Breadcrumbs-BreadcrumbsList-BKjpe"><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/binarywang" data-discover="true"><span class="">binarywang</span></a></li><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/binarywang/WxJava" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">WxJava</span></a></li></ol></nav></div><div data-testid="top-nav-right" data-component="Stack" class="styles-module__right__mlBQg styles-module__withLocalNavigation__rjTJ_ styles-module__rightWithResponsiveCreateButton__SKn2W prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="start" data-padding="normal"></div></div><h2 class="prc-src-InternalVisuallyHidden-2YaI6">Repository navigation</h2><nav class="prc-components-UnderlineWrapper-eT-Yj prc-UnderlineNav-UnderlineWrapper-GWONT LocalNavigation-module__LocalNavigation__b0Xc0" aria-label="Repository" data-variant="inset" data-overflow-mode="wrap" data-hide-icons-breakpoint="medium"><ul class="prc-UnderlineNav-ItemsList-oj8gN prc-components-UnderlineItemList-xKlKC" role="list"><li role="presentation" aria-hidden="true" class="prc-UnderlineNav-WrapSpacer--aLgz"></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a aria-current="page" data-tab-item="code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg></span><span data-component="text" data-content="Code">Code</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="issues" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/issues" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg></span><span data-component="text" data-content="Issues">Issues</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">5</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->5<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="pull-requests" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/pulls" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg></span><span data-component="text" data-content="Pull requests">Pull requests</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">5</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->5<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="discussions" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/discussions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg></span><span data-component="text" data-content="Discussions">Discussions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="actions" data-react-nav="actions-workflows" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/actions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-play" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg></span><span data-component="text" data-content="Actions">Actions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="wiki" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/wiki" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-book" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path></svg></span><span data-component="text" data-content="Wiki">Wiki</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="security-and-quality" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/security" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg></span><span data-component="text" data-content="Security and quality">Security and quality</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="insights" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/binarywang/WxJava/pulse" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-graph" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></span><span data-component="text" data-content="Insights">Insights</span></a></li></ul><div class="prc-UnderlineNav-MoreButtonContainer-Dnrq6"><div class="prc-UnderlineNav-MoreButtonDivider-dN0a-"></div><button data-component="overflow-menu-button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk prc-UnderlineNav-MoreButton-Y8soj" data-loading="false" data-size="medium" data-variant="invisible" id="_R_2ktl_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3"><span>More<span class="prc-src-InternalVisuallyHidden-2YaI6"> items</span></span></span></span><span data-component="trailingAction" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></nav><div class="d-none"></div></header></div>
</react-partial>


  



<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
    <div id="repo-content-pjax-container" class="repository-content " >
    



    
      
    








<react-app
  app-name="code-view"
  initial-path="/binarywang/WxJava/blob/develop/README.md"
  style="display: block; min-height: calc(100vh - 64px);"
  data-attempted-ssr="true"
  data-ssr="true"
  data-lazy="false"
  data-alternate="false"
  data-data-router-enabled="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":[{"level":2,"text":"WxJava - 微信开发 Java SDK","anchor":"wxjava---微信开发-java-sdk","htmlText":"WxJava - 微信开发 Java SDK"},{"level":3,"text":"微信 Java 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。","anchor":"微信-java-开发工具包支持包括微信支付开放平台公众号企业微信视频号小程序等微信功能模块的后端开发","htmlText":"微信 Java 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。"},{"level":3,"text":"特别赞助","anchor":"特别赞助","htmlText":"特别赞助"},{"level":3,"text":"关注公众号","anchor":"关注公众号","htmlText":"关注公众号"},{"level":3,"text":"目录索引","anchor":"目录索引","htmlText":"目录索引"},{"level":3,"text":"快速开始（3分钟）","anchor":"快速开始3分钟","htmlText":"快速开始（3分钟）"},{"level":3,"text":"AI 编程智能体 SKILL 安装","anchor":"ai-编程智能体-skill-安装","htmlText":"AI 编程智能体 SKILL 安装"},{"level":3,"text":"我该选哪个模块？","anchor":"我该选哪个模块","htmlText":"我该选哪个模块？"},{"level":3,"text":"重要信息","anchor":"重要信息","htmlText":"重要信息"},{"level":3,"text":"其他说明","anchor":"其他说明","htmlText":"其他说明"},{"level":3,"text":"Maven 引用方式","anchor":"maven-引用方式","htmlText":"Maven 引用方式"},{"level":4,"text":"方式一：使用 BOM 统一管理版本（推荐）","anchor":"方式一使用-bom-统一管理版本推荐","htmlText":"方式一：使用 BOM 统一管理版本（推荐）"},{"level":4,"text":"方式二：直接引用单个模块","anchor":"方式二直接引用单个模块","htmlText":"方式二：直接引用单个模块"},{"level":3,"text":"最小示例","anchor":"最小示例","htmlText":"最小示例"},{"level":3,"text":"版本说明","anchor":"版本说明","htmlText":"版本说明"},{"level":3,"text":"应用案例","anchor":"应用案例","htmlText":"应用案例"},{"level":4,"text":"开源项目：","anchor":"开源项目","htmlText":"开源项目："},{"level":4,"text":"小程序：","anchor":"小程序","htmlText":"小程序："},{"level":4,"text":"公众号：","anchor":"公众号","htmlText":"公众号："},{"level":4,"text":"企业微信：","anchor":"企业微信","htmlText":"企业微信："},{"level":4,"text":"其他：","anchor":"其他","htmlText":"其他："},{"level":3,"text":"贡献者列表","anchor":"贡献者列表","htmlText":"贡献者列表"},{"level":3,"text":"GitHub Stargazers over time","anchor":"github-stargazers-over-time","htmlText":"GitHub Stargazers over time"}]},"issueTemplate":null,"discussionTemplate":null,"richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eWxJava - 微信开发 Java SDK\u003c/h2\u003e\u003ca id=\"user-content-wxjava---微信开发-java-sdk\" class=\"anchor\" aria-label=\"Permalink: WxJava - 微信开发 Java SDK\" href=\"#wxjava---微信开发-java-sdk\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ca href=\"https://github.com/binarywang/WxJava\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/fead75d8d2258b254d614384e38cd05dd41e350e3e4827e57213b6446d19de9b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f62696e61727977616e672f57784a6176613f6c6f676f3d676974687562267374796c653d666c6174266c6162656c3d5374617273\" alt=\"Github\" data-canonical-src=\"https://img.shields.io/github/stars/binarywang/WxJava?logo=github\u0026amp;style=flat\u0026amp;label=Stars\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://gitee.com/binary/weixin-java-tools\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/ab6b4374637b366fb0968490e760fb640fdaf79c758f7563911945d23368fe8a/68747470733a2f2f67697465652e636f6d2f62696e6172792f77656978696e2d6a6176612d746f6f6c732f62616467652f737461722e7376673f7468656d653d626c7565\" alt=\"Gitee\" data-canonical-src=\"https://gitee.com/binary/weixin-java-tools/badge/star.svg?theme=blue\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://gitcode.com/binary/WxJava\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/0de094f0800f589e5db6e57a24bea4ed21abd0c0edf254f84d9763ab3e969612/68747470733a2f2f676974636f64652e636f6d2f62696e6172792f57784a6176612f737461722f62616467652e737667\" alt=\"GitCode\" data-canonical-src=\"https://gitcode.com/binary/WxJava/star/badge.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ca href=\"https://github.com/binarywang/WxJava/releases\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/1e86f75a136f55bbf27246c9fdd6e5d1248eeaef06a8416d8d91bc23461a27e3/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f62696e61727977616e672f57784a6176613f6c6162656c3d52656c65617365\" alt=\"GitHub release\" data-canonical-src=\"https://img.shields.io/github/release/binarywang/WxJava?label=Release\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/wx-java/versions\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/daf20f39420f523822cfdfe07966f0a2f31f2fec7c250cb7e9ba74c6469928b5/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e62696e61727977616e672f77782d6a6176613f6c6162656c3d4d6176656e\" alt=\"Maven Central\" data-canonical-src=\"https://img.shields.io/maven-central/v/com.github.binarywang/wx-java?label=Maven\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://circleci.com/gh/binarywang/WxJava/tree/develop\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/21c941266e444057835d4778af3808f97af596b4e11118c69b4fd136014e8d91/68747470733a2f2f696d672e736869656c64732e696f2f636972636c6563692f70726f6a6563742f6769746875622f62696e61727977616e672f57784a6176612f646576656c6f702e7376673f73616e6974697a653d74727565266c6162656c3d4275696c64\" alt=\"Build Status\" data-canonical-src=\"https://img.shields.io/circleci/project/github/binarywang/WxJava/develop.svg?sanitize=true\u0026amp;label=Build\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.jetbrains.com/?from=WxJava-weixin-java-tools\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/ab18bd740341febfcc8493a4ccf925bb949c05da2aba8bbedd8a1a84e54313ac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f496e74656c6c694a253230494445412d2545362539342541462545362538432538312d626c75652e737667\" alt=\"使用IntelliJ IDEA开发维护\" data-canonical-src=\"https://img.shields.io/badge/IntelliJ%20IDEA-%E6%94%AF%E6%8C%81-blue.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opensource.org/licenses/Apache-2.0\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/a549a7a30bacba7bfceebdc207a8e86c3f2c02995a2527640dca30048fd2b64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d417061636865253230322e302d626c75652e737667\" alt=\"License\" data-canonical-src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://deepwiki.com/binarywang/WxJava\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/0f5ae213ac378635adeb5d7f13cef055ad2f7d9a47b36de7b1c67dbe09f609ca/68747470733a2f2f6465657077696b692e636f6d2f62616467652e737667\" alt=\"Ask DeepWiki\" data-canonical-src=\"https://deepwiki.com/badge.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ca href=\"https://hellogithub.com/repository/6de6147050c94db4aedfd7098d19f8d8\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/e4c700f9d79fe5163d81219a061df5b9b2fb14fd3ce93c35e2ee92ce52447cd5/68747470733a2f2f6170692e68656c6c6f6769746875622e636f6d2f76312f776964676574732f7265636f6d6d656e642e7376673f7269643d366465363134373035306339346462346165646664373039386431396638643826636c61696d5f7569643d6d774b683074494c42666a6c657a52\" alt=\"Featured｜HelloGitHub\" width=\"250\" height=\"55\" data-canonical-src=\"https://api.hellogithub.com/v1/widgets/recommend.svg?rid=6de6147050c94db4aedfd7098d19f8d8\u0026amp;claim_uid=mwKh0tILBfjlezR\" style=\"max-width: 100%; height: auto; max-height: 55px;; aspect-ratio: 250 / 55; background-color: var(--bgColor-muted); border-radius: 6px\" class=\"js-gh-image-fallback\"\u003e\u003c/a\u003e\n\u003ca href=\"https://trendshift.io/repositories/12152\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/1d94fbf36a716f4b013441b2191ef3db920589f735a6f17dad2d5997ad53ea75/68747470733a2f2f7472656e6473686966742e696f2f6170692f62616467652f7265706f7369746f726965732f3132313532\" alt=\"binarywang/WxJava | 趋势转变\" width=\"250\" height=\"55\" data-canonical-src=\"https://trendshift.io/api/badge/repositories/12152\" style=\"max-width: 100%; height: auto; max-height: 55px;; aspect-ratio: 250 / 55; background-color: var(--bgColor-muted); border-radius: 6px\" class=\"js-gh-image-fallback\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.star-history.com/binarywang/wxjava\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/1b428057f086a972ce6d3123b710c6645e4e9904132a9e7e339366188f36a55e/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f62616467653f7265706f3d62696e61727977616e672f57784a617661\" alt=\"Star History\" width=\"250\" height=\"55\" data-canonical-src=\"https://api.star-history.com/badge?repo=binarywang/WxJava\" style=\"max-width: 100%; height: auto; max-height: 55px;; aspect-ratio: 250 / 55; background-color: var(--bgColor-muted); border-radius: 6px\" class=\"js-gh-image-fallback\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e微信 \u003ccode\u003eJava\u003c/code\u003e 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。\u003c/h3\u003e\u003ca id=\"user-content-微信-java-开发工具包支持包括微信支付开放平台公众号企业微信视频号小程序等微信功能模块的后端开发\" class=\"anchor\" aria-label=\"Permalink: 微信 Java 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。\" href=\"#微信-java-开发工具包支持包括微信支付开放平台公众号企业微信视频号小程序等微信功能模块的后端开发\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e特别赞助\u003c/h3\u003e\u003ca id=\"user-content-特别赞助\" class=\"anchor\" aria-label=\"Permalink: 特别赞助\" href=\"#特别赞助\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://www.jeequan.com/product/jeepay.html\" rel=\"nofollow\"\u003e\u003cimg height=\"120\" src=\"https://camo.githubusercontent.com/9c0b75707ee80b224aecea2030a652e286aebb82862c9e0d45baafdd5c8cfb2d/68747470733a2f2f6a65657175616e2e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f6a65657061792f696d672f77786a6176615f6a65657061792e706e67\" alt=\"计全支付Jeepay,开源支付系统\" data-canonical-src=\"https://jeequan.oss-cn-beijing.aliyuncs.com/jeepay/img/wxjava_jeepay.png\" style=\"max-width: 100%; height: auto; max-height: 120px;\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.crmeb.net/u/wxjava\" rel=\"nofollow\"\u003e\u003cimg height=\"120\" src=\"https://camo.githubusercontent.com/52ba65556f25be919f2d3e1584ae498970d056f180c32aa7d5c83de7c8b5c30a/68747470733a2f2f63726d65626a6176616d65722e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f63726d6562696d6167652f696d6167652f323032362f30312f33302f30613731623262333533356434326231383766666639373763333366616133306d683967697067656a612e706e67\" alt=\"CRMEB\" data-canonical-src=\"https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/image/2026/01/30/0a71b2b3535d42b187fff977c33faa30mh9gipgeja.png\" style=\"max-width: 100%; height: auto; max-height: 120px;\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp dir=\"auto\"\u003e赞助商招募中，欢迎联系合作。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e关注公众号\u003c/h3\u003e\u003ca id=\"user-content-关注公众号\" class=\"anchor\" aria-label=\"Permalink: 关注公众号\" href=\"#关注公众号\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e想获得技术交流群（QQ群/微信群/钉钉群）等信息，请扫码关注 \u003ccode\u003eWxJava\u003c/code\u003e 公众号：\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e\u003ca href=\"https://mp.weixin.qq.com/mp/homepage?__biz=MzI3MzAwMzk4OA==\u0026amp;hid=1\u0026amp;sn=f31af3bf562b116b061c9ab4edf70b61\u0026amp;scene=18#wechat_redirect\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/8c7e310e01d7c81871c38a129ece6c1a0765d3953713f9bc8cb4f800076675a3/68747470733a2f2f67697465652e636f6d2f62696e6172792f77656978696e2d6a6176612d746f6f6c732f7261772f646576656c6f702f696d616765732f7172636f6465732f6d702e706e67\" alt=\"WxJava 公众号二维码\" data-canonical-src=\"https://gitee.com/binary/weixin-java-tools/raw/develop/images/qrcodes/mp.png\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e目录索引\u003c/h3\u003e\u003ca id=\"user-content-目录索引\" class=\"anchor\" aria-label=\"Permalink: 目录索引\" href=\"#目录索引\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B3%E5%88%86%E9%92%9F\"\u003e快速开始（3分钟）\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#ai-%E7%BC%96%E7%A8%8B%E6%99%BA%E8%83%BD%E4%BD%93-skill-%E5%AE%89%E8%A3%85\"\u003eAI 编程智能体 SKILL 安装\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E6%88%91%E8%AF%A5%E9%80%89%E5%93%AA%E4%B8%AA%E6%A8%A1%E5%9D%97\"\u003e我该选哪个模块？\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#maven-%E5%BC%95%E7%94%A8%E6%96%B9%E5%BC%8F\"\u003eMaven 引用方式\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E6%9C%80%E5%B0%8F%E7%A4%BA%E4%BE%8B\"\u003e最小示例\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E9%87%8D%E8%A6%81%E4%BF%A1%E6%81%AF\"\u003e重要信息\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E5%85%B6%E4%BB%96%E8%AF%B4%E6%98%8E\"\u003e其他说明\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E\"\u003e版本说明\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E5%BA%94%E7%94%A8%E6%A1%88%E4%BE%8B\"\u003e应用案例\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E7%89%B9%E5%88%AB%E8%B5%9E%E5%8A%A9\"\u003e特别赞助\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E5%85%B3%E6%B3%A8%E5%85%AC%E4%BC%97%E5%8F%B7\"\u003e关注公众号\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#%E8%B4%A1%E7%8C%AE%E8%80%85%E5%88%97%E8%A1%A8\"\u003e贡献者列表\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e快速开始（3分钟）\u003c/h3\u003e\u003ca id=\"user-content-快速开始3分钟\" class=\"anchor\" aria-label=\"Permalink: 快速开始（3分钟）\" href=\"#快速开始3分钟\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003col dir=\"auto\"\u003e\n\u003cli\u003e根据业务场景选择模块（见下方“我该选哪个模块？”）\u003c/li\u003e\n\u003cli\u003e引入 Maven 依赖并选择对应模块\u003c/li\u003e\n\u003cli\u003e参考最小示例完成初始化并调用 API\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAI 编程智能体 SKILL 安装\u003c/h3\u003e\u003ca id=\"user-content-ai-编程智能体-skill-安装\" class=\"anchor\" aria-label=\"Permalink: AI 编程智能体 SKILL 安装\" href=\"#ai-编程智能体-skill-安装\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e仓库的 \u003ca href=\"/binarywang/WxJava/blob/develop/skills\"\u003e\u003ccode\u003eskills\u003c/code\u003e\u003c/a\u003e 目录提供面向 WxJava 用户和贡献者的通用 SKILL，包括模块选择、接入、排障、接口贡献和升级迁移。每个 SKILL 都以 \u003ccode\u003eSKILL.md\u003c/code\u003e 为入口，可用于支持该约定的 AI 编程智能体。\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e支持远程安装 SKILL 的智能体，可以直接使用自然语言指令安装所需目录。例如：\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp dir=\"auto\"\u003e安装 \u003ca href=\"https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide\"\u003ehttps://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide\u003c/a\u003e 中的技能。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp dir=\"auto\"\u003e可安装的 SKILL 包括：\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-module-selector\"\u003e模块选择\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide\"\u003e接入指南\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-troubleshooter\"\u003e故障排查\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-api-contributor\"\u003e接口贡献\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-upgrade-guide\"\u003e升级迁移\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e不支持远程安装时，可将所需的 \u003ccode\u003eskills/wxjava-*\u003c/code\u003e 目录复制到智能体的 SKILL 目录或工作区配置目录；不同智能体的目录和启用方式请以其官方文档为准。\u003c/p\u003e\n\u003cp dir=\"auto\"\u003e以 Codex 为例，可复制到个人 SKILL 目录：\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"git clone https://github.com/binarywang/WxJava.git\nmkdir -p \u0026quot;${CODEX_HOME:-$HOME/.codex}/skills\u0026quot;\ncp -R WxJava/skills/wxjava-* \u0026quot;${CODEX_HOME:-$HOME/.codex}/skills/\u0026quot;\"\u003e\u003cpre\u003egit clone https://github.com/binarywang/WxJava.git\nmkdir -p \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e${CODEX_HOME\u003cspan class=\"pl-k\"\u003e:-\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$HOME\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e/\u003c/span\u003e.codex}\u003c/span\u003e/skills\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\ncp -R WxJava/skills/wxjava-\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e${CODEX_HOME\u003cspan class=\"pl-k\"\u003e:-\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$HOME\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e/\u003c/span\u003e.codex}\u003c/span\u003e/skills/\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e如果已在本仓库根目录，可直接执行：\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"mkdir -p \u0026quot;${CODEX_HOME:-$HOME/.codex}/skills\u0026quot;\ncp -R skills/wxjava-* \u0026quot;${CODEX_HOME:-$HOME/.codex}/skills/\u0026quot;\"\u003e\u003cpre\u003emkdir -p \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e${CODEX_HOME\u003cspan class=\"pl-k\"\u003e:-\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$HOME\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e/\u003c/span\u003e.codex}\u003c/span\u003e/skills\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\ncp -R skills/wxjava-\u003cspan class=\"pl-k\"\u003e*\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e${CODEX_HOME\u003cspan class=\"pl-k\"\u003e:-\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$HOME\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e/\u003c/span\u003e.codex}\u003c/span\u003e/skills/\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e重启或新建智能体会话后，即可按需使用。例如：\u003ccode\u003e使用 wxjava-integration-guide 为我的 Spring Boot 项目接入微信支付。\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e我该选哪个模块？\u003c/h3\u003e\u003ca id=\"user-content-我该选哪个模块\" class=\"anchor\" aria-label=\"Permalink: 我该选哪个模块？\" href=\"#我该选哪个模块\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cmarkdown-accessiblity-table\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e业务场景\u003c/th\u003e\n\u003cth\u003e模块\u003c/th\u003e\n\u003cth\u003eartifactId\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e微信公众号开发\u003c/td\u003e\n\u003ctd\u003eMP\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eweixin-java-mp\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e微信小程序开发\u003c/td\u003e\n\u003ctd\u003eMiniApp\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eweixin-java-miniapp\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e微信支付\u003c/td\u003e\n\u003ctd\u003ePay\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eweixin-java-pay\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e企业微信\u003c/td\u003e\n\u003ctd\u003eCP\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eweixin-java-cp\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e微信开放平台（第三方平台）\u003c/td\u003e\n\u003ctd\u003eOpen\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eweixin-java-open\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e视频号 / 微信小店\u003c/td\u003e\n\u003ctd\u003eChannel\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003eweixin-java-channel\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/markdown-accessiblity-table\u003e\n\u003cblockquote\u003e\n\u003cp dir=\"auto\"\u003e移动端（iOS/Android）微信登录、分享等能力仍需集成微信官方客户端 SDK；本项目为服务端 SDK。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e重要信息\u003c/h3\u003e\u003ca id=\"user-content-重要信息\" class=\"anchor\" aria-label=\"Permalink: 重要信息\" href=\"#重要信息\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003col dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://mp.weixin.qq.com/s/wM_UlMsDm3IZ1CPPDvcvQw\" rel=\"nofollow\"\u003e\u003ccode\u003eWxJava\u003c/code\u003e 荣获 \u003ccode\u003eGitCode\u003c/code\u003e 2024年度十大开源社区奖项\u003c/a\u003e。\u003c/li\u003e\n\u003cli\u003e项目合作洽谈请联系微信\u003ccode\u003ebinary0000\u003c/code\u003e（在微信里自行搜索并添加好友，请注明来意，如有关于SDK问题需讨论请参考下文入群讨论，不要加此微信）。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e2026-01-03 发布 \u003ca href=\"https://mp.weixin.qq.com/s/mJoFtGc25pXCn3uZRh6Q-w\" rel=\"nofollow\"\u003e【4.8.0正式版】\u003c/a\u003e\u003c/strong\u003e！\u003c/li\u003e\n\u003cli\u003e贡献源码可以参考视频：\u003ca href=\"https://mp.weixin.qq.com/s/3xUZSATWwHR_gZZm207h7Q\" rel=\"nofollow\"\u003e【贡献源码全过程（上集）】\u003c/a\u003e、\u003ca href=\"https://mp.weixin.qq.com/s/nyzJwVVoYSJ4hSbwyvTx9A\" rel=\"nofollow\"\u003e【贡献源码全过程（下集）】\u003c/a\u003e ，友情提供：\u003ca href=\"https://space.bilibili.com/473631007\" rel=\"nofollow\"\u003e程序员小山与Bug\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e新手重要提示：本项目仅是一个SDK开发工具包，未提供Web实现，建议使用 \u003ccode\u003emaven\u003c/code\u003e 或 \u003ccode\u003egradle\u003c/code\u003e 引用本项目即可使用本SDK提供的各种功能，详情可参考 \u003cstrong\u003e\u003ca href=\"/binarywang/WxJava/blob/develop/demo.md\"\u003e【Demo项目】\u003c/a\u003e\u003c/strong\u003e 或本项目中的部分单元测试代码；\u003c/li\u003e\n\u003cli\u003e微信开发新手请务必阅读【开发文档】（\u003ca href=\"https://gitee.com/binary/weixin-java-tools/wikis/Home\" rel=\"nofollow\"\u003eGitee Wiki\u003c/a\u003e 或者 \u003ca href=\"https://github.com/binarywang/WxJava/wiki\"\u003eGithub Wiki\u003c/a\u003e）的常见问题部分，可以少走很多弯路，节省不少时间。\u003c/li\u003e\n\u003cli\u003e技术交流群：想获得QQ群/微信群/钉钉企业群等信息的同学，请使用微信扫描上面的微信公众号二维码关注 \u003ccode\u003eWxJava\u003c/code\u003e 后点击相关菜单即可获取加入方式，同时也可以在微信中搜索 \u003ccode\u003eweixin-java-tools\u003c/code\u003e 或 \u003ccode\u003eWxJava\u003c/code\u003e 后选择正确的公众号进行关注，该公众号会及时通知SDK相关更新信息，并不定期分享微信Java开发相关技术知识；\u003c/li\u003e\n\u003cli\u003e钉钉技术交流群：\u003ccode\u003e32206329\u003c/code\u003e（技术交流2群）, \u003ccode\u003e30294972\u003c/code\u003e（技术交流1群，目前已满），\u003ccode\u003e35724728\u003c/code\u003e（通知群，实时通知Github项目变更记录）。\u003c/li\u003e\n\u003cli\u003e微信开发新手或者Java开发新手在群内提问或新开Issue提问前，请先阅读\u003ca href=\"https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md\"\u003e【提问的智慧】\u003c/a\u003e，并确保已查阅过 \u003ca href=\"https://github.com/binarywang/WxJava/wiki\"\u003e【开发文档Wiki】\u003c/a\u003e ，避免浪费大家的宝贵时间；\u003c/li\u003e\n\u003cli\u003e寻求帮助时需贴代码或大长串异常信息的，请利用 \u003ca href=\"http://paste.ubuntu.com\" rel=\"nofollow\"\u003ehttp://paste.ubuntu.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e其他说明\u003c/h3\u003e\u003ca id=\"user-content-其他说明\" class=\"anchor\" aria-label=\"Permalink: 其他说明\" href=\"#其他说明\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003col dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003e阅读源码的同学请注意，本SDK为简化代码编译时加入了\u003ccode\u003elombok\u003c/code\u003e支持，如果不了解\u003ccode\u003elombok\u003c/code\u003e的话，请先学习下相关知识，比如可以阅读\u003ca href=\"https://mp.weixin.qq.com/s/cUc-bUcprycADfNepnSwZQ\" rel=\"nofollow\"\u003e此文章\u003c/a\u003e；\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e如有新功能需求，发现BUG，或者由于微信官方接口调整导致的代码问题，可以直接在\u003ca href=\"https://github.com/binarywang/WxJava/issues\"\u003e【Issues】\u003c/a\u003e页提出issue，便于讨论追踪问题；\u003c/li\u003e\n\u003cli\u003e如果需要贡献代码，请务必在提交PR之前先仔细阅读\u003ca href=\"/binarywang/WxJava/blob/develop/CONTRIBUTING.md\"\u003e【代码贡献指南】\u003c/a\u003e，谢谢理解配合；\u003c/li\u003e\n\u003cli\u003e目前本\u003ccode\u003eSDK\u003c/code\u003e最新版本要求的\u003ccode\u003eJDK\u003c/code\u003e最低版本是\u003ccode\u003e8\u003c/code\u003e，使用\u003ccode\u003e7\u003c/code\u003e的同学可以使用\u003ccode\u003eWxJava\u003c/code\u003e \u003ccode\u003e3.8.0\u003c/code\u003e及以前版本，而还在使用\u003ccode\u003eJDK\u003c/code\u003e6的用户请参考\u003ca href=\"https://github.com/binarywang/weixin-java-tools-for-jdk6\"\u003e【此项目】\u003c/a\u003e ，而其他更早的JDK版本则需要自己改造实现。\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.oschina.net/p/weixin-java-tools-new\" rel=\"nofollow\"\u003e本项目在开源中国的页面\u003c/a\u003e，欢迎大家积极留言评分 🙂\u003c/li\u003e\n\u003cli\u003eSDK开发文档请查阅 \u003ca href=\"https://github.com/binarywang/WxJava/wiki\"\u003e【开发文档Wiki】\u003c/a\u003e，部分文档可能未能及时更新，如有发现，可以及时上报或者自行修改。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e如果本开发工具包对您有所帮助，欢迎对我们的努力进行肯定，可以直接前往\u003ca href=\"http://gitee.com/binary/weixin-java-tools\" rel=\"nofollow\"\u003e【托管于码云的项目首页】\u003c/a\u003e，在页尾部分找到“捐助”按钮进行打赏，多多益善 😄。非常感谢各位打赏和捐助的同学！\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e各个模块的Javadoc可以在线查看：\u003ca href=\"http://binary.ac.cn/weixin-java-miniapp-javadoc/\" rel=\"nofollow\"\u003eweixin-java-miniapp\u003c/a\u003e、\u003ca href=\"http://binary.ac.cn/weixin-java-pay-javadoc/\" rel=\"nofollow\"\u003eweixin-java-pay\u003c/a\u003e、\u003ca href=\"http://binary.ac.cn/weixin-java-mp-javadoc/\" rel=\"nofollow\"\u003eweixin-java-mp\u003c/a\u003e、\u003ca href=\"http://binary.ac.cn/weixin-java-common-javadoc/\" rel=\"nofollow\"\u003eweixin-java-common\u003c/a\u003e、\u003ca href=\"http://binary.ac.cn/weixin-java-cp-javadoc/\" rel=\"nofollow\"\u003eweixin-java-cp\u003c/a\u003e、\u003ca href=\"http://binary.ac.cn/weixin-java-open-javadoc/\" rel=\"nofollow\"\u003eweixin-java-open\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e本SDK项目在以下代码托管网站同步更新:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e码云：\u003ca href=\"https://gitee.com/binary/weixin-java-tools\" rel=\"nofollow\"\u003ehttps://gitee.com/binary/weixin-java-tools\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGitHub：\u003ca href=\"https://github.com/binarywang/WxJava\"\u003ehttps://github.com/binarywang/WxJava\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eMaven 引用方式\u003c/h3\u003e\u003ca id=\"user-content-maven-引用方式\" class=\"anchor\" aria-label=\"Permalink: Maven 引用方式\" href=\"#maven-引用方式\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e注意：最新版本（包括测试版）为 \u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/wx-java/versions\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/a6cf332b77361050671155f3444229e9f7e3e43894f0e67c23681e2197426aba/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e62696e61727977616e672f77782d6a6176612e737667\" alt=\"Maven Central\" data-canonical-src=\"https://img.shields.io/maven-central/v/com.github.binarywang/wx-java.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e，以下为最新正式版。\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e方式一：使用 BOM 统一管理版本（推荐）\u003c/h4\u003e\u003ca id=\"user-content-方式一使用-bom-统一管理版本推荐\" class=\"anchor\" aria-label=\"Permalink: 方式一：使用 BOM 统一管理版本（推荐）\" href=\"#方式一使用-bom-统一管理版本推荐\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e如果同时使用多个 WxJava 模块，推荐通过 BOM 统一管理版本，无需为每个模块单独指定版本号。\n\u003ccode\u003ewx-java-bom\u003c/code\u003e 从 \u003cstrong\u003e4.8.3.B\u003c/strong\u003e 版本开始提供，请使用该版本或更高版本：\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-text-xml notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;properties\u0026gt;\n  \u0026lt;wx-java.version\u0026gt;4.8.3.B\u0026lt;/wx-java.version\u0026gt;\n\u0026lt;/properties\u0026gt;\n\n\u0026lt;dependencyManagement\u0026gt;\n  \u0026lt;dependencies\u0026gt;\n    \u0026lt;dependency\u0026gt;\n      \u0026lt;groupId\u0026gt;com.github.binarywang\u0026lt;/groupId\u0026gt;\n      \u0026lt;artifactId\u0026gt;wx-java-bom\u0026lt;/artifactId\u0026gt;\n      \u0026lt;version\u0026gt;${wx-java.version}\u0026lt;/version\u0026gt;\n      \u0026lt;type\u0026gt;pom\u0026lt;/type\u0026gt;\n      \u0026lt;scope\u0026gt;import\u0026lt;/scope\u0026gt;\n    \u0026lt;/dependency\u0026gt;\n  \u0026lt;/dependencies\u0026gt;\n\u0026lt;/dependencyManagement\u0026gt;\"\u003e\u003cpre\u003e\u0026lt;\u003cspan class=\"pl-ent\"\u003eproperties\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003ewx-java\u003c/span\u003e.version\u0026gt;4.8.3.B\u0026lt;/\u003cspan class=\"pl-ent\"\u003ewx-java\u003c/span\u003e.version\u0026gt;\n\u0026lt;/\u003cspan class=\"pl-ent\"\u003eproperties\u003c/span\u003e\u0026gt;\n\n\u0026lt;\u003cspan class=\"pl-ent\"\u003edependencyManagement\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003edependencies\u003c/span\u003e\u0026gt;\n    \u0026lt;\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\n      \u0026lt;\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;com.github.binarywang\u0026lt;/\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;\n      \u0026lt;\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;wx-java-bom\u0026lt;/\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;\n      \u0026lt;\u003cspan class=\"pl-ent\"\u003eversion\u003c/span\u003e\u0026gt;${wx-java.version}\u0026lt;/\u003cspan class=\"pl-ent\"\u003eversion\u003c/span\u003e\u0026gt;\n      \u0026lt;\u003cspan class=\"pl-ent\"\u003etype\u003c/span\u003e\u0026gt;pom\u0026lt;/\u003cspan class=\"pl-ent\"\u003etype\u003c/span\u003e\u0026gt;\n      \u0026lt;\u003cspan class=\"pl-ent\"\u003escope\u003c/span\u003e\u0026gt;import\u0026lt;/\u003cspan class=\"pl-ent\"\u003escope\u003c/span\u003e\u0026gt;\n    \u0026lt;/\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\n  \u0026lt;/\u003cspan class=\"pl-ent\"\u003edependencies\u003c/span\u003e\u0026gt;\n\u0026lt;/\u003cspan class=\"pl-ent\"\u003edependencyManagement\u003c/span\u003e\u0026gt;\u003c/pre\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e之后直接引入所需模块，无需指定版本：\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-text-xml notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.github.binarywang\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;weixin-java-mp\u0026lt;/artifactId\u0026gt;\n\u0026lt;/dependency\u0026gt;\n\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.github.binarywang\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;weixin-java-pay\u0026lt;/artifactId\u0026gt;\n\u0026lt;/dependency\u0026gt;\"\u003e\u003cpre\u003e\u0026lt;\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;com.github.binarywang\u0026lt;/\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;weixin-java-mp\u0026lt;/\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;\n\u0026lt;/\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\n\u0026lt;\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;com.github.binarywang\u0026lt;/\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;weixin-java-pay\u0026lt;/\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;\n\u0026lt;/\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\u003c/pre\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e方式二：直接引用单个模块\u003c/h4\u003e\u003ca id=\"user-content-方式二直接引用单个模块\" class=\"anchor\" aria-label=\"Permalink: 方式二：直接引用单个模块\" href=\"#方式二直接引用单个模块\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"highlight highlight-text-xml notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.github.binarywang\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;（不同模块参考下文）\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;4.8.0\u0026lt;/version\u0026gt;\n\u0026lt;/dependency\u0026gt;\"\u003e\u003cpre\u003e\u0026lt;\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;com.github.binarywang\u0026lt;/\u003cspan class=\"pl-ent\"\u003egroupId\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;（不同模块参考下文）\u0026lt;/\u003cspan class=\"pl-ent\"\u003eartifactId\u003c/span\u003e\u0026gt;\n  \u0026lt;\u003cspan class=\"pl-ent\"\u003eversion\u003c/span\u003e\u0026gt;4.8.0\u0026lt;/\u003cspan class=\"pl-ent\"\u003eversion\u003c/span\u003e\u0026gt;\n\u0026lt;/\u003cspan class=\"pl-ent\"\u003edependency\u003c/span\u003e\u0026gt;\u003c/pre\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e微信小程序：\u003ccode\u003eweixin-java-miniapp\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e微信支付：\u003ccode\u003eweixin-java-pay\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e微信开放平台：\u003ccode\u003eweixin-java-open\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e微信公众号：\u003ccode\u003eweixin-java-mp\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e企业微信：\u003ccode\u003eweixin-java-cp\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e微信视频号/微信小店：\u003ccode\u003eweixin-java-channel\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003e\u003cstrong\u003e注意\u003c/strong\u003e：\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003e移动应用开发\u003c/strong\u003e：如果你的移动应用（iOS/Android App）需要接入微信登录、分享等功能：\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e微信登录（网页授权）：使用 \u003ccode\u003eweixin-java-open\u003c/code\u003e 模块，在服务端处理 OAuth 授权\u003c/li\u003e\n\u003cli\u003e微信支付：使用 \u003ccode\u003eweixin-java-pay\u003c/code\u003e 模块\u003c/li\u003e\n\u003cli\u003e客户端集成：需使用微信官方提供的移动端SDK（iOS/Android），本项目为服务端SDK\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e微信开放平台\u003c/strong\u003e（\u003ccode\u003eweixin-java-open\u003c/code\u003e）主要用于第三方平台，代公众号或小程序进行开发和管理\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e最小示例\u003c/h3\u003e\u003ca id=\"user-content-最小示例\" class=\"anchor\" aria-label=\"Permalink: 最小示例\" href=\"#最小示例\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e公众号（MP）示例：获取 AccessToken\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-source-java notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();\nconfig.setAppId(\u0026quot;your-app-id\u0026quot;);\nconfig.setSecret(\u0026quot;your-secret\u0026quot;);\n\nWxMpService wxMpService = new WxMpServiceImpl();\nwxMpService.setWxMpConfigStorage(config);\n\nString accessToken = wxMpService.getAccessToken();\nSystem.out.println(accessToken);\"\u003e\u003cpre\u003e\u003cspan class=\"pl-smi\"\u003eWxMpDefaultConfigImpl\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e = \u003cspan class=\"pl-k\"\u003enew\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003eWxMpDefaultConfigImpl\u003c/span\u003e();\n\u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003esetAppId\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"your-app-id\"\u003c/span\u003e);\n\u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003esetSecret\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"your-secret\"\u003c/span\u003e);\n\n\u003cspan class=\"pl-smi\"\u003eWxMpService\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003ewxMpService\u003c/span\u003e = \u003cspan class=\"pl-k\"\u003enew\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003eWxMpServiceImpl\u003c/span\u003e();\n\u003cspan class=\"pl-s1\"\u003ewxMpService\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003esetWxMpConfigStorage\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e);\n\n\u003cspan class=\"pl-smi\"\u003eString\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eaccessToken\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003ewxMpService\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003egetAccessToken\u003c/span\u003e();\n\u003cspan class=\"pl-smi\"\u003eSystem\u003c/span\u003e.\u003cspan class=\"pl-s1\"\u003eout\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003eprintln\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eaccessToken\u003c/span\u003e);\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e小程序（MiniApp）示例：code2Session\u003c/summary\u003e\n\u003cdiv class=\"highlight highlight-source-java notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();\nconfig.setAppid(\u0026quot;your-app-id\u0026quot;);\nconfig.setSecret(\u0026quot;your-secret\u0026quot;);\n\nWxMaService wxMaService = new WxMaServiceImpl();\nwxMaService.setWxMaConfig(config);\n\nWxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo(\u0026quot;js-code\u0026quot;);\nSystem.out.println(result.getOpenid());\"\u003e\u003cpre\u003e\u003cspan class=\"pl-smi\"\u003eWxMaDefaultConfigImpl\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e = \u003cspan class=\"pl-k\"\u003enew\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003eWxMaDefaultConfigImpl\u003c/span\u003e();\n\u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003esetAppid\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"your-app-id\"\u003c/span\u003e);\n\u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003esetSecret\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"your-secret\"\u003c/span\u003e);\n\n\u003cspan class=\"pl-smi\"\u003eWxMaService\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003ewxMaService\u003c/span\u003e = \u003cspan class=\"pl-k\"\u003enew\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003eWxMaServiceImpl\u003c/span\u003e();\n\u003cspan class=\"pl-s1\"\u003ewxMaService\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003esetWxMaConfig\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003econfig\u003c/span\u003e);\n\n\u003cspan class=\"pl-smi\"\u003eWxMaJscode2SessionResult\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eresult\u003c/span\u003e = \u003cspan class=\"pl-s1\"\u003ewxMaService\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003egetUserService\u003c/span\u003e().\u003cspan class=\"pl-en\"\u003egetSessionInfo\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"js-code\"\u003c/span\u003e);\n\u003cspan class=\"pl-smi\"\u003eSystem\u003c/span\u003e.\u003cspan class=\"pl-s1\"\u003eout\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003eprintln\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eresult\u003c/span\u003e.\u003cspan class=\"pl-en\"\u003egetOpenid\u003c/span\u003e());\u003c/pre\u003e\u003c/div\u003e\n\u003c/details\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e版本说明\u003c/h3\u003e\u003ca id=\"user-content-版本说明\" class=\"anchor\" aria-label=\"Permalink: 版本说明\" href=\"#版本说明\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdetails\u003e\n\u003csummary\u003e点此展开查看\u003c/summary\u003e\n\u003col dir=\"auto\"\u003e\n\u003cli\u003e本项目定为大约每半年左右发布一次正式版，遇到重大问题需修复会及时提交新版本，欢迎大家随时提交 \u003ccode\u003ePull Request\u003c/code\u003e；\u003c/li\u003e\n\u003cli\u003e每次代码更新都会自动构建出新版本方便及时尝鲜，版本号格式为 \u003ccode\u003ex.x.x-时间戳\u003c/code\u003e;\u003c/li\u003e\n\u003cli\u003e发布正式版时，\u003ccode\u003edevelop\u003c/code\u003e 分支代码合并进入 \u003ccode\u003erelease\u003c/code\u003e 分支），版本号格式为 \u003ccode\u003eX.X.0\u003c/code\u003e（如\u003ccode\u003e2.1.0\u003c/code\u003e，\u003ccode\u003e2.2.0\u003c/code\u003e等）；\u003c/li\u003e\n\u003cli\u003e每隔一段时间后，会发布测试版本（如\u003ccode\u003e3.6.8.B\u003c/code\u003e，即尾号不为0，并添加B，以区别于正式版），代码仅存在于 \u003ccode\u003edevelop\u003c/code\u003e 分支中；\u003c/li\u003e\n\u003cli\u003e目前最新版本号为 \u003ca href=\"http://mvnrepository.com/artifact/com.github.binarywang/wx-java\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/a6cf332b77361050671155f3444229e9f7e3e43894f0e67c23681e2197426aba/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e62696e61727977616e672f77782d6a6176612e737667\" alt=\"Maven Central\" data-canonical-src=\"https://img.shields.io/maven-central/v/com.github.binarywang/wx-java.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e ，也可以通过访问以下链接分别查看各个模块最新的版本：\n\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-pay/versions\" rel=\"nofollow\"\u003e【微信支付】\u003c/a\u003e 、\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-miniapp/versions\" rel=\"nofollow\"\u003e【小程序】\u003c/a\u003e 、\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-mp/versions\" rel=\"nofollow\"\u003e【公众号】\u003c/a\u003e 、\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-cp/versions\" rel=\"nofollow\"\u003e【企业微信】\u003c/a\u003e、\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-open/versions\" rel=\"nofollow\"\u003e【开放平台】\u003c/a\u003e、\u003ca href=\"https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-channel/versions\" rel=\"nofollow\"\u003e【视频号】\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/details\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e应用案例\u003c/h3\u003e\u003ca id=\"user-content-应用案例\" class=\"anchor\" aria-label=\"Permalink: 应用案例\" href=\"#应用案例\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e完整案例登记列表，请\u003ca href=\"https://github.com/binarywang/WxJava/issues/729\" data-hovercard-type=\"issue\" data-hovercard-url=\"/binarywang/WxJava/issues/729/hovercard\"\u003e【访问这里】\u003c/a\u003e查看，欢迎登记更多的案例。\u003c/p\u003e\n\u003cdetails\u003e\n\u003csummary\u003e以下为节选的部分案例， 点此展开查看\u003c/summary\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e开源项目：\u003c/h4\u003e\u003ca id=\"user-content-开源项目\" class=\"anchor\" aria-label=\"Permalink: 开源项目：\" href=\"#开源项目\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e基于微信公众号的签到、抽奖、发送弹幕程序：\u003ca href=\"https://github.com/workcheng/weiya\"\u003ehttps://github.com/workcheng/weiya\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJeepay 支付系统：\u003ca href=\"https://gitee.com/jeequan/jeepay\" rel=\"nofollow\"\u003ehttps://gitee.com/jeequan/jeepay\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e微同商城：\u003ca href=\"https://gitee.com/fuyang_lipengjun/platform\" rel=\"nofollow\"\u003ehttps://gitee.com/fuyang_lipengjun/platform\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e微信点餐系统：\u003ca href=\"https://github.com/sqmax/springboot-project\"\u003ehttps://github.com/sqmax/springboot-project\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e专注批量推送的小而美的工具：\u003ca href=\"https://github.com/rememberber/WePush\"\u003ehttps://github.com/rememberber/WePush\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eyshop意象商城系统：\u003ca href=\"https://gitee.com/guchengwuyue/yshopmall\" rel=\"nofollow\"\u003ehttps://gitee.com/guchengwuyue/yshopmall\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ewx-manage（微信公众号管理项目）：\u003ca href=\"https://github.com/niefy/wx-manage\"\u003ehttps://github.com/niefy/wx-manage\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e基于若依开发的微信公众号管理系统：\u003ca href=\"https://gitee.com/joolun/JooLun-wx\" rel=\"nofollow\"\u003ehttps://gitee.com/joolun/JooLun-wx\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSAAS微信小程序电商：\u003ca href=\"https://gitee.com/wei-it/weiit-saas\" rel=\"nofollow\"\u003ehttps://gitee.com/wei-it/weiit-saas\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emall4j 电商商城系统：\u003ca href=\"https://gitee.com/gz-yami/mall4j\" rel=\"nofollow\"\u003ehttps://gitee.com/gz-yami/mall4j\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e小程序：\u003c/h4\u003e\u003ca id=\"user-content-小程序\" class=\"anchor\" aria-label=\"Permalink: 小程序：\" href=\"#小程序\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e（京东）友家铺子，友家铺子店长版，京粉精选\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://p98ahz3tg.bkt.clouddn.com/miniappqrcode.jpg\" rel=\"nofollow\"\u003e喵星人贴吧助手(扫码关注)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e树懒揽书+\u003c/li\u003e\n\u003cli\u003e广廉快线，鹏城巴士等\u003c/li\u003e\n\u003cli\u003e当燃挑战、sportlight轻灵运动\u003c/li\u003e\n\u003cli\u003e360考试宝典\u003c/li\u003e\n\u003cli\u003e民医台\u003c/li\u003e\n\u003cli\u003e来一团商家版\u003c/li\u003e\n\u003cli\u003e史必达（史丹利）\u003c/li\u003e\n\u003cli\u003e嘀嗒云印\u003c/li\u003e\n\u003cli\u003e维沃吼吼\u003c/li\u003e\n\u003cli\u003e王朝社区（比亚迪新能源社区）\u003c/li\u003e\n\u003cli\u003e极吼吼手机上门回收换新\u003c/li\u003e\n\u003cli\u003e未来信封\u003c/li\u003e\n\u003cli\u003e5G惠享\u003c/li\u003e\n\u003cli\u003e生菜wordpress转小程序\u003c/li\u003e\n\u003cli\u003e丽日购\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e公众号：\u003c/h4\u003e\u003ca id=\"user-content-公众号\" class=\"anchor\" aria-label=\"Permalink: 公众号：\" href=\"#公众号\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e中国电信上海网厅（sh_189）\u003c/li\u003e\n\u003cli\u003eE答平台\u003c/li\u003e\n\u003cli\u003e宁夏生鲜365\u003c/li\u003e\n\u003cli\u003e通服货滴\u003c/li\u003e\n\u003cli\u003e神龙养车\u003c/li\u003e\n\u003cli\u003e沃音乐商务智能\u003c/li\u003e\n\u003cli\u003e光环云社群\u003c/li\u003e\n\u003cli\u003e手机排队\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.oneminsport.com/\" rel=\"nofollow\"\u003e全民约跑健身便利店\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e民医台\u003c/li\u003e\n\u003cli\u003eYshopMall\u003c/li\u003e\n\u003cli\u003e好行景区直通车以及全国40多个公众号\u003c/li\u003e\n\u003cli\u003e我奥篮球公众号\u003c/li\u003e\n\u003cli\u003e未来信封官微\u003c/li\u003e\n\u003cli\u003e银川智云问诊\u003c/li\u003e\n\u003cli\u003e5G惠享\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e企业微信：\u003c/h4\u003e\u003ca id=\"user-content-企业微信\" class=\"anchor\" aria-label=\"Permalink: 企业微信：\" href=\"#企业微信\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eHTC企业微信\u003c/li\u003e\n\u003cli\u003e掌上史丹利\u003c/li\u003e\n\u003cli\u003e药店益\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch4 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e其他：\u003c/h4\u003e\u003ca id=\"user-content-其他\" class=\"anchor\" aria-label=\"Permalink: 其他：\" href=\"#其他\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e高善人力资源\u003c/li\u003e\n\u003cli\u003e小猪餐餐\u003c/li\u003e\n\u003cli\u003e餐饮系统\u003c/li\u003e\n\u003cli\u003e微信公众号管理系统：\u003ca href=\"http://demo.joolun.com\" rel=\"nofollow\"\u003ehttp://demo.joolun.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e锐捷网络：Saleslink\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003chr\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e贡献者列表\u003c/h3\u003e\u003ca id=\"user-content-贡献者列表\" class=\"anchor\" aria-label=\"Permalink: 贡献者列表\" href=\"#贡献者列表\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e特别感谢参与贡献的所有同学，所有贡献者列表请在\u003ca href=\"https://github.com/binarywang/WxJava/graphs/contributors\"\u003e此处\u003c/a\u003e查看，欢迎大家继续踊跃贡献代码！\u003c/p\u003e\n\u003ca href=\"https://github.com/binarywang/WxJava/graphs/contributors\"\u003e\n  \u003cimg src=\"https://camo.githubusercontent.com/bc44b33d111b12230976b9837fcd30c8bdbf2da245c95c30a721b48f9300961f/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d62696e61727977616e672f57784a617661\" data-canonical-src=\"https://contrib.rocks/image?repo=binarywang/WxJava\" style=\"max-width: 100%;\"\u003e\n\u003c/a\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eGitHub Stargazers over time\u003c/h3\u003e\u003ca id=\"user-content-github-stargazers-over-time\" class=\"anchor\" aria-label=\"Permalink: GitHub Stargazers over time\" href=\"#github-stargazers-over-time\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003ca href=\"https://www.star-history.com/?repos=binarywang%2FWxJava\u0026amp;type=date\u0026amp;legend=top-left\" rel=\"nofollow\"\u003e\n \u003cthemed-picture data-catalyst-inline=\"true\"\u003e\u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://camo.githubusercontent.com/453bf18eeb3d68a7a1886b5aa57eeacf346e7e7d9d5ccb877f5944a7cf1bfb28/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f63686172743f7265706f733d62696e61727977616e672f57784a61766126747970653d64617465267468656d653d6461726b266c6567656e643d746f702d6c656674267365616c65645f746f6b656e3d4f50346b756379787a57374a47506f66514a7a49746f4163665544337161706846753345705f6454616c5f5677637674534c56474d415f542d31656d74774b3677306735654b5664665a7966424256596c634671764c523945686b345033756f44357948343448554954327a6a766e4e544959685541\" data-canonical-src=\"https://api.star-history.com/chart?repos=binarywang/WxJava\u0026amp;type=date\u0026amp;theme=dark\u0026amp;legend=top-left\u0026amp;sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA\"\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://camo.githubusercontent.com/0d8f9a3aaa9ad95d1bb749174f60dca8fb55c60eea23fabb10463ec7ed9bd5a9/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f63686172743f7265706f733d62696e61727977616e672f57784a61766126747970653d64617465266c6567656e643d746f702d6c656674267365616c65645f746f6b656e3d4f50346b756379787a57374a47506f66514a7a49746f4163665544337161706846753345705f6454616c5f5677637674534c56474d415f542d31656d74774b3677306735654b5664665a7966424256596c634671764c523945686b345033756f44357948343448554954327a6a766e4e544959685541\" data-canonical-src=\"https://api.star-history.com/chart?repos=binarywang/WxJava\u0026amp;type=date\u0026amp;legend=top-left\u0026amp;sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA\"\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://camo.githubusercontent.com/0d8f9a3aaa9ad95d1bb749174f60dca8fb55c60eea23fabb10463ec7ed9bd5a9/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f63686172743f7265706f733d62696e61727977616e672f57784a61766126747970653d64617465266c6567656e643d746f702d6c656674267365616c65645f746f6b656e3d4f50346b756379787a57374a47506f66514a7a49746f4163665544337161706846753345705f6454616c5f5677637674534c56474d415f542d31656d74774b3677306735654b5664665a7966424256596c634671764c523945686b345033756f44357948343448554954327a6a766e4e544959685541\" data-canonical-src=\"https://api.star-history.com/chart?repos=binarywang/WxJava\u0026amp;type=date\u0026amp;legend=top-left\u0026amp;sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA\"\u003e\n \u003c/picture\u003e\u003c/themed-picture\u003e\n\u003c/a\u003e\n\u003c/article\u003e","richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"WxJava - 微信开发 Java SDK","fully_qualified_name":"WxJava - 微信开发 Java SDK","kind":"section_2","ident_start":3,"ident_end":33,"extent_start":0,"extent_end":18699,"ident_utf16":{"start":{"line_number":0,"utf16_col":3},"end":{"line_number":0,"utf16_col":25}},"extent_utf16":{"start":{"line_number":0,"utf16_col":0},"end":{"line_number":328,"utf16_col":0}}},{"name":"微信 `Java` 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。","fully_qualified_name":"微信 `Java` 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。","kind":"section_3","ident_start":1848,"ident_end":2009,"extent_start":1844,"extent_end":2011,"ident_utf16":{"start":{"line_number":16,"utf16_col":4},"end":{"line_number":16,"utf16_col":63}},"extent_utf16":{"start":{"line_number":16,"utf16_col":0},"end":{"line_number":18,"utf16_col":0}}},{"name":"特别赞助","fully_qualified_name":"特别赞助","kind":"section_3","ident_start":2015,"ident_end":2027,"extent_start":2011,"extent_end":2488,"ident_utf16":{"start":{"line_number":18,"utf16_col":4},"end":{"line_number":18,"utf16_col":8}},"extent_utf16":{"start":{"line_number":18,"utf16_col":0},"end":{"line_number":24,"utf16_col":0}}},{"name":"关注公众号","fully_qualified_name":"关注公众号","kind":"section_3","ident_start":2492,"ident_end":2507,"extent_start":2488,"extent_end":2852,"ident_utf16":{"start":{"line_number":24,"utf16_col":4},"end":{"line_number":24,"utf16_col":9}},"extent_utf16":{"start":{"line_number":24,"utf16_col":0},"end":{"line_number":29,"utf16_col":0}}},{"name":"目录索引","fully_qualified_name":"目录索引","kind":"section_3","ident_start":2856,"ident_end":2868,"extent_start":2852,"extent_end":3357,"ident_utf16":{"start":{"line_number":29,"utf16_col":4},"end":{"line_number":29,"utf16_col":8}},"extent_utf16":{"start":{"line_number":29,"utf16_col":0},"end":{"line_number":43,"utf16_col":0}}},{"name":"快速开始（3分钟）","fully_qualified_name":"快速开始（3分钟）","kind":"section_3","ident_start":3361,"ident_end":3386,"extent_start":3357,"extent_end":3561,"ident_utf16":{"start":{"line_number":43,"utf16_col":4},"end":{"line_number":43,"utf16_col":13}},"extent_utf16":{"start":{"line_number":43,"utf16_col":0},"end":{"line_number":48,"utf16_col":0}}},{"name":"AI 编程智能体 SKILL 安装","fully_qualified_name":"AI 编程智能体 SKILL 安装","kind":"section_3","ident_start":3565,"ident_end":3596,"extent_start":3561,"extent_end":5344,"ident_utf16":{"start":{"line_number":48,"utf16_col":4},"end":{"line_number":48,"utf16_col":21}},"extent_utf16":{"start":{"line_number":48,"utf16_col":0},"end":{"line_number":83,"utf16_col":0}}},{"name":"我该选哪个模块？","fully_qualified_name":"我该选哪个模块？","kind":"section_3","ident_start":5348,"ident_end":5372,"extent_start":5344,"extent_end":5885,"ident_utf16":{"start":{"line_number":83,"utf16_col":4},"end":{"line_number":83,"utf16_col":12}},"extent_utf16":{"start":{"line_number":83,"utf16_col":0},"end":{"line_number":96,"utf16_col":0}}},{"name":"重要信息","fully_qualified_name":"重要信息","kind":"section_3","ident_start":5889,"ident_end":5901,"extent_start":5885,"extent_end":8231,"ident_utf16":{"start":{"line_number":96,"utf16_col":4},"end":{"line_number":96,"utf16_col":8}},"extent_utf16":{"start":{"line_number":96,"utf16_col":0},"end":{"line_number":109,"utf16_col":0}}},{"name":"其他说明","fully_qualified_name":"其他说明","kind":"section_3","ident_start":8235,"ident_end":8247,"extent_start":8231,"extent_end":10428,"ident_utf16":{"start":{"line_number":109,"utf16_col":4},"end":{"line_number":109,"utf16_col":8}},"extent_utf16":{"start":{"line_number":109,"utf16_col":0},"end":{"line_number":123,"utf16_col":0}}},{"name":"Maven 引用方式","fully_qualified_name":"Maven 引用方式","kind":"section_3","ident_start":10432,"ident_end":10450,"extent_start":10428,"extent_end":12688,"ident_utf16":{"start":{"line_number":123,"utf16_col":4},"end":{"line_number":123,"utf16_col":14}},"extent_utf16":{"start":{"line_number":123,"utf16_col":0},"end":{"line_number":189,"utf16_col":0}}},{"name":"方式一：使用 BOM 统一管理版本（推荐）","fully_qualified_name":"方式一：使用 BOM 统一管理版本（推荐）","kind":"section_4","ident_start":10704,"ident_end":10757,"extent_start":10699,"extent_end":11653,"ident_utf16":{"start":{"line_number":126,"utf16_col":5},"end":{"line_number":126,"utf16_col":26}},"extent_utf16":{"start":{"line_number":126,"utf16_col":0},"end":{"line_number":162,"utf16_col":0}}},{"name":"方式二：直接引用单个模块","fully_qualified_name":"方式二：直接引用单个模块","kind":"section_4","ident_start":11658,"ident_end":11694,"extent_start":11653,"extent_end":12688,"ident_utf16":{"start":{"line_number":162,"utf16_col":5},"end":{"line_number":162,"utf16_col":17}},"extent_utf16":{"start":{"line_number":162,"utf16_col":0},"end":{"line_number":189,"utf16_col":0}}},{"name":"最小示例","fully_qualified_name":"最小示例","kind":"section_3","ident_start":12692,"ident_end":12704,"extent_start":12688,"extent_end":13582,"ident_utf16":{"start":{"line_number":189,"utf16_col":4},"end":{"line_number":189,"utf16_col":8}},"extent_utf16":{"start":{"line_number":189,"utf16_col":0},"end":{"line_number":226,"utf16_col":0}}},{"name":"版本说明","fully_qualified_name":"版本说明","kind":"section_3","ident_start":13586,"ident_end":13598,"extent_start":13582,"extent_end":15196,"ident_utf16":{"start":{"line_number":226,"utf16_col":4},"end":{"line_number":226,"utf16_col":8}},"extent_utf16":{"start":{"line_number":226,"utf16_col":0},"end":{"line_number":242,"utf16_col":0}}},{"name":"应用案例","fully_qualified_name":"应用案例","kind":"section_3","ident_start":15200,"ident_end":15212,"extent_start":15196,"extent_end":17374,"ident_utf16":{"start":{"line_number":242,"utf16_col":4},"end":{"line_number":242,"utf16_col":8}},"extent_utf16":{"start":{"line_number":242,"utf16_col":0},"end":{"line_number":312,"utf16_col":0}}},{"name":"开源项目：","fully_qualified_name":"开源项目：","kind":"section_4","ident_start":15441,"ident_end":15456,"extent_start":15436,"extent_end":16193,"ident_utf16":{"start":{"line_number":248,"utf16_col":5},"end":{"line_number":248,"utf16_col":10}},"extent_utf16":{"start":{"line_number":248,"utf16_col":0},"end":{"line_number":260,"utf16_col":0}}},{"name":"小程序：","fully_qualified_name":"小程序：","kind":"section_4","ident_start":16198,"ident_end":16210,"extent_start":16193,"extent_end":16717,"ident_utf16":{"start":{"line_number":260,"utf16_col":5},"end":{"line_number":260,"utf16_col":9}},"extent_utf16":{"start":{"line_number":260,"utf16_col":0},"end":{"line_number":279,"utf16_col":0}}},{"name":"公众号：","fully_qualified_name":"公众号：","kind":"section_4","ident_start":16722,"ident_end":16734,"extent_start":16717,"extent_end":17108,"ident_utf16":{"start":{"line_number":279,"utf16_col":5},"end":{"line_number":279,"utf16_col":9}},"extent_utf16":{"start":{"line_number":279,"utf16_col":0},"end":{"line_number":297,"utf16_col":0}}},{"name":"企业微信：","fully_qualified_name":"企业微信：","kind":"section_4","ident_start":17113,"ident_end":17128,"extent_start":17108,"extent_end":17178,"ident_utf16":{"start":{"line_number":297,"utf16_col":5},"end":{"line_number":297,"utf16_col":10}},"extent_utf16":{"start":{"line_number":297,"utf16_col":0},"end":{"line_number":302,"utf16_col":0}}},{"name":"其他：","fully_qualified_name":"其他：","kind":"section_4","ident_start":17183,"ident_end":17192,"extent_start":17178,"extent_end":17374,"ident_utf16":{"start":{"line_number":302,"utf16_col":5},"end":{"line_number":302,"utf16_col":8}},"extent_utf16":{"start":{"line_number":302,"utf16_col":0},"end":{"line_number":312,"utf16_col":0}}},{"name":"贡献者列表","fully_qualified_name":"贡献者列表","kind":"section_3","ident_start":17378,"ident_end":17393,"extent_start":17374,"extent_end":17720,"ident_utf16":{"start":{"line_number":312,"utf16_col":4},"end":{"line_number":312,"utf16_col":9}},"extent_utf16":{"start":{"line_number":312,"utf16_col":0},"end":{"line_number":319,"utf16_col":0}}},{"name":"GitHub Stargazers over time","fully_qualified_name":"GitHub Stargazers over time","kind":"section_3","ident_start":17724,"ident_end":17751,"extent_start":17720,"extent_end":18699,"ident_utf16":{"start":{"line_number":319,"utf16_col":4},"end":{"line_number":319,"utf16_col":31}},"extent_utf16":{"start":{"line_number":319,"utf16_col":0},"end":{"line_number":328,"utf16_col":0}}}]}},"codeViewLayoutRoute":{"repo":{"id":49122742,"defaultBranch":"develop","name":"WxJava","ownerLogin":"binarywang","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-01-06T08:24:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1343140?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"3kgp7bCGNFLZ0CgtdVptsjMBPp7f7qUhbj3l3-Js_mVmX-6UhcJc8_-qt2AELaj32ElFWmiOc3Ks0BVizSmVDg","allShortcutsEnabled":false,"treeExpanded":true,"path":"README.md","symbolsExpanded":false,"refInfo":{"name":"develop","listCacheKey":"v0:1791516850.0","canEdit":false,"currentOid":"2ca4dad6d89f8d1d299d10312af2d6ce1ae09f3f"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"":{"items":[{"name":".circleci","path":".circleci","contentType":"directory"},{"name":".devin","path":".devin","contentType":"directory"},{"name":".gitee","path":".gitee","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"images","path":"images","contentType":"directory"},{"name":"others","path":"others","contentType":"directory"},{"name":"quality-checks","path":"quality-checks","contentType":"directory"},{"name":"skills","path":"skills","contentType":"directory"},{"name":"solon-plugins","path":"solon-plugins","contentType":"directory"},{"name":"spring-boot-starters","path":"spring-boot-starters","contentType":"directory"},{"name":"weixin-graal","path":"weixin-graal","contentType":"directory"},{"name":"weixin-java-aispeech","path":"weixin-java-aispeech","contentType":"directory"},{"name":"weixin-java-channel","path":"weixin-java-channel","contentType":"directory"},{"name":"weixin-java-cloudbase","path":"weixin-java-cloudbase","contentType":"directory"},{"name":"weixin-java-common","path":"weixin-java-common","contentType":"directory"},{"name":"weixin-java-cp","path":"weixin-java-cp","contentType":"directory"},{"name":"weixin-java-miniapp","path":"weixin-java-miniapp","contentType":"directory"},{"name":"weixin-java-mp","path":"weixin-java-mp","contentType":"directory"},{"name":"weixin-java-open","path":"weixin-java-open","contentType":"directory"},{"name":"weixin-java-pay","path":"weixin-java-pay","contentType":"directory"},{"name":"weixin-java-qidian","path":"weixin-java-qidian","contentType":"directory"},{"name":"weixin-java-store","path":"weixin-java-store","contentType":"directory"},{"name":"wx-java-bom","path":"wx-java-bom","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".travis.yml","path":".travis.yml","contentType":"file"},{"name":"AGENTS.md","path":"AGENTS.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"demo.md","path":"demo.md","contentType":"file"},{"name":"pom.xml","path":"pom.xml","contentType":"file"}],"totalCount":33}},"fileTreeProcessingTime":7.967923,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"develop","listCacheKey":"v0:1791516850.0","canEdit":false,"refType":"branch","currentOid":"2ca4dad6d89f8d1d299d10312af2d6ce1ae09f3f","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"README.md","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/binarywang/WxJava/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"README.md","displayUrl":"https://github.com/binarywang/WxJava/blob/develop/README.md?raw=true","headerInfo":{"blobSize":"18.3 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"849abb6","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fbinarywang%2FWxJava%2Fblob%2Fdevelop%2FREADME.md","isCSV":false,"isRichtext":true,"lineInfo":{"truncatedLoc":"328","truncatedSloc":"261"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/binarywang/WxJava/blob/develop/README.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/binarywang/WxJava/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/binarywang/WxJava/raw/refs/heads/develop/README.md","renderImageOrRaw":false,"shortPath":null,"symbolsEnabled":true,"tabSize":2,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["## WxJava - 微信开发 Java SDK","[![Github](https://img.shields.io/github/stars/binarywang/WxJava?logo=github\u0026style=flat\u0026label=Stars)](https://github.com/binarywang/WxJava)","[![Gitee](https://gitee.com/binary/weixin-java-tools/badge/star.svg?theme=blue)](https://gitee.com/binary/weixin-java-tools)","[![GitCode](https://gitcode.com/binary/WxJava/star/badge.svg)](https://gitcode.com/binary/WxJava)","","[![GitHub release](https://img.shields.io/github/release/binarywang/WxJava?label=Release)](https://github.com/binarywang/WxJava/releases)","[![Maven Central](https://img.shields.io/maven-central/v/com.github.binarywang/wx-java?label=Maven)](https://central.sonatype.com/artifact/com.github.binarywang/wx-java/versions)","[![Build Status](https://img.shields.io/circleci/project/github/binarywang/WxJava/develop.svg?sanitize=true\u0026label=Build)](https://circleci.com/gh/binarywang/WxJava/tree/develop)","[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-支持-blue.svg)](https://www.jetbrains.com/?from=WxJava-weixin-java-tools)","[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)","[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/binarywang/WxJava)","","[\u003cimg src=\"https://api.hellogithub.com/v1/widgets/recommend.svg?rid=6de6147050c94db4aedfd7098d19f8d8\u0026claim_uid=mwKh0tILBfjlezR\" alt=\"Featured｜HelloGitHub\" width=\"250\" height=\"55\"\u003e](https://hellogithub.com/repository/6de6147050c94db4aedfd7098d19f8d8)","[\u003cimg src=\"https://trendshift.io/api/badge/repositories/12152\" alt=\"binarywang/WxJava | 趋势转变\" width=\"250\" height=\"55\"\u003e](https://trendshift.io/repositories/12152)","[\u003cimg src=\"https://api.star-history.com/badge?repo=binarywang/WxJava\" alt=\"Star History\" width=\"250\" height=\"55\"\u003e](https://www.star-history.com/binarywang/wxjava)","","### 微信 `Java` 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。","","### 特别赞助","- \u003ca href=\"https://www.jeequan.com/product/jeepay.html\"\u003e\u003cimg height=\"120\" src=\"https://jeequan.oss-cn-beijing.aliyuncs.com/jeepay/img/wxjava_jeepay.png\" alt=\"计全支付Jeepay,开源支付系统\"\u003e\u003c/a\u003e","- \u003ca href=\"https://github.crmeb.net/u/wxjava\"\u003e\u003cimg height=\"120\" src=\"https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/image/2026/01/30/0a71b2b3535d42b187fff977c33faa30mh9gipgeja.png\" alt=\"CRMEB\"\u003e\u003c/a\u003e","","\u003e 赞助商招募中，欢迎联系合作。","","### 关注公众号","想获得技术交流群（QQ群/微信群/钉钉群）等信息，请扫码关注 `WxJava` 公众号：","","[![WxJava 公众号二维码](https://gitee.com/binary/weixin-java-tools/raw/develop/images/qrcodes/mp.png)](https://mp.weixin.qq.com/mp/homepage?__biz=MzI3MzAwMzk4OA==\u0026hid=1\u0026sn=f31af3bf562b116b061c9ab4edf70b61\u0026scene=18#wechat_redirect)","","### 目录索引","- [快速开始（3分钟）](#快速开始3分钟)","- [AI 编程智能体 SKILL 安装](#ai-编程智能体-skill-安装)","- [我该选哪个模块？](#我该选哪个模块)","- [Maven 引用方式](#maven-引用方式)","- [最小示例](#最小示例)","- [重要信息](#重要信息)","- [其他说明](#其他说明)","- [版本说明](#版本说明)","- [应用案例](#应用案例)","- [特别赞助](#特别赞助)","- [关注公众号](#关注公众号)","- [贡献者列表](#贡献者列表)","","### 快速开始（3分钟）","1. 根据业务场景选择模块（见下方“我该选哪个模块？”）","2. 引入 Maven 依赖并选择对应模块","3. 参考最小示例完成初始化并调用 API","","### AI 编程智能体 SKILL 安装","","仓库的 [`skills`](skills) 目录提供面向 WxJava 用户和贡献者的通用 SKILL，包括模块选择、接入、排障、接口贡献和升级迁移。每个 SKILL 都以 `SKILL.md` 为入口，可用于支持该约定的 AI 编程智能体。","","支持远程安装 SKILL 的智能体，可以直接使用自然语言指令安装所需目录。例如：","","\u003e 安装 https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide 中的技能。","","可安装的 SKILL 包括：","","- [模块选择](https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-module-selector)","- [接入指南](https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide)","- [故障排查](https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-troubleshooter)","- [接口贡献](https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-api-contributor)","- [升级迁移](https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-upgrade-guide)","","不支持远程安装时，可将所需的 `skills/wxjava-*` 目录复制到智能体的 SKILL 目录或工作区配置目录；不同智能体的目录和启用方式请以其官方文档为准。","","以 Codex 为例，可复制到个人 SKILL 目录：","","```shell","git clone https://github.com/binarywang/WxJava.git","mkdir -p \"${CODEX_HOME:-$HOME/.codex}/skills\"","cp -R WxJava/skills/wxjava-* \"${CODEX_HOME:-$HOME/.codex}/skills/\"","```","","如果已在本仓库根目录，可直接执行：","","```shell","mkdir -p \"${CODEX_HOME:-$HOME/.codex}/skills\"","cp -R skills/wxjava-* \"${CODEX_HOME:-$HOME/.codex}/skills/\"","```","","重启或新建智能体会话后，即可按需使用。例如：`使用 wxjava-integration-guide 为我的 Spring Boot 项目接入微信支付。`","","### 我该选哪个模块？","","| 业务场景 | 模块 | artifactId |","|---|---|---|","| 微信公众号开发 | MP | `weixin-java-mp` |","| 微信小程序开发 | MiniApp | `weixin-java-miniapp` |","| 微信支付 | Pay | `weixin-java-pay` |","| 企业微信 | CP | `weixin-java-cp` |","| 微信开放平台（第三方平台） | Open | `weixin-java-open` |","| 视频号 / 微信小店 | Channel | `weixin-java-channel` |","","\u003e 移动端（iOS/Android）微信登录、分享等能力仍需集成微信官方客户端 SDK；本项目为服务端 SDK。","","### 重要信息","1. [`WxJava` 荣获 `GitCode` 2024年度十大开源社区奖项](https://mp.weixin.qq.com/s/wM_UlMsDm3IZ1CPPDvcvQw)。","2. 项目合作洽谈请联系微信`binary0000`（在微信里自行搜索并添加好友，请注明来意，如有关于SDK问题需讨论请参考下文入群讨论，不要加此微信）。","3. **2026-01-03 发布 [【4.8.0正式版】](https://mp.weixin.qq.com/s/mJoFtGc25pXCn3uZRh6Q-w)**！","5. 贡献源码可以参考视频：[【贡献源码全过程（上集）】](https://mp.weixin.qq.com/s/3xUZSATWwHR_gZZm207h7Q)、[【贡献源码全过程（下集）】](https://mp.weixin.qq.com/s/nyzJwVVoYSJ4hSbwyvTx9A) ，友情提供：[程序员小山与Bug](https://space.bilibili.com/473631007)","6. 新手重要提示：本项目仅是一个SDK开发工具包，未提供Web实现，建议使用 `maven` 或 `gradle` 引用本项目即可使用本SDK提供的各种功能，详情可参考 **[【Demo项目】](demo.md)** 或本项目中的部分单元测试代码；","7. 微信开发新手请务必阅读【开发文档】（[Gitee Wiki](https://gitee.com/binary/weixin-java-tools/wikis/Home) 或者 [Github Wiki](https://github.com/binarywang/WxJava/wiki)）的常见问题部分，可以少走很多弯路，节省不少时间。","8. 技术交流群：想获得QQ群/微信群/钉钉企业群等信息的同学，请使用微信扫描上面的微信公众号二维码关注 `WxJava` 后点击相关菜单即可获取加入方式，同时也可以在微信中搜索 `weixin-java-tools` 或 `WxJava` 后选择正确的公众号进行关注，该公众号会及时通知SDK相关更新信息，并不定期分享微信Java开发相关技术知识；","9. 钉钉技术交流群：`32206329`（技术交流2群）, `30294972`（技术交流1群，目前已满），`35724728`（通知群，实时通知Github项目变更记录）。","10. 微信开发新手或者Java开发新手在群内提问或新开Issue提问前，请先阅读[【提问的智慧】](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md)，并确保已查阅过 [【开发文档Wiki】](https://github.com/binarywang/WxJava/wiki) ，避免浪费大家的宝贵时间；","11. 寻求帮助时需贴代码或大长串异常信息的，请利用 http://paste.ubuntu.com ","","--------------------------------","### 其他说明","1. **阅读源码的同学请注意，本SDK为简化代码编译时加入了`lombok`支持，如果不了解`lombok`的话，请先学习下相关知识，比如可以阅读[此文章](https://mp.weixin.qq.com/s/cUc-bUcprycADfNepnSwZQ)；**","2. 如有新功能需求，发现BUG，或者由于微信官方接口调整导致的代码问题，可以直接在[【Issues】](https://github.com/binarywang/WxJava/issues)页提出issue，便于讨论追踪问题；","3. 如果需要贡献代码，请务必在提交PR之前先仔细阅读[【代码贡献指南】](CONTRIBUTING.md)，谢谢理解配合；","4. 目前本`SDK`最新版本要求的`JDK`最低版本是`8`，使用`7`的同学可以使用`WxJava` `3.8.0`及以前版本，而还在使用`JDK`6的用户请参考[【此项目】]( https://github.com/binarywang/weixin-java-tools-for-jdk6) ，而其他更早的JDK版本则需要自己改造实现。","5. [本项目在开源中国的页面](https://www.oschina.net/p/weixin-java-tools-new)，欢迎大家积极留言评分 🙂","6. SDK开发文档请查阅 [【开发文档Wiki】](https://github.com/binarywang/WxJava/wiki)，部分文档可能未能及时更新，如有发现，可以及时上报或者自行修改。","7. **如果本开发工具包对您有所帮助，欢迎对我们的努力进行肯定，可以直接前往[【托管于码云的项目首页】](http://gitee.com/binary/weixin-java-tools)，在页尾部分找到“捐助”按钮进行打赏，多多益善 😄。非常感谢各位打赏和捐助的同学！**","8. 各个模块的Javadoc可以在线查看：[weixin-java-miniapp](http://binary.ac.cn/weixin-java-miniapp-javadoc/)、[weixin-java-pay](http://binary.ac.cn/weixin-java-pay-javadoc/)、[weixin-java-mp](http://binary.ac.cn/weixin-java-mp-javadoc/)、[weixin-java-common](http://binary.ac.cn/weixin-java-common-javadoc/)、[weixin-java-cp](http://binary.ac.cn/weixin-java-cp-javadoc/)、[weixin-java-open](http://binary.ac.cn/weixin-java-open-javadoc/)","9. 本SDK项目在以下代码托管网站同步更新:","* 码云：https://gitee.com/binary/weixin-java-tools","* GitHub：https://github.com/binarywang/WxJava","","---------------------------------","### Maven 引用方式","注意：最新版本（包括测试版）为 [![Maven Central](https://img.shields.io/maven-central/v/com.github.binarywang/wx-java.svg)](https://central.sonatype.com/artifact/com.github.binarywang/wx-java/versions)，以下为最新正式版。","","#### 方式一：使用 BOM 统一管理版本（推荐）","","如果同时使用多个 WxJava 模块，推荐通过 BOM 统一管理版本，无需为每个模块单独指定版本号。","`wx-java-bom` 从 **4.8.3.B** 版本开始提供，请使用该版本或更高版本：","","```xml","\u003cproperties\u003e","  \u003cwx-java.version\u003e4.8.3.B\u003c/wx-java.version\u003e","\u003c/properties\u003e","","\u003cdependencyManagement\u003e","  \u003cdependencies\u003e","    \u003cdependency\u003e","      \u003cgroupId\u003ecom.github.binarywang\u003c/groupId\u003e","      \u003cartifactId\u003ewx-java-bom\u003c/artifactId\u003e","      \u003cversion\u003e${wx-java.version}\u003c/version\u003e","      \u003ctype\u003epom\u003c/type\u003e","      \u003cscope\u003eimport\u003c/scope\u003e","    \u003c/dependency\u003e","  \u003c/dependencies\u003e","\u003c/dependencyManagement\u003e","```","","之后直接引入所需模块，无需指定版本：","","```xml","\u003cdependency\u003e","  \u003cgroupId\u003ecom.github.binarywang\u003c/groupId\u003e","  \u003cartifactId\u003eweixin-java-mp\u003c/artifactId\u003e","\u003c/dependency\u003e","\u003cdependency\u003e","  \u003cgroupId\u003ecom.github.binarywang\u003c/groupId\u003e","  \u003cartifactId\u003eweixin-java-pay\u003c/artifactId\u003e","\u003c/dependency\u003e","```","","#### 方式二：直接引用单个模块","","```xml","\u003cdependency\u003e","  \u003cgroupId\u003ecom.github.binarywang\u003c/groupId\u003e","  \u003cartifactId\u003e（不同模块参考下文）\u003c/artifactId\u003e","  \u003cversion\u003e4.8.0\u003c/version\u003e","\u003c/dependency\u003e","```","","  - 微信小程序：`weixin-java-miniapp`   ","  - 微信支付：`weixin-java-pay`","  - 微信开放平台：`weixin-java-open`   ","  - 微信公众号：`weixin-java-mp`    ","  - 企业微信：`weixin-java-cp`","  - 微信视频号/微信小店：`weixin-java-channel`","","**注意**：","- **移动应用开发**：如果你的移动应用（iOS/Android App）需要接入微信登录、分享等功能：","  - 微信登录（网页授权）：使用 `weixin-java-open` 模块，在服务端处理 OAuth 授权","  - 微信支付：使用 `weixin-java-pay` 模块","  - 客户端集成：需使用微信官方提供的移动端SDK（iOS/Android），本项目为服务端SDK","- **微信开放平台**（`weixin-java-open`）主要用于第三方平台，代公众号或小程序进行开发和管理","","","","---------------------------------","### 最小示例","","\u003cdetails\u003e","\u003csummary\u003e公众号（MP）示例：获取 AccessToken\u003c/summary\u003e","","```java","WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();","config.setAppId(\"your-app-id\");","config.setSecret(\"your-secret\");","","WxMpService wxMpService = new WxMpServiceImpl();","wxMpService.setWxMpConfigStorage(config);","","String accessToken = wxMpService.getAccessToken();","System.out.println(accessToken);","```","","\u003c/details\u003e","","\u003cdetails\u003e","\u003csummary\u003e小程序（MiniApp）示例：code2Session\u003c/summary\u003e","","```java","WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();","config.setAppid(\"your-app-id\");","config.setSecret(\"your-secret\");","","WxMaService wxMaService = new WxMaServiceImpl();","wxMaService.setWxMaConfig(config);","","WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo(\"js-code\");","System.out.println(result.getOpenid());","```","","\u003c/details\u003e","","---------------------------------","### 版本说明","","\u003cdetails\u003e","\u003csummary\u003e点此展开查看\u003c/summary\u003e","  ","1. 本项目定为大约每半年左右发布一次正式版，遇到重大问题需修复会及时提交新版本，欢迎大家随时提交 `Pull Request`；","2. 每次代码更新都会自动构建出新版本方便及时尝鲜，版本号格式为 `x.x.x-时间戳`;","3. 发布正式版时，`develop` 分支代码合并进入 `release` 分支），版本号格式为 `X.X.0`（如`2.1.0`，`2.2.0`等）；","4. 每隔一段时间后，会发布测试版本（如`3.6.8.B`，即尾号不为0，并添加B，以区别于正式版），代码仅存在于 `develop` 分支中；","5. 目前最新版本号为 [![Maven Central](https://img.shields.io/maven-central/v/com.github.binarywang/wx-java.svg)](http://mvnrepository.com/artifact/com.github.binarywang/wx-java) ，也可以通过访问以下链接分别查看各个模块最新的版本： ","[【微信支付】](https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-pay/versions) 、[【小程序】](https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-miniapp/versions) 、[【公众号】](https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-mp/versions) 、[【企业微信】](https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-cp/versions)、[【开放平台】](https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-open/versions)、[【视频号】](https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-channel/versions)","","","\u003c/details\u003e","","----------------------------------","### 应用案例","完整案例登记列表，请[【访问这里】](https://github.com/binarywang/WxJava/issues/729)查看，欢迎登记更多的案例。","","\u003cdetails\u003e","\u003csummary\u003e以下为节选的部分案例， 点此展开查看\u003c/summary\u003e","","#### 开源项目：","- 基于微信公众号的签到、抽奖、发送弹幕程序：https://github.com/workcheng/weiya","- Jeepay 支付系统：https://gitee.com/jeequan/jeepay","- 微同商城：https://gitee.com/fuyang_lipengjun/platform","- 微信点餐系统：https://github.com/sqmax/springboot-project","- 专注批量推送的小而美的工具：https://github.com/rememberber/WePush","- yshop意象商城系统：https://gitee.com/guchengwuyue/yshopmall","- wx-manage（微信公众号管理项目）：https://github.com/niefy/wx-manage","- 基于若依开发的微信公众号管理系统：https://gitee.com/joolun/JooLun-wx","- SAAS微信小程序电商：https://gitee.com/wei-it/weiit-saas","- mall4j 电商商城系统：https://gitee.com/gz-yami/mall4j","","#### 小程序：","- （京东）友家铺子，友家铺子店长版，京粉精选","- [喵星人贴吧助手(扫码关注)](http://p98ahz3tg.bkt.clouddn.com/miniappqrcode.jpg)","- 树懒揽书+","- 广廉快线，鹏城巴士等","- 当燃挑战、sportlight轻灵运动","- 360考试宝典","- 民医台","- 来一团商家版","- 史必达（史丹利）","- 嘀嗒云印","- 维沃吼吼","- 王朝社区（比亚迪新能源社区）","- 极吼吼手机上门回收换新","- 未来信封 ","- 5G惠享","- 生菜wordpress转小程序","- 丽日购","","#### 公众号：","- 中国电信上海网厅（sh_189）","- E答平台","- 宁夏生鲜365","- 通服货滴","- 神龙养车","- 沃音乐商务智能","- 光环云社群","- 手机排队","- [全民约跑健身便利店](http://www.oneminsport.com/)","- 民医台","- YshopMall","- 好行景区直通车以及全国40多个公众号","- 我奥篮球公众号","- 未来信封官微","- 银川智云问诊","- 5G惠享","","#### 企业微信：","- HTC企业微信","- 掌上史丹利","- 药店益","","#### 其他：","- 高善人力资源","- 小猪餐餐","- 餐饮系统","- 微信公众号管理系统：http://demo.joolun.com","- 锐捷网络：Saleslink","","\u003c/details\u003e","","----------------------------------","### 贡献者列表","特别感谢参与贡献的所有同学，所有贡献者列表请在[此处](https://github.com/binarywang/WxJava/graphs/contributors)查看，欢迎大家继续踊跃贡献代码！","","\u003ca href=\"https://github.com/binarywang/WxJava/graphs/contributors\"\u003e","  \u003cimg src=\"https://contrib.rocks/image?repo=binarywang/WxJava\" /\u003e","\u003c/a\u003e","","### GitHub Stargazers over time","","\u003ca href=\"https://www.star-history.com/?repos=binarywang%2FWxJava\u0026type=date\u0026legend=top-left\"\u003e"," \u003cpicture\u003e","   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=binarywang/WxJava\u0026type=date\u0026theme=dark\u0026legend=top-left\u0026sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA\" /\u003e","   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=binarywang/WxJava\u0026type=date\u0026legend=top-left\u0026sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA\" /\u003e","   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=binarywang/WxJava\u0026type=date\u0026legend=top-left\u0026sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA\" /\u003e"," \u003c/picture\u003e","\u003c/a\u003e"],"stylingDirectives":[[[0,25,"pl-mh"],[3,25,"pl-en"]],[[0,1,"pl-s"],[1,3,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,99,"pl-corl"],[99,101,"pl-s"],[101,102,"pl-s"],[102,138,"pl-corl"],[138,139,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,78,"pl-corl"],[78,80,"pl-s"],[80,81,"pl-s"],[81,123,"pl-corl"],[123,124,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,60,"pl-corl"],[60,62,"pl-s"],[62,63,"pl-s"],[63,96,"pl-corl"],[96,97,"pl-s"]],[],[[0,1,"pl-s"],[1,3,"pl-s"],[17,18,"pl-s"],[18,19,"pl-s"],[19,88,"pl-corl"],[88,90,"pl-s"],[90,91,"pl-s"],[91,136,"pl-corl"],[136,137,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[16,17,"pl-s"],[17,18,"pl-s"],[18,98,"pl-corl"],[98,100,"pl-s"],[100,101,"pl-s"],[101,177,"pl-corl"],[177,178,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"],[17,119,"pl-corl"],[119,121,"pl-s"],[121,122,"pl-s"],[122,176,"pl-corl"],[176,177,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[22,23,"pl-s"],[23,24,"pl-s"],[24,80,"pl-corl"],[80,82,"pl-s"],[82,83,"pl-s"],[83,139,"pl-corl"],[139,140,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,70,"pl-corl"],[70,72,"pl-s"],[72,73,"pl-s"],[73,115,"pl-corl"],[115,116,"pl-s"]],[[0,1,"pl-s"],[1,3,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"],[17,47,"pl-corl"],[47,49,"pl-s"],[49,50,"pl-s"],[50,88,"pl-corl"],[88,89,"pl-s"]],[],[[0,1,"pl-s"],[2,5,"pl-ent"],[6,9,"pl-e"],[10,11,"pl-s"],[11,126,"pl-s"],[126,127,"pl-s"],[128,131,"pl-e"],[132,133,"pl-s"],[133,153,"pl-s"],[153,154,"pl-s"],[155,160,"pl-e"],[161,162,"pl-s"],[162,165,"pl-s"],[165,166,"pl-s"],[167,173,"pl-e"],[174,175,"pl-s"],[175,177,"pl-s"],[177,178,"pl-s"],[179,180,"pl-s"],[180,181,"pl-s"],[181,248,"pl-corl"],[248,249,"pl-s"]],[[0,1,"pl-s"],[2,5,"pl-ent"],[6,9,"pl-e"],[10,11,"pl-s"],[11,61,"pl-s"],[61,62,"pl-s"],[63,66,"pl-e"],[67,68,"pl-s"],[68,92,"pl-s"],[92,93,"pl-s"],[94,99,"pl-e"],[100,101,"pl-s"],[101,104,"pl-s"],[104,105,"pl-s"],[106,112,"pl-e"],[113,114,"pl-s"],[114,116,"pl-s"],[116,117,"pl-s"],[118,119,"pl-s"],[119,120,"pl-s"],[120,160,"pl-corl"],[160,161,"pl-s"]],[[0,1,"pl-s"],[2,5,"pl-ent"],[6,9,"pl-e"],[10,11,"pl-s"],[11,68,"pl-s"],[68,69,"pl-s"],[70,73,"pl-e"],[74,75,"pl-s"],[75,87,"pl-s"],[87,88,"pl-s"],[89,94,"pl-e"],[95,96,"pl-s"],[96,99,"pl-s"],[99,100,"pl-s"],[101,107,"pl-e"],[108,109,"pl-s"],[109,111,"pl-s"],[111,112,"pl-s"],[113,114,"pl-s"],[114,115,"pl-s"],[115,161,"pl-corl"],[161,162,"pl-s"]],[],[[0,63,"pl-mh"],[4,63,"pl-en"],[7,8,"pl-s"],[8,12,"pl-c1"],[12,13,"pl-s"]],[],[[0,8,"pl-mh"],[4,8,"pl-en"]],[[0,1,"pl-v"],[3,4,"pl-ent"],[5,9,"pl-e"],[10,11,"pl-s"],[11,54,"pl-s"],[54,55,"pl-s"],[57,60,"pl-ent"],[61,67,"pl-e"],[68,69,"pl-s"],[69,72,"pl-s"],[72,73,"pl-s"],[74,77,"pl-e"],[78,79,"pl-s"],[79,151,"pl-s"],[151,152,"pl-s"],[153,156,"pl-e"],[157,158,"pl-s"],[158,175,"pl-s"],[175,176,"pl-s"],[179,180,"pl-ent"]],[[0,1,"pl-v"],[3,4,"pl-ent"],[5,9,"pl-e"],[10,11,"pl-s"],[11,44,"pl-s"],[44,45,"pl-s"],[47,50,"pl-ent"],[51,57,"pl-e"],[58,59,"pl-s"],[59,62,"pl-s"],[62,63,"pl-s"],[64,67,"pl-e"],[68,69,"pl-s"],[69,192,"pl-s"],[192,193,"pl-s"],[194,197,"pl-e"],[198,199,"pl-s"],[199,204,"pl-s"],[204,205,"pl-s"],[208,209,"pl-ent"]],[],[[0,16,"pl-ent"],[0,2,"pl-ent"]],[[0,0,"pl-ent"]],[[0,9,"pl-mh"],[4,9,"pl-en"]],[[31,32,"pl-s"],[32,38,"pl-c1"],[38,39,"pl-s"]],[],[[0,1,"pl-s"],[1,3,"pl-s"],[16,17,"pl-s"],[17,18,"pl-s"],[18,94,"pl-corl"],[94,96,"pl-s"],[96,97,"pl-s"],[97,223,"pl-corl"],[223,224,"pl-s"]],[],[[0,8,"pl-mh"],[4,8,"pl-en"]],[[0,1,"pl-v"],[2,3,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,22,"pl-corl"],[22,23,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[20,21,"pl-s"],[21,22,"pl-s"],[22,40,"pl-corl"],[40,41,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,21,"pl-corl"],[21,22,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,26,"pl-corl"],[26,27,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,14,"pl-corl"],[14,15,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,14,"pl-corl"],[14,15,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,14,"pl-corl"],[14,15,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,14,"pl-corl"],[14,15,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,14,"pl-corl"],[14,15,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,14,"pl-corl"],[14,15,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,16,"pl-corl"],[16,17,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[8,9,"pl-s"],[9,10,"pl-s"],[10,16,"pl-corl"],[16,17,"pl-s"]],[],[[0,13,"pl-mh"],[4,13,"pl-en"]],[[0,1,"pl-s"],[1,2,"pl-v"]],[[0,1,"pl-s"],[1,2,"pl-v"]],[[0,1,"pl-s"],[1,2,"pl-v"]],[],[[0,21,"pl-mh"],[4,21,"pl-en"]],[],[[4,5,"pl-s"],[5,6,"pl-s"],[6,12,"pl-c1"],[12,13,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,21,"pl-corl"],[21,22,"pl-s"],[88,89,"pl-s"],[89,97,"pl-c1"],[97,98,"pl-s"]],[],[],[],[[0,92,"pl-ent"],[0,2,"pl-ent"],[5,86,"pl-corl"]],[[0,0,"pl-ent"]],[],[],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,88,"pl-corl"],[88,89,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,90,"pl-corl"],[90,91,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,87,"pl-corl"],[87,88,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,88,"pl-corl"],[88,89,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,86,"pl-corl"],[86,87,"pl-s"]],[],[[15,16,"pl-s"],[16,31,"pl-c1"],[31,32,"pl-s"]],[],[],[],[[0,3,"pl-s"],[3,8,"pl-en"]],[],[[9,45,"pl-s"],[9,10,"pl-pds"],[10,37,"pl-smi"],[22,24,"pl-k"],[24,29,"pl-smi"],[29,30,"pl-k"],[44,45,"pl-pds"]],[[27,28,"pl-k"],[29,66,"pl-s"],[29,30,"pl-pds"],[30,57,"pl-smi"],[42,44,"pl-k"],[44,49,"pl-smi"],[49,50,"pl-k"],[65,66,"pl-pds"]],[[0,3,"pl-s"]],[],[],[],[[0,3,"pl-s"],[3,8,"pl-en"]],[[9,45,"pl-s"],[9,10,"pl-pds"],[10,37,"pl-smi"],[22,24,"pl-k"],[24,29,"pl-smi"],[29,30,"pl-k"],[44,45,"pl-pds"]],[[20,21,"pl-k"],[22,59,"pl-s"],[22,23,"pl-pds"],[23,50,"pl-smi"],[35,37,"pl-k"],[37,42,"pl-smi"],[42,43,"pl-k"],[58,59,"pl-pds"]],[[0,3,"pl-s"]],[],[[22,23,"pl-s"],[23,76,"pl-c1"],[76,77,"pl-s"]],[],[[0,12,"pl-mh"],[4,12,"pl-en"]],[],[[0,1,"pl-ml"],[7,8,"pl-ml"],[12,13,"pl-ml"],[25,26,"pl-ml"]],[[0,1,"pl-ml"],[4,5,"pl-ml"],[8,9,"pl-ml"],[12,13,"pl-ml"]],[[0,1,"pl-ml"],[10,11,"pl-ml"],[15,16,"pl-ml"],[17,18,"pl-s"],[18,32,"pl-c1"],[32,33,"pl-s"],[34,35,"pl-ml"]],[[0,1,"pl-ml"],[10,11,"pl-ml"],[20,21,"pl-ml"],[22,23,"pl-s"],[23,42,"pl-c1"],[42,43,"pl-s"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[7,8,"pl-ml"],[13,14,"pl-ml"],[15,16,"pl-s"],[16,31,"pl-c1"],[31,32,"pl-s"],[33,34,"pl-ml"]],[[0,1,"pl-ml"],[7,8,"pl-ml"],[12,13,"pl-ml"],[14,15,"pl-s"],[15,29,"pl-c1"],[29,30,"pl-s"],[31,32,"pl-ml"]],[[0,1,"pl-ml"],[16,17,"pl-ml"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,42,"pl-c1"],[42,43,"pl-s"],[44,45,"pl-ml"]],[[0,1,"pl-ml"],[13,14,"pl-ml"],[23,24,"pl-ml"],[25,26,"pl-s"],[26,45,"pl-c1"],[45,46,"pl-s"],[47,48,"pl-ml"]],[],[[0,56,"pl-ent"],[0,2,"pl-ent"]],[[0,0,"pl-ent"]],[[0,8,"pl-mh"],[4,8,"pl-en"]],[[0,1,"pl-s"],[1,2,"pl-v"],[3,4,"pl-s"],[4,5,"pl-s"],[5,11,"pl-c1"],[11,12,"pl-s"],[16,17,"pl-s"],[17,24,"pl-c1"],[24,25,"pl-s"],[40,41,"pl-s"],[41,42,"pl-s"],[42,91,"pl-corl"],[91,92,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[14,15,"pl-s"],[15,25,"pl-c1"],[25,26,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[3,5,"pl-s"],[19,20,"pl-s"],[30,31,"pl-s"],[31,32,"pl-s"],[32,81,"pl-corl"],[81,82,"pl-s"],[82,84,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[14,15,"pl-s"],[28,29,"pl-s"],[29,30,"pl-s"],[30,79,"pl-corl"],[79,80,"pl-s"],[81,82,"pl-s"],[95,96,"pl-s"],[96,97,"pl-s"],[97,146,"pl-corl"],[146,147,"pl-s"],[154,155,"pl-s"],[164,165,"pl-s"],[165,166,"pl-s"],[166,202,"pl-corl"],[202,203,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[40,41,"pl-s"],[41,46,"pl-c1"],[46,47,"pl-s"],[50,51,"pl-s"],[51,57,"pl-c1"],[57,58,"pl-s"],[86,88,"pl-s"],[88,89,"pl-s"],[97,98,"pl-s"],[98,99,"pl-s"],[99,106,"pl-corl"],[106,107,"pl-s"],[107,109,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[21,22,"pl-s"],[32,33,"pl-s"],[33,34,"pl-s"],[34,87,"pl-corl"],[87,88,"pl-s"],[92,93,"pl-s"],[104,105,"pl-s"],[105,106,"pl-s"],[106,147,"pl-corl"],[147,148,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[53,54,"pl-s"],[54,60,"pl-c1"],[60,61,"pl-s"],[90,91,"pl-s"],[91,108,"pl-c1"],[108,109,"pl-s"],[112,113,"pl-s"],[113,119,"pl-c1"],[119,120,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[11,12,"pl-s"],[12,20,"pl-c1"],[20,21,"pl-s"],[31,32,"pl-s"],[32,40,"pl-c1"],[40,41,"pl-s"],[55,56,"pl-s"],[56,64,"pl-c1"],[64,65,"pl-s"]],[[0,2,"pl-s"],[2,3,"pl-v"],[41,42,"pl-s"],[49,50,"pl-s"],[50,51,"pl-s"],[51,142,"pl-corl"],[142,143,"pl-s"],[152,153,"pl-s"],[163,164,"pl-s"],[164,165,"pl-s"],[165,206,"pl-corl"],[206,207,"pl-s"]],[[0,2,"pl-s"],[2,3,"pl-v"],[27,50,"pl-corl"]],[],[[0,32,"pl-ms"]],[[0,8,"pl-mh"],[4,8,"pl-en"]],[[0,1,"pl-s"],[1,2,"pl-v"],[3,5,"pl-s"],[31,32,"pl-s"],[32,38,"pl-c1"],[38,39,"pl-s"],[47,48,"pl-s"],[48,54,"pl-c1"],[54,55,"pl-s"],[74,75,"pl-s"],[78,79,"pl-s"],[79,80,"pl-s"],[80,129,"pl-corl"],[129,130,"pl-s"],[131,133,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[42,43,"pl-s"],[51,52,"pl-s"],[52,53,"pl-s"],[53,96,"pl-corl"],[96,97,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[27,28,"pl-s"],[36,37,"pl-s"],[37,38,"pl-s"],[38,53,"pl-corl"],[53,54,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[6,7,"pl-s"],[7,10,"pl-c1"],[10,11,"pl-s"],[18,19,"pl-s"],[19,22,"pl-c1"],[22,23,"pl-s"],[28,29,"pl-s"],[29,30,"pl-c1"],[30,31,"pl-s"],[34,35,"pl-s"],[35,36,"pl-c1"],[36,37,"pl-s"],[44,45,"pl-s"],[45,51,"pl-c1"],[51,52,"pl-s"],[53,54,"pl-s"],[54,59,"pl-c1"],[59,60,"pl-s"],[71,72,"pl-s"],[72,75,"pl-c1"],[75,76,"pl-s"],[83,84,"pl-s"],[89,90,"pl-s"],[90,91,"pl-s"],[92,148,"pl-corl"],[148,149,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[3,4,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"],[17,64,"pl-corl"],[64,65,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[14,15,"pl-s"],[25,26,"pl-s"],[26,27,"pl-s"],[27,68,"pl-corl"],[68,69,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[3,5,"pl-s"],[39,40,"pl-s"],[52,53,"pl-s"],[53,54,"pl-s"],[54,95,"pl-corl"],[95,96,"pl-s"],[138,140,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[22,23,"pl-s"],[42,43,"pl-s"],[43,44,"pl-s"],[44,92,"pl-corl"],[92,93,"pl-s"],[94,95,"pl-s"],[110,111,"pl-s"],[111,112,"pl-s"],[112,156,"pl-corl"],[156,157,"pl-s"],[158,159,"pl-s"],[173,174,"pl-s"],[174,175,"pl-s"],[175,218,"pl-corl"],[218,219,"pl-s"],[220,221,"pl-s"],[239,240,"pl-s"],[240,241,"pl-s"],[241,288,"pl-corl"],[288,289,"pl-s"],[290,291,"pl-s"],[305,306,"pl-s"],[306,307,"pl-s"],[307,350,"pl-corl"],[350,351,"pl-s"],[352,353,"pl-s"],[369,370,"pl-s"],[370,371,"pl-s"],[371,416,"pl-corl"],[416,417,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"]],[[0,1,"pl-v"],[5,47,"pl-corl"]],[[0,1,"pl-v"],[9,45,"pl-corl"]],[],[[0,33,"pl-ms"]],[[0,14,"pl-mh"],[4,14,"pl-en"]],[[16,17,"pl-s"],[17,19,"pl-s"],[32,33,"pl-s"],[33,34,"pl-s"],[34,106,"pl-corl"],[106,108,"pl-s"],[108,109,"pl-s"],[109,185,"pl-corl"],[185,186,"pl-s"]],[],[[0,26,"pl-mh"],[5,26,"pl-en"]],[],[],[[0,1,"pl-s"],[1,12,"pl-c1"],[12,13,"pl-s"],[16,18,"pl-s"],[25,27,"pl-s"]],[],[[0,3,"pl-s"],[3,6,"pl-en"]],[[1,11,"pl-ent"]],[[3,10,"pl-ent"],[28,35,"pl-ent"]],[[2,12,"pl-ent"]],[],[[1,21,"pl-ent"]],[[3,15,"pl-ent"]],[[5,15,"pl-ent"]],[[7,14,"pl-ent"],[38,45,"pl-ent"]],[[7,17,"pl-ent"],[31,41,"pl-ent"]],[[7,14,"pl-ent"],[35,42,"pl-ent"]],[[7,11,"pl-ent"],[17,21,"pl-ent"]],[[7,12,"pl-ent"],[21,26,"pl-ent"]],[[6,16,"pl-ent"]],[[4,16,"pl-ent"]],[[2,22,"pl-ent"]],[[0,3,"pl-s"]],[],[],[],[[0,3,"pl-s"],[3,6,"pl-en"]],[[1,11,"pl-ent"]],[[3,10,"pl-ent"],[34,41,"pl-ent"]],[[3,13,"pl-ent"],[30,40,"pl-ent"]],[[2,12,"pl-ent"]],[[1,11,"pl-ent"]],[[3,10,"pl-ent"],[34,41,"pl-ent"]],[[3,13,"pl-ent"],[31,41,"pl-ent"]],[[2,12,"pl-ent"]],[[0,3,"pl-s"]],[],[[0,17,"pl-mh"],[5,17,"pl-en"]],[],[[0,3,"pl-s"],[3,6,"pl-en"]],[[1,11,"pl-ent"]],[[3,10,"pl-ent"],[34,41,"pl-ent"]],[[3,13,"pl-ent"],[26,36,"pl-ent"]],[[3,10,"pl-ent"],[18,25,"pl-ent"]],[[2,12,"pl-ent"]],[[0,3,"pl-s"]],[],[[2,3,"pl-v"],[10,11,"pl-s"],[11,30,"pl-c1"],[30,31,"pl-s"]],[[2,3,"pl-v"],[9,10,"pl-s"],[10,25,"pl-c1"],[25,26,"pl-s"]],[[2,3,"pl-v"],[11,12,"pl-s"],[12,28,"pl-c1"],[28,29,"pl-s"]],[[2,3,"pl-v"],[10,11,"pl-s"],[11,25,"pl-c1"],[25,26,"pl-s"]],[[2,3,"pl-v"],[9,10,"pl-s"],[10,24,"pl-c1"],[24,25,"pl-s"]],[[2,3,"pl-v"],[15,16,"pl-s"],[16,35,"pl-c1"],[35,36,"pl-s"]],[],[[0,2,"pl-s"],[4,6,"pl-s"]],[[0,1,"pl-v"],[2,4,"pl-s"],[10,12,"pl-s"]],[[2,3,"pl-v"],[18,19,"pl-s"],[19,35,"pl-c1"],[35,36,"pl-s"]],[[2,3,"pl-v"],[12,13,"pl-s"],[13,28,"pl-c1"],[28,29,"pl-s"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[2,4,"pl-s"],[10,12,"pl-s"],[13,14,"pl-s"],[14,30,"pl-c1"],[30,31,"pl-s"]],[],[],[],[[0,33,"pl-ms"]],[[0,8,"pl-mh"],[4,8,"pl-en"]],[],[[1,8,"pl-ent"]],[[1,8,"pl-ent"],[35,42,"pl-ent"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[0,21,"pl-smi"],[29,30,"pl-k"],[31,34,"pl-k"],[35,56,"pl-smi"]],[[6,7,"pl-k"],[16,29,"pl-s"],[16,17,"pl-pds"],[28,29,"pl-pds"]],[[6,7,"pl-k"],[17,30,"pl-s"],[17,18,"pl-pds"],[29,30,"pl-pds"]],[],[[0,11,"pl-smi"],[24,25,"pl-k"],[26,29,"pl-k"],[30,45,"pl-smi"]],[[11,12,"pl-k"]],[],[[0,6,"pl-smi"],[19,20,"pl-k"],[32,33,"pl-k"]],[[0,6,"pl-smi"],[6,7,"pl-k"],[10,11,"pl-k"]],[[0,3,"pl-s"]],[],[[2,9,"pl-ent"]],[],[[1,8,"pl-ent"]],[[1,8,"pl-ent"],[38,45,"pl-ent"]],[],[[0,3,"pl-s"],[3,7,"pl-en"]],[[0,21,"pl-smi"],[29,30,"pl-k"],[31,34,"pl-k"],[35,56,"pl-smi"]],[[6,7,"pl-k"],[16,29,"pl-s"],[16,17,"pl-pds"],[28,29,"pl-pds"]],[[6,7,"pl-k"],[17,30,"pl-s"],[17,18,"pl-pds"],[29,30,"pl-pds"]],[],[[0,11,"pl-smi"],[24,25,"pl-k"],[26,29,"pl-k"],[30,45,"pl-smi"]],[[11,12,"pl-k"]],[],[[0,24,"pl-smi"],[32,33,"pl-k"],[45,46,"pl-k"],[62,63,"pl-k"],[78,87,"pl-s"],[78,79,"pl-pds"],[86,87,"pl-pds"]],[[0,6,"pl-smi"],[6,7,"pl-k"],[10,11,"pl-k"],[25,26,"pl-k"]],[[0,3,"pl-s"]],[],[[2,9,"pl-ent"]],[],[[0,33,"pl-ms"]],[[0,8,"pl-mh"],[4,8,"pl-en"]],[],[[1,8,"pl-ent"]],[[1,8,"pl-ent"],[17,24,"pl-ent"]],[],[[0,1,"pl-s"],[1,2,"pl-v"],[50,51,"pl-s"],[51,63,"pl-c1"],[63,64,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[33,34,"pl-s"],[34,43,"pl-c1"],[43,44,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[10,11,"pl-s"],[11,18,"pl-c1"],[18,19,"pl-s"],[29,30,"pl-s"],[30,37,"pl-c1"],[37,38,"pl-s"],[50,51,"pl-s"],[51,56,"pl-c1"],[56,57,"pl-s"],[59,60,"pl-s"],[60,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-s"],[68,73,"pl-c1"],[73,74,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[20,21,"pl-s"],[21,28,"pl-c1"],[28,29,"pl-s"],[58,59,"pl-s"],[59,66,"pl-c1"],[66,67,"pl-s"]],[[0,1,"pl-s"],[1,2,"pl-v"],[12,13,"pl-s"],[13,15,"pl-s"],[28,29,"pl-s"],[29,30,"pl-s"],[30,102,"pl-corl"],[102,104,"pl-s"],[104,105,"pl-s"],[105,168,"pl-corl"],[168,169,"pl-s"]],[[0,1,"pl-s"],[7,8,"pl-s"],[8,9,"pl-s"],[9,93,"pl-corl"],[93,94,"pl-s"],[96,97,"pl-s"],[102,103,"pl-s"],[103,104,"pl-s"],[104,192,"pl-corl"],[192,193,"pl-s"],[195,196,"pl-s"],[201,202,"pl-s"],[202,203,"pl-s"],[203,286,"pl-corl"],[286,287,"pl-s"],[289,290,"pl-s"],[296,297,"pl-s"],[297,298,"pl-s"],[298,381,"pl-corl"],[381,382,"pl-s"],[383,384,"pl-s"],[390,391,"pl-s"],[391,392,"pl-s"],[392,477,"pl-corl"],[477,478,"pl-s"],[479,480,"pl-s"],[485,486,"pl-s"],[486,487,"pl-s"],[487,575,"pl-corl"],[575,576,"pl-s"]],[],[],[[2,9,"pl-ent"]],[],[[0,34,"pl-ms"]],[[0,8,"pl-mh"],[4,8,"pl-en"]],[[10,11,"pl-s"],[17,18,"pl-s"],[18,19,"pl-s"],[19,66,"pl-corl"],[66,67,"pl-s"]],[],[[1,8,"pl-ent"]],[[1,8,"pl-ent"],[29,36,"pl-ent"]],[],[[0,10,"pl-mh"],[5,10,"pl-en"]],[[0,1,"pl-v"],[23,57,"pl-corl"]],[[0,1,"pl-v"],[14,46,"pl-corl"]],[[0,1,"pl-v"],[7,50,"pl-corl"]],[[0,1,"pl-v"],[9,52,"pl-corl"]],[[0,1,"pl-v"],[16,53,"pl-corl"]],[[0,1,"pl-v"],[14,54,"pl-corl"]],[[0,1,"pl-v"],[23,57,"pl-corl"]],[[0,1,"pl-v"],[19,53,"pl-corl"]],[[0,1,"pl-v"],[14,49,"pl-corl"]],[[0,1,"pl-v"],[16,48,"pl-corl"]],[],[[0,9,"pl-mh"],[5,9,"pl-en"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[2,3,"pl-s"],[16,17,"pl-s"],[17,18,"pl-s"],[18,68,"pl-corl"],[68,69,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,9,"pl-mh"],[5,9,"pl-en"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[2,3,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,41,"pl-corl"],[41,42,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,10,"pl-mh"],[5,10,"pl-en"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,8,"pl-mh"],[5,8,"pl-en"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[12,34,"pl-corl"]],[[0,1,"pl-v"]],[],[[2,9,"pl-ent"]],[],[[0,34,"pl-ms"]],[[0,9,"pl-mh"],[4,9,"pl-en"]],[[23,24,"pl-s"],[26,27,"pl-s"],[27,28,"pl-s"],[28,84,"pl-corl"],[84,85,"pl-s"]],[],[[1,2,"pl-ent"],[3,7,"pl-e"],[8,9,"pl-s"],[9,65,"pl-s"],[65,66,"pl-s"]],[[3,6,"pl-ent"],[7,10,"pl-e"],[11,12,"pl-s"],[12,62,"pl-s"],[62,63,"pl-s"]],[[2,3,"pl-ent"]],[],[[0,31,"pl-mh"],[4,31,"pl-en"]],[],[[1,2,"pl-ent"],[3,7,"pl-e"],[8,9,"pl-s"],[9,90,"pl-s"],[90,91,"pl-s"]],[[2,9,"pl-ent"]],[[4,10,"pl-ent"],[11,16,"pl-e"],[17,18,"pl-s"],[18,46,"pl-s"],[46,47,"pl-s"],[48,54,"pl-e"],[55,56,"pl-s"],[56,283,"pl-s"],[283,284,"pl-s"]],[[4,10,"pl-ent"],[11,16,"pl-e"],[17,18,"pl-s"],[18,47,"pl-s"],[47,48,"pl-s"],[49,55,"pl-e"],[56,57,"pl-s"],[57,273,"pl-s"],[273,274,"pl-s"]],[[4,7,"pl-ent"],[8,11,"pl-e"],[12,13,"pl-s"],[13,31,"pl-s"],[31,32,"pl-s"],[33,36,"pl-e"],[37,38,"pl-s"],[38,254,"pl-s"],[254,255,"pl-s"]],[[3,10,"pl-ent"]],[[2,3,"pl-ent"]]],"colorizedLines":null}},"title":"WxJava/README.md at develop · binarywang/WxJava","appPayload":{},"meta":{"title":"WxJava/README.md at develop · binarywang/WxJava"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/binarywang/WxJava" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="develop branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">develop</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/binarywang/WxJava/tree/develop" data-discover="true">WxJava</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">README.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_1cpla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellCheck="false" placeholder="Go to file" aria-describedby="_R_1cpla9lik5_ _R_1cpla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_1cpla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7p9la9lik5_" id="_R_99la9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7p9la9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7pdla9lik5_" id="_R_9dla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7pdla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/binarywang/WxJava/commits/develop/README.md" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/binarywang/WxJava/commits/develop/README.md" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="18.3 KB" style="--truncate-max-width:100%"><span>328 lines (261 loc) · 18.3 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="develop branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">develop</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/binarywang/WxJava/tree/develop" data-discover="true">WxJava</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">README.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Preview">Preview</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="18.3 KB" style="--truncate-max-width:100%"><span>328 lines (261 loc) · 18.3 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/binarywang/WxJava/raw/refs/heads/develop/README.md" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><button data-component="IconButton" type="button" aria-pressed="false" class="prc-Button-ButtonBase-9n-Xk tmp-mr-2 TableOfContents-module__IconButton__jrlNM prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_3ucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-list-unordered" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_3ucpala9lik5_">Outline</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq BlobContent-module__blobContentSectionMarkdown__mPLOK" style="margin-top:46px"><div class="js-snippet-clipboard-copy-unpositioned BlobContent-module__markdownBlob__T8jpG" data-hpc="true" containertiming="hpc"><article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">WxJava - 微信开发 Java SDK</h2><a id="user-content-wxjava---微信开发-java-sdk" class="anchor" aria-label="Permalink: WxJava - 微信开发 Java SDK" href="#wxjava---微信开发-java-sdk"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto"><a href="https://github.com/binarywang/WxJava"><img src="https://camo.githubusercontent.com/fead75d8d2258b254d614384e38cd05dd41e350e3e4827e57213b6446d19de9b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f62696e61727977616e672f57784a6176613f6c6f676f3d676974687562267374796c653d666c6174266c6162656c3d5374617273" alt="Github" data-canonical-src="https://img.shields.io/github/stars/binarywang/WxJava?logo=github&amp;style=flat&amp;label=Stars" style="max-width: 100%;"></a>
<a href="https://gitee.com/binary/weixin-java-tools" rel="nofollow"><img src="https://camo.githubusercontent.com/ab6b4374637b366fb0968490e760fb640fdaf79c758f7563911945d23368fe8a/68747470733a2f2f67697465652e636f6d2f62696e6172792f77656978696e2d6a6176612d746f6f6c732f62616467652f737461722e7376673f7468656d653d626c7565" alt="Gitee" data-canonical-src="https://gitee.com/binary/weixin-java-tools/badge/star.svg?theme=blue" style="max-width: 100%;"></a>
<a href="https://gitcode.com/binary/WxJava" rel="nofollow"><img src="https://camo.githubusercontent.com/0de094f0800f589e5db6e57a24bea4ed21abd0c0edf254f84d9763ab3e969612/68747470733a2f2f676974636f64652e636f6d2f62696e6172792f57784a6176612f737461722f62616467652e737667" alt="GitCode" data-canonical-src="https://gitcode.com/binary/WxJava/star/badge.svg" style="max-width: 100%;"></a></p>
<p dir="auto"><a href="https://github.com/binarywang/WxJava/releases"><img src="https://camo.githubusercontent.com/1e86f75a136f55bbf27246c9fdd6e5d1248eeaef06a8416d8d91bc23461a27e3/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f62696e61727977616e672f57784a6176613f6c6162656c3d52656c65617365" alt="GitHub release" data-canonical-src="https://img.shields.io/github/release/binarywang/WxJava?label=Release" style="max-width: 100%;"></a>
<a href="https://central.sonatype.com/artifact/com.github.binarywang/wx-java/versions" rel="nofollow"><img src="https://camo.githubusercontent.com/daf20f39420f523822cfdfe07966f0a2f31f2fec7c250cb7e9ba74c6469928b5/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e62696e61727977616e672f77782d6a6176613f6c6162656c3d4d6176656e" alt="Maven Central" data-canonical-src="https://img.shields.io/maven-central/v/com.github.binarywang/wx-java?label=Maven" style="max-width: 100%;"></a>
<a href="https://circleci.com/gh/binarywang/WxJava/tree/develop" rel="nofollow"><img src="https://camo.githubusercontent.com/21c941266e444057835d4778af3808f97af596b4e11118c69b4fd136014e8d91/68747470733a2f2f696d672e736869656c64732e696f2f636972636c6563692f70726f6a6563742f6769746875622f62696e61727977616e672f57784a6176612f646576656c6f702e7376673f73616e6974697a653d74727565266c6162656c3d4275696c64" alt="Build Status" data-canonical-src="https://img.shields.io/circleci/project/github/binarywang/WxJava/develop.svg?sanitize=true&amp;label=Build" style="max-width: 100%;"></a>
<a href="https://www.jetbrains.com/?from=WxJava-weixin-java-tools" rel="nofollow"><img src="https://camo.githubusercontent.com/ab18bd740341febfcc8493a4ccf925bb949c05da2aba8bbedd8a1a84e54313ac/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f496e74656c6c694a253230494445412d2545362539342541462545362538432538312d626c75652e737667" alt="使用IntelliJ IDEA开发维护" data-canonical-src="https://img.shields.io/badge/IntelliJ%20IDEA-%E6%94%AF%E6%8C%81-blue.svg" style="max-width: 100%;"></a>
<a href="https://opensource.org/licenses/Apache-2.0" rel="nofollow"><img src="https://camo.githubusercontent.com/a549a7a30bacba7bfceebdc207a8e86c3f2c02995a2527640dca30048fd2b64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d417061636865253230322e302d626c75652e737667" alt="License" data-canonical-src="https://img.shields.io/badge/License-Apache%202.0-blue.svg" style="max-width: 100%;"></a>
<a href="https://deepwiki.com/binarywang/WxJava" rel="nofollow"><img src="https://camo.githubusercontent.com/0f5ae213ac378635adeb5d7f13cef055ad2f7d9a47b36de7b1c67dbe09f609ca/68747470733a2f2f6465657077696b692e636f6d2f62616467652e737667" alt="Ask DeepWiki" data-canonical-src="https://deepwiki.com/badge.svg" style="max-width: 100%;"></a></p>
<p dir="auto"><a href="https://hellogithub.com/repository/6de6147050c94db4aedfd7098d19f8d8" rel="nofollow"><img src="https://camo.githubusercontent.com/e4c700f9d79fe5163d81219a061df5b9b2fb14fd3ce93c35e2ee92ce52447cd5/68747470733a2f2f6170692e68656c6c6f6769746875622e636f6d2f76312f776964676574732f7265636f6d6d656e642e7376673f7269643d366465363134373035306339346462346165646664373039386431396638643826636c61696d5f7569643d6d774b683074494c42666a6c657a52" alt="Featured｜HelloGitHub" width="250" height="55" data-canonical-src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=6de6147050c94db4aedfd7098d19f8d8&amp;claim_uid=mwKh0tILBfjlezR" style="max-width: 100%; height: auto; max-height: 55px;; aspect-ratio: 250 / 55; background-color: var(--bgColor-muted); border-radius: 6px" class="js-gh-image-fallback"></a>
<a href="https://trendshift.io/repositories/12152" rel="nofollow"><img src="https://camo.githubusercontent.com/1d94fbf36a716f4b013441b2191ef3db920589f735a6f17dad2d5997ad53ea75/68747470733a2f2f7472656e6473686966742e696f2f6170692f62616467652f7265706f7369746f726965732f3132313532" alt="binarywang/WxJava | 趋势转变" width="250" height="55" data-canonical-src="https://trendshift.io/api/badge/repositories/12152" style="max-width: 100%; height: auto; max-height: 55px;; aspect-ratio: 250 / 55; background-color: var(--bgColor-muted); border-radius: 6px" class="js-gh-image-fallback"></a>
<a href="https://www.star-history.com/binarywang/wxjava" rel="nofollow"><img src="https://camo.githubusercontent.com/1b428057f086a972ce6d3123b710c6645e4e9904132a9e7e339366188f36a55e/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f62616467653f7265706f3d62696e61727977616e672f57784a617661" alt="Star History" width="250" height="55" data-canonical-src="https://api.star-history.com/badge?repo=binarywang/WxJava" style="max-width: 100%; height: auto; max-height: 55px;; aspect-ratio: 250 / 55; background-color: var(--bgColor-muted); border-radius: 6px" class="js-gh-image-fallback"></a></p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">微信 <code>Java</code> 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。</h3><a id="user-content-微信-java-开发工具包支持包括微信支付开放平台公众号企业微信视频号小程序等微信功能模块的后端开发" class="anchor" aria-label="Permalink: 微信 Java 开发工具包，支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。" href="#微信-java-开发工具包支持包括微信支付开放平台公众号企业微信视频号小程序等微信功能模块的后端开发"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">特别赞助</h3><a id="user-content-特别赞助" class="anchor" aria-label="Permalink: 特别赞助" href="#特别赞助"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><a href="https://www.jeequan.com/product/jeepay.html" rel="nofollow"><img height="120" src="https://camo.githubusercontent.com/9c0b75707ee80b224aecea2030a652e286aebb82862c9e0d45baafdd5c8cfb2d/68747470733a2f2f6a65657175616e2e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f6a65657061792f696d672f77786a6176615f6a65657061792e706e67" alt="计全支付Jeepay,开源支付系统" data-canonical-src="https://jeequan.oss-cn-beijing.aliyuncs.com/jeepay/img/wxjava_jeepay.png" style="max-width: 100%; height: auto; max-height: 120px;"></a></li>
<li><a href="https://github.crmeb.net/u/wxjava" rel="nofollow"><img height="120" src="https://camo.githubusercontent.com/52ba65556f25be919f2d3e1584ae498970d056f180c32aa7d5c83de7c8b5c30a/68747470733a2f2f63726d65626a6176616d65722e6f73732d636e2d6265696a696e672e616c6979756e63732e636f6d2f63726d6562696d6167652f696d6167652f323032362f30312f33302f30613731623262333533356434326231383766666639373763333366616133306d683967697067656a612e706e67" alt="CRMEB" data-canonical-src="https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/image/2026/01/30/0a71b2b3535d42b187fff977c33faa30mh9gipgeja.png" style="max-width: 100%; height: auto; max-height: 120px;"></a></li>
</ul>
<blockquote>
<p dir="auto">赞助商招募中，欢迎联系合作。</p>
</blockquote>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">关注公众号</h3><a id="user-content-关注公众号" class="anchor" aria-label="Permalink: 关注公众号" href="#关注公众号"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">想获得技术交流群（QQ群/微信群/钉钉群）等信息，请扫码关注 <code>WxJava</code> 公众号：</p>
<p dir="auto"><a href="https://mp.weixin.qq.com/mp/homepage?__biz=MzI3MzAwMzk4OA==&amp;hid=1&amp;sn=f31af3bf562b116b061c9ab4edf70b61&amp;scene=18#wechat_redirect" rel="nofollow"><img src="https://camo.githubusercontent.com/8c7e310e01d7c81871c38a129ece6c1a0765d3953713f9bc8cb4f800076675a3/68747470733a2f2f67697465652e636f6d2f62696e6172792f77656978696e2d6a6176612d746f6f6c732f7261772f646576656c6f702f696d616765732f7172636f6465732f6d702e706e67" alt="WxJava 公众号二维码" data-canonical-src="https://gitee.com/binary/weixin-java-tools/raw/develop/images/qrcodes/mp.png" style="max-width: 100%;"></a></p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">目录索引</h3><a id="user-content-目录索引" class="anchor" aria-label="Permalink: 目录索引" href="#目录索引"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><a href="#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B3%E5%88%86%E9%92%9F">快速开始（3分钟）</a></li>
<li><a href="#ai-%E7%BC%96%E7%A8%8B%E6%99%BA%E8%83%BD%E4%BD%93-skill-%E5%AE%89%E8%A3%85">AI 编程智能体 SKILL 安装</a></li>
<li><a href="#%E6%88%91%E8%AF%A5%E9%80%89%E5%93%AA%E4%B8%AA%E6%A8%A1%E5%9D%97">我该选哪个模块？</a></li>
<li><a href="#maven-%E5%BC%95%E7%94%A8%E6%96%B9%E5%BC%8F">Maven 引用方式</a></li>
<li><a href="#%E6%9C%80%E5%B0%8F%E7%A4%BA%E4%BE%8B">最小示例</a></li>
<li><a href="#%E9%87%8D%E8%A6%81%E4%BF%A1%E6%81%AF">重要信息</a></li>
<li><a href="#%E5%85%B6%E4%BB%96%E8%AF%B4%E6%98%8E">其他说明</a></li>
<li><a href="#%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E">版本说明</a></li>
<li><a href="#%E5%BA%94%E7%94%A8%E6%A1%88%E4%BE%8B">应用案例</a></li>
<li><a href="#%E7%89%B9%E5%88%AB%E8%B5%9E%E5%8A%A9">特别赞助</a></li>
<li><a href="#%E5%85%B3%E6%B3%A8%E5%85%AC%E4%BC%97%E5%8F%B7">关注公众号</a></li>
<li><a href="#%E8%B4%A1%E7%8C%AE%E8%80%85%E5%88%97%E8%A1%A8">贡献者列表</a></li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">快速开始（3分钟）</h3><a id="user-content-快速开始3分钟" class="anchor" aria-label="Permalink: 快速开始（3分钟）" href="#快速开始3分钟"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ol dir="auto">
<li>根据业务场景选择模块（见下方“我该选哪个模块？”）</li>
<li>引入 Maven 依赖并选择对应模块</li>
<li>参考最小示例完成初始化并调用 API</li>
</ol>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">AI 编程智能体 SKILL 安装</h3><a id="user-content-ai-编程智能体-skill-安装" class="anchor" aria-label="Permalink: AI 编程智能体 SKILL 安装" href="#ai-编程智能体-skill-安装"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">仓库的 <a href="/binarywang/WxJava/blob/develop/skills"><code>skills</code></a> 目录提供面向 WxJava 用户和贡献者的通用 SKILL，包括模块选择、接入、排障、接口贡献和升级迁移。每个 SKILL 都以 <code>SKILL.md</code> 为入口，可用于支持该约定的 AI 编程智能体。</p>
<p dir="auto">支持远程安装 SKILL 的智能体，可以直接使用自然语言指令安装所需目录。例如：</p>
<blockquote>
<p dir="auto">安装 <a href="https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide">https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide</a> 中的技能。</p>
</blockquote>
<p dir="auto">可安装的 SKILL 包括：</p>
<ul dir="auto">
<li><a href="https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-module-selector">模块选择</a></li>
<li><a href="https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-integration-guide">接入指南</a></li>
<li><a href="https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-troubleshooter">故障排查</a></li>
<li><a href="https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-api-contributor">接口贡献</a></li>
<li><a href="https://github.com/binarywang/WxJava/tree/develop/skills/wxjava-upgrade-guide">升级迁移</a></li>
</ul>
<p dir="auto">不支持远程安装时，可将所需的 <code>skills/wxjava-*</code> 目录复制到智能体的 SKILL 目录或工作区配置目录；不同智能体的目录和启用方式请以其官方文档为准。</p>
<p dir="auto">以 Codex 为例，可复制到个人 SKILL 目录：</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="git clone https://github.com/binarywang/WxJava.git
mkdir -p &quot;${CODEX_HOME:-$HOME/.codex}/skills&quot;
cp -R WxJava/skills/wxjava-* &quot;${CODEX_HOME:-$HOME/.codex}/skills/&quot;"><pre>git clone https://github.com/binarywang/WxJava.git
mkdir -p <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">${CODEX_HOME<span class="pl-k">:-</span><span class="pl-smi">$HOME</span><span class="pl-k">/</span>.codex}</span>/skills<span class="pl-pds">"</span></span>
cp -R WxJava/skills/wxjava-<span class="pl-k">*</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">${CODEX_HOME<span class="pl-k">:-</span><span class="pl-smi">$HOME</span><span class="pl-k">/</span>.codex}</span>/skills/<span class="pl-pds">"</span></span></pre></div>
<p dir="auto">如果已在本仓库根目录，可直接执行：</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="mkdir -p &quot;${CODEX_HOME:-$HOME/.codex}/skills&quot;
cp -R skills/wxjava-* &quot;${CODEX_HOME:-$HOME/.codex}/skills/&quot;"><pre>mkdir -p <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">${CODEX_HOME<span class="pl-k">:-</span><span class="pl-smi">$HOME</span><span class="pl-k">/</span>.codex}</span>/skills<span class="pl-pds">"</span></span>
cp -R skills/wxjava-<span class="pl-k">*</span> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">${CODEX_HOME<span class="pl-k">:-</span><span class="pl-smi">$HOME</span><span class="pl-k">/</span>.codex}</span>/skills/<span class="pl-pds">"</span></span></pre></div>
<p dir="auto">重启或新建智能体会话后，即可按需使用。例如：<code>使用 wxjava-integration-guide 为我的 Spring Boot 项目接入微信支付。</code></p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">我该选哪个模块？</h3><a id="user-content-我该选哪个模块" class="anchor" aria-label="Permalink: 我该选哪个模块？" href="#我该选哪个模块"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<markdown-accessiblity-table><table>
<thead>
<tr>
<th>业务场景</th>
<th>模块</th>
<th>artifactId</th>
</tr>
</thead>
<tbody>
<tr>
<td>微信公众号开发</td>
<td>MP</td>
<td><code>weixin-java-mp</code></td>
</tr>
<tr>
<td>微信小程序开发</td>
<td>MiniApp</td>
<td><code>weixin-java-miniapp</code></td>
</tr>
<tr>
<td>微信支付</td>
<td>Pay</td>
<td><code>weixin-java-pay</code></td>
</tr>
<tr>
<td>企业微信</td>
<td>CP</td>
<td><code>weixin-java-cp</code></td>
</tr>
<tr>
<td>微信开放平台（第三方平台）</td>
<td>Open</td>
<td><code>weixin-java-open</code></td>
</tr>
<tr>
<td>视频号 / 微信小店</td>
<td>Channel</td>
<td><code>weixin-java-channel</code></td>
</tr>
</tbody>
</table></markdown-accessiblity-table>
<blockquote>
<p dir="auto">移动端（iOS/Android）微信登录、分享等能力仍需集成微信官方客户端 SDK；本项目为服务端 SDK。</p>
</blockquote>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">重要信息</h3><a id="user-content-重要信息" class="anchor" aria-label="Permalink: 重要信息" href="#重要信息"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ol dir="auto">
<li><a href="https://mp.weixin.qq.com/s/wM_UlMsDm3IZ1CPPDvcvQw" rel="nofollow"><code>WxJava</code> 荣获 <code>GitCode</code> 2024年度十大开源社区奖项</a>。</li>
<li>项目合作洽谈请联系微信<code>binary0000</code>（在微信里自行搜索并添加好友，请注明来意，如有关于SDK问题需讨论请参考下文入群讨论，不要加此微信）。</li>
<li><strong>2026-01-03 发布 <a href="https://mp.weixin.qq.com/s/mJoFtGc25pXCn3uZRh6Q-w" rel="nofollow">【4.8.0正式版】</a></strong>！</li>
<li>贡献源码可以参考视频：<a href="https://mp.weixin.qq.com/s/3xUZSATWwHR_gZZm207h7Q" rel="nofollow">【贡献源码全过程（上集）】</a>、<a href="https://mp.weixin.qq.com/s/nyzJwVVoYSJ4hSbwyvTx9A" rel="nofollow">【贡献源码全过程（下集）】</a> ，友情提供：<a href="https://space.bilibili.com/473631007" rel="nofollow">程序员小山与Bug</a></li>
<li>新手重要提示：本项目仅是一个SDK开发工具包，未提供Web实现，建议使用 <code>maven</code> 或 <code>gradle</code> 引用本项目即可使用本SDK提供的各种功能，详情可参考 <strong><a href="/binarywang/WxJava/blob/develop/demo.md">【Demo项目】</a></strong> 或本项目中的部分单元测试代码；</li>
<li>微信开发新手请务必阅读【开发文档】（<a href="https://gitee.com/binary/weixin-java-tools/wikis/Home" rel="nofollow">Gitee Wiki</a> 或者 <a href="https://github.com/binarywang/WxJava/wiki">Github Wiki</a>）的常见问题部分，可以少走很多弯路，节省不少时间。</li>
<li>技术交流群：想获得QQ群/微信群/钉钉企业群等信息的同学，请使用微信扫描上面的微信公众号二维码关注 <code>WxJava</code> 后点击相关菜单即可获取加入方式，同时也可以在微信中搜索 <code>weixin-java-tools</code> 或 <code>WxJava</code> 后选择正确的公众号进行关注，该公众号会及时通知SDK相关更新信息，并不定期分享微信Java开发相关技术知识；</li>
<li>钉钉技术交流群：<code>32206329</code>（技术交流2群）, <code>30294972</code>（技术交流1群，目前已满），<code>35724728</code>（通知群，实时通知Github项目变更记录）。</li>
<li>微信开发新手或者Java开发新手在群内提问或新开Issue提问前，请先阅读<a href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md">【提问的智慧】</a>，并确保已查阅过 <a href="https://github.com/binarywang/WxJava/wiki">【开发文档Wiki】</a> ，避免浪费大家的宝贵时间；</li>
<li>寻求帮助时需贴代码或大长串异常信息的，请利用 <a href="http://paste.ubuntu.com" rel="nofollow">http://paste.ubuntu.com</a></li>
</ol>
<hr>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">其他说明</h3><a id="user-content-其他说明" class="anchor" aria-label="Permalink: 其他说明" href="#其他说明"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ol dir="auto">
<li><strong>阅读源码的同学请注意，本SDK为简化代码编译时加入了<code>lombok</code>支持，如果不了解<code>lombok</code>的话，请先学习下相关知识，比如可以阅读<a href="https://mp.weixin.qq.com/s/cUc-bUcprycADfNepnSwZQ" rel="nofollow">此文章</a>；</strong></li>
<li>如有新功能需求，发现BUG，或者由于微信官方接口调整导致的代码问题，可以直接在<a href="https://github.com/binarywang/WxJava/issues">【Issues】</a>页提出issue，便于讨论追踪问题；</li>
<li>如果需要贡献代码，请务必在提交PR之前先仔细阅读<a href="/binarywang/WxJava/blob/develop/CONTRIBUTING.md">【代码贡献指南】</a>，谢谢理解配合；</li>
<li>目前本<code>SDK</code>最新版本要求的<code>JDK</code>最低版本是<code>8</code>，使用<code>7</code>的同学可以使用<code>WxJava</code> <code>3.8.0</code>及以前版本，而还在使用<code>JDK</code>6的用户请参考<a href="https://github.com/binarywang/weixin-java-tools-for-jdk6">【此项目】</a> ，而其他更早的JDK版本则需要自己改造实现。</li>
<li><a href="https://www.oschina.net/p/weixin-java-tools-new" rel="nofollow">本项目在开源中国的页面</a>，欢迎大家积极留言评分 🙂</li>
<li>SDK开发文档请查阅 <a href="https://github.com/binarywang/WxJava/wiki">【开发文档Wiki】</a>，部分文档可能未能及时更新，如有发现，可以及时上报或者自行修改。</li>
<li><strong>如果本开发工具包对您有所帮助，欢迎对我们的努力进行肯定，可以直接前往<a href="http://gitee.com/binary/weixin-java-tools" rel="nofollow">【托管于码云的项目首页】</a>，在页尾部分找到“捐助”按钮进行打赏，多多益善 😄。非常感谢各位打赏和捐助的同学！</strong></li>
<li>各个模块的Javadoc可以在线查看：<a href="http://binary.ac.cn/weixin-java-miniapp-javadoc/" rel="nofollow">weixin-java-miniapp</a>、<a href="http://binary.ac.cn/weixin-java-pay-javadoc/" rel="nofollow">weixin-java-pay</a>、<a href="http://binary.ac.cn/weixin-java-mp-javadoc/" rel="nofollow">weixin-java-mp</a>、<a href="http://binary.ac.cn/weixin-java-common-javadoc/" rel="nofollow">weixin-java-common</a>、<a href="http://binary.ac.cn/weixin-java-cp-javadoc/" rel="nofollow">weixin-java-cp</a>、<a href="http://binary.ac.cn/weixin-java-open-javadoc/" rel="nofollow">weixin-java-open</a></li>
<li>本SDK项目在以下代码托管网站同步更新:</li>
</ol>
<ul dir="auto">
<li>码云：<a href="https://gitee.com/binary/weixin-java-tools" rel="nofollow">https://gitee.com/binary/weixin-java-tools</a></li>
<li>GitHub：<a href="https://github.com/binarywang/WxJava">https://github.com/binarywang/WxJava</a></li>
</ul>
<hr>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Maven 引用方式</h3><a id="user-content-maven-引用方式" class="anchor" aria-label="Permalink: Maven 引用方式" href="#maven-引用方式"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">注意：最新版本（包括测试版）为 <a href="https://central.sonatype.com/artifact/com.github.binarywang/wx-java/versions" rel="nofollow"><img src="https://camo.githubusercontent.com/a6cf332b77361050671155f3444229e9f7e3e43894f0e67c23681e2197426aba/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e62696e61727977616e672f77782d6a6176612e737667" alt="Maven Central" data-canonical-src="https://img.shields.io/maven-central/v/com.github.binarywang/wx-java.svg" style="max-width: 100%;"></a>，以下为最新正式版。</p>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">方式一：使用 BOM 统一管理版本（推荐）</h4><a id="user-content-方式一使用-bom-统一管理版本推荐" class="anchor" aria-label="Permalink: 方式一：使用 BOM 统一管理版本（推荐）" href="#方式一使用-bom-统一管理版本推荐"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">如果同时使用多个 WxJava 模块，推荐通过 BOM 统一管理版本，无需为每个模块单独指定版本号。
<code>wx-java-bom</code> 从 <strong>4.8.3.B</strong> 版本开始提供，请使用该版本或更高版本：</p>
<div class="highlight highlight-text-xml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;properties&gt;
  &lt;wx-java.version&gt;4.8.3.B&lt;/wx-java.version&gt;
&lt;/properties&gt;

&lt;dependencyManagement&gt;
  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;com.github.binarywang&lt;/groupId&gt;
      &lt;artifactId&gt;wx-java-bom&lt;/artifactId&gt;
      &lt;version&gt;${wx-java.version}&lt;/version&gt;
      &lt;type&gt;pom&lt;/type&gt;
      &lt;scope&gt;import&lt;/scope&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
&lt;/dependencyManagement&gt;"><pre>&lt;<span class="pl-ent">properties</span>&gt;
  &lt;<span class="pl-ent">wx-java</span>.version&gt;4.8.3.B&lt;/<span class="pl-ent">wx-java</span>.version&gt;
&lt;/<span class="pl-ent">properties</span>&gt;

&lt;<span class="pl-ent">dependencyManagement</span>&gt;
  &lt;<span class="pl-ent">dependencies</span>&gt;
    &lt;<span class="pl-ent">dependency</span>&gt;
      &lt;<span class="pl-ent">groupId</span>&gt;com.github.binarywang&lt;/<span class="pl-ent">groupId</span>&gt;
      &lt;<span class="pl-ent">artifactId</span>&gt;wx-java-bom&lt;/<span class="pl-ent">artifactId</span>&gt;
      &lt;<span class="pl-ent">version</span>&gt;${wx-java.version}&lt;/<span class="pl-ent">version</span>&gt;
      &lt;<span class="pl-ent">type</span>&gt;pom&lt;/<span class="pl-ent">type</span>&gt;
      &lt;<span class="pl-ent">scope</span>&gt;import&lt;/<span class="pl-ent">scope</span>&gt;
    &lt;/<span class="pl-ent">dependency</span>&gt;
  &lt;/<span class="pl-ent">dependencies</span>&gt;
&lt;/<span class="pl-ent">dependencyManagement</span>&gt;</pre></div>
<p dir="auto">之后直接引入所需模块，无需指定版本：</p>
<div class="highlight highlight-text-xml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;dependency&gt;
  &lt;groupId&gt;com.github.binarywang&lt;/groupId&gt;
  &lt;artifactId&gt;weixin-java-mp&lt;/artifactId&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;com.github.binarywang&lt;/groupId&gt;
  &lt;artifactId&gt;weixin-java-pay&lt;/artifactId&gt;
&lt;/dependency&gt;"><pre>&lt;<span class="pl-ent">dependency</span>&gt;
  &lt;<span class="pl-ent">groupId</span>&gt;com.github.binarywang&lt;/<span class="pl-ent">groupId</span>&gt;
  &lt;<span class="pl-ent">artifactId</span>&gt;weixin-java-mp&lt;/<span class="pl-ent">artifactId</span>&gt;
&lt;/<span class="pl-ent">dependency</span>&gt;
&lt;<span class="pl-ent">dependency</span>&gt;
  &lt;<span class="pl-ent">groupId</span>&gt;com.github.binarywang&lt;/<span class="pl-ent">groupId</span>&gt;
  &lt;<span class="pl-ent">artifactId</span>&gt;weixin-java-pay&lt;/<span class="pl-ent">artifactId</span>&gt;
&lt;/<span class="pl-ent">dependency</span>&gt;</pre></div>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">方式二：直接引用单个模块</h4><a id="user-content-方式二直接引用单个模块" class="anchor" aria-label="Permalink: 方式二：直接引用单个模块" href="#方式二直接引用单个模块"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="highlight highlight-text-xml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;dependency&gt;
  &lt;groupId&gt;com.github.binarywang&lt;/groupId&gt;
  &lt;artifactId&gt;（不同模块参考下文）&lt;/artifactId&gt;
  &lt;version&gt;4.8.0&lt;/version&gt;
&lt;/dependency&gt;"><pre>&lt;<span class="pl-ent">dependency</span>&gt;
  &lt;<span class="pl-ent">groupId</span>&gt;com.github.binarywang&lt;/<span class="pl-ent">groupId</span>&gt;
  &lt;<span class="pl-ent">artifactId</span>&gt;（不同模块参考下文）&lt;/<span class="pl-ent">artifactId</span>&gt;
  &lt;<span class="pl-ent">version</span>&gt;4.8.0&lt;/<span class="pl-ent">version</span>&gt;
&lt;/<span class="pl-ent">dependency</span>&gt;</pre></div>
<ul dir="auto">
<li>微信小程序：<code>weixin-java-miniapp</code></li>
<li>微信支付：<code>weixin-java-pay</code></li>
<li>微信开放平台：<code>weixin-java-open</code></li>
<li>微信公众号：<code>weixin-java-mp</code></li>
<li>企业微信：<code>weixin-java-cp</code></li>
<li>微信视频号/微信小店：<code>weixin-java-channel</code></li>
</ul>
<p dir="auto"><strong>注意</strong>：</p>
<ul dir="auto">
<li><strong>移动应用开发</strong>：如果你的移动应用（iOS/Android App）需要接入微信登录、分享等功能：
<ul dir="auto">
<li>微信登录（网页授权）：使用 <code>weixin-java-open</code> 模块，在服务端处理 OAuth 授权</li>
<li>微信支付：使用 <code>weixin-java-pay</code> 模块</li>
<li>客户端集成：需使用微信官方提供的移动端SDK（iOS/Android），本项目为服务端SDK</li>
</ul>
</li>
<li><strong>微信开放平台</strong>（<code>weixin-java-open</code>）主要用于第三方平台，代公众号或小程序进行开发和管理</li>
</ul>
<hr>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">最小示例</h3><a id="user-content-最小示例" class="anchor" aria-label="Permalink: 最小示例" href="#最小示例"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<details>
<summary>公众号（MP）示例：获取 AccessToken</summary>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="WxMpDefaultConfigImpl config = new WxMpDefaultConfigImpl();
config.setAppId(&quot;your-app-id&quot;);
config.setSecret(&quot;your-secret&quot;);

WxMpService wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(config);

String accessToken = wxMpService.getAccessToken();
System.out.println(accessToken);"><pre><span class="pl-smi">WxMpDefaultConfigImpl</span> <span class="pl-s1">config</span> = <span class="pl-k">new</span> <span class="pl-smi">WxMpDefaultConfigImpl</span>();
<span class="pl-s1">config</span>.<span class="pl-en">setAppId</span>(<span class="pl-s">"your-app-id"</span>);
<span class="pl-s1">config</span>.<span class="pl-en">setSecret</span>(<span class="pl-s">"your-secret"</span>);

<span class="pl-smi">WxMpService</span> <span class="pl-s1">wxMpService</span> = <span class="pl-k">new</span> <span class="pl-smi">WxMpServiceImpl</span>();
<span class="pl-s1">wxMpService</span>.<span class="pl-en">setWxMpConfigStorage</span>(<span class="pl-s1">config</span>);

<span class="pl-smi">String</span> <span class="pl-s1">accessToken</span> = <span class="pl-s1">wxMpService</span>.<span class="pl-en">getAccessToken</span>();
<span class="pl-smi">System</span>.<span class="pl-s1">out</span>.<span class="pl-en">println</span>(<span class="pl-s1">accessToken</span>);</pre></div>
</details>
<details>
<summary>小程序（MiniApp）示例：code2Session</summary>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
config.setAppid(&quot;your-app-id&quot;);
config.setSecret(&quot;your-secret&quot;);

WxMaService wxMaService = new WxMaServiceImpl();
wxMaService.setWxMaConfig(config);

WxMaJscode2SessionResult result = wxMaService.getUserService().getSessionInfo(&quot;js-code&quot;);
System.out.println(result.getOpenid());"><pre><span class="pl-smi">WxMaDefaultConfigImpl</span> <span class="pl-s1">config</span> = <span class="pl-k">new</span> <span class="pl-smi">WxMaDefaultConfigImpl</span>();
<span class="pl-s1">config</span>.<span class="pl-en">setAppid</span>(<span class="pl-s">"your-app-id"</span>);
<span class="pl-s1">config</span>.<span class="pl-en">setSecret</span>(<span class="pl-s">"your-secret"</span>);

<span class="pl-smi">WxMaService</span> <span class="pl-s1">wxMaService</span> = <span class="pl-k">new</span> <span class="pl-smi">WxMaServiceImpl</span>();
<span class="pl-s1">wxMaService</span>.<span class="pl-en">setWxMaConfig</span>(<span class="pl-s1">config</span>);

<span class="pl-smi">WxMaJscode2SessionResult</span> <span class="pl-s1">result</span> = <span class="pl-s1">wxMaService</span>.<span class="pl-en">getUserService</span>().<span class="pl-en">getSessionInfo</span>(<span class="pl-s">"js-code"</span>);
<span class="pl-smi">System</span>.<span class="pl-s1">out</span>.<span class="pl-en">println</span>(<span class="pl-s1">result</span>.<span class="pl-en">getOpenid</span>());</pre></div>
</details>
<hr>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">版本说明</h3><a id="user-content-版本说明" class="anchor" aria-label="Permalink: 版本说明" href="#版本说明"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<details>
<summary>点此展开查看</summary>
<ol dir="auto">
<li>本项目定为大约每半年左右发布一次正式版，遇到重大问题需修复会及时提交新版本，欢迎大家随时提交 <code>Pull Request</code>；</li>
<li>每次代码更新都会自动构建出新版本方便及时尝鲜，版本号格式为 <code>x.x.x-时间戳</code>;</li>
<li>发布正式版时，<code>develop</code> 分支代码合并进入 <code>release</code> 分支），版本号格式为 <code>X.X.0</code>（如<code>2.1.0</code>，<code>2.2.0</code>等）；</li>
<li>每隔一段时间后，会发布测试版本（如<code>3.6.8.B</code>，即尾号不为0，并添加B，以区别于正式版），代码仅存在于 <code>develop</code> 分支中；</li>
<li>目前最新版本号为 <a href="http://mvnrepository.com/artifact/com.github.binarywang/wx-java" rel="nofollow"><img src="https://camo.githubusercontent.com/a6cf332b77361050671155f3444229e9f7e3e43894f0e67c23681e2197426aba/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e6769746875622e62696e61727977616e672f77782d6a6176612e737667" alt="Maven Central" data-canonical-src="https://img.shields.io/maven-central/v/com.github.binarywang/wx-java.svg" style="max-width: 100%;"></a> ，也可以通过访问以下链接分别查看各个模块最新的版本：
<a href="https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-pay/versions" rel="nofollow">【微信支付】</a> 、<a href="https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-miniapp/versions" rel="nofollow">【小程序】</a> 、<a href="https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-mp/versions" rel="nofollow">【公众号】</a> 、<a href="https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-cp/versions" rel="nofollow">【企业微信】</a>、<a href="https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-open/versions" rel="nofollow">【开放平台】</a>、<a href="https://central.sonatype.com/artifact/com.github.binarywang/weixin-java-channel/versions" rel="nofollow">【视频号】</a></li>
</ol>
</details>
<hr>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">应用案例</h3><a id="user-content-应用案例" class="anchor" aria-label="Permalink: 应用案例" href="#应用案例"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">完整案例登记列表，请<a href="https://github.com/binarywang/WxJava/issues/729" data-hovercard-type="issue" data-hovercard-url="/binarywang/WxJava/issues/729/hovercard">【访问这里】</a>查看，欢迎登记更多的案例。</p>
<details>
<summary>以下为节选的部分案例， 点此展开查看</summary>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">开源项目：</h4><a id="user-content-开源项目" class="anchor" aria-label="Permalink: 开源项目：" href="#开源项目"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>基于微信公众号的签到、抽奖、发送弹幕程序：<a href="https://github.com/workcheng/weiya">https://github.com/workcheng/weiya</a></li>
<li>Jeepay 支付系统：<a href="https://gitee.com/jeequan/jeepay" rel="nofollow">https://gitee.com/jeequan/jeepay</a></li>
<li>微同商城：<a href="https://gitee.com/fuyang_lipengjun/platform" rel="nofollow">https://gitee.com/fuyang_lipengjun/platform</a></li>
<li>微信点餐系统：<a href="https://github.com/sqmax/springboot-project">https://github.com/sqmax/springboot-project</a></li>
<li>专注批量推送的小而美的工具：<a href="https://github.com/rememberber/WePush">https://github.com/rememberber/WePush</a></li>
<li>yshop意象商城系统：<a href="https://gitee.com/guchengwuyue/yshopmall" rel="nofollow">https://gitee.com/guchengwuyue/yshopmall</a></li>
<li>wx-manage（微信公众号管理项目）：<a href="https://github.com/niefy/wx-manage">https://github.com/niefy/wx-manage</a></li>
<li>基于若依开发的微信公众号管理系统：<a href="https://gitee.com/joolun/JooLun-wx" rel="nofollow">https://gitee.com/joolun/JooLun-wx</a></li>
<li>SAAS微信小程序电商：<a href="https://gitee.com/wei-it/weiit-saas" rel="nofollow">https://gitee.com/wei-it/weiit-saas</a></li>
<li>mall4j 电商商城系统：<a href="https://gitee.com/gz-yami/mall4j" rel="nofollow">https://gitee.com/gz-yami/mall4j</a></li>
</ul>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">小程序：</h4><a id="user-content-小程序" class="anchor" aria-label="Permalink: 小程序：" href="#小程序"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>（京东）友家铺子，友家铺子店长版，京粉精选</li>
<li><a href="http://p98ahz3tg.bkt.clouddn.com/miniappqrcode.jpg" rel="nofollow">喵星人贴吧助手(扫码关注)</a></li>
<li>树懒揽书+</li>
<li>广廉快线，鹏城巴士等</li>
<li>当燃挑战、sportlight轻灵运动</li>
<li>360考试宝典</li>
<li>民医台</li>
<li>来一团商家版</li>
<li>史必达（史丹利）</li>
<li>嘀嗒云印</li>
<li>维沃吼吼</li>
<li>王朝社区（比亚迪新能源社区）</li>
<li>极吼吼手机上门回收换新</li>
<li>未来信封</li>
<li>5G惠享</li>
<li>生菜wordpress转小程序</li>
<li>丽日购</li>
</ul>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">公众号：</h4><a id="user-content-公众号" class="anchor" aria-label="Permalink: 公众号：" href="#公众号"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>中国电信上海网厅（sh_189）</li>
<li>E答平台</li>
<li>宁夏生鲜365</li>
<li>通服货滴</li>
<li>神龙养车</li>
<li>沃音乐商务智能</li>
<li>光环云社群</li>
<li>手机排队</li>
<li><a href="http://www.oneminsport.com/" rel="nofollow">全民约跑健身便利店</a></li>
<li>民医台</li>
<li>YshopMall</li>
<li>好行景区直通车以及全国40多个公众号</li>
<li>我奥篮球公众号</li>
<li>未来信封官微</li>
<li>银川智云问诊</li>
<li>5G惠享</li>
</ul>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">企业微信：</h4><a id="user-content-企业微信" class="anchor" aria-label="Permalink: 企业微信：" href="#企业微信"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>HTC企业微信</li>
<li>掌上史丹利</li>
<li>药店益</li>
</ul>
<div class="markdown-heading" dir="auto"><h4 tabindex="-1" class="heading-element" dir="auto">其他：</h4><a id="user-content-其他" class="anchor" aria-label="Permalink: 其他：" href="#其他"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>高善人力资源</li>
<li>小猪餐餐</li>
<li>餐饮系统</li>
<li>微信公众号管理系统：<a href="http://demo.joolun.com" rel="nofollow">http://demo.joolun.com</a></li>
<li>锐捷网络：Saleslink</li>
</ul>
</details>
<hr>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">贡献者列表</h3><a id="user-content-贡献者列表" class="anchor" aria-label="Permalink: 贡献者列表" href="#贡献者列表"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">特别感谢参与贡献的所有同学，所有贡献者列表请在<a href="https://github.com/binarywang/WxJava/graphs/contributors">此处</a>查看，欢迎大家继续踊跃贡献代码！</p>
<a href="https://github.com/binarywang/WxJava/graphs/contributors">
  <img src="https://camo.githubusercontent.com/bc44b33d111b12230976b9837fcd30c8bdbf2da245c95c30a721b48f9300961f/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d62696e61727977616e672f57784a617661" data-canonical-src="https://contrib.rocks/image?repo=binarywang/WxJava" style="max-width: 100%;">
</a>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">GitHub Stargazers over time</h3><a id="user-content-github-stargazers-over-time" class="anchor" aria-label="Permalink: GitHub Stargazers over time" href="#github-stargazers-over-time"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<a href="https://www.star-history.com/?repos=binarywang%2FWxJava&amp;type=date&amp;legend=top-left" rel="nofollow">
 <themed-picture data-catalyst-inline="true"><picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://camo.githubusercontent.com/453bf18eeb3d68a7a1886b5aa57eeacf346e7e7d9d5ccb877f5944a7cf1bfb28/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f63686172743f7265706f733d62696e61727977616e672f57784a61766126747970653d64617465267468656d653d6461726b266c6567656e643d746f702d6c656674267365616c65645f746f6b656e3d4f50346b756379787a57374a47506f66514a7a49746f4163665544337161706846753345705f6454616c5f5677637674534c56474d415f542d31656d74774b3677306735654b5664665a7966424256596c634671764c523945686b345033756f44357948343448554954327a6a766e4e544959685541" data-canonical-src="https://api.star-history.com/chart?repos=binarywang/WxJava&amp;type=date&amp;theme=dark&amp;legend=top-left&amp;sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA">
   <source media="(prefers-color-scheme: light)" srcset="https://camo.githubusercontent.com/0d8f9a3aaa9ad95d1bb749174f60dca8fb55c60eea23fabb10463ec7ed9bd5a9/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f63686172743f7265706f733d62696e61727977616e672f57784a61766126747970653d64617465266c6567656e643d746f702d6c656674267365616c65645f746f6b656e3d4f50346b756379787a57374a47506f66514a7a49746f4163665544337161706846753345705f6454616c5f5677637674534c56474d415f542d31656d74774b3677306735654b5664665a7966424256596c634671764c523945686b345033756f44357948343448554954327a6a766e4e544959685541" data-canonical-src="https://api.star-history.com/chart?repos=binarywang/WxJava&amp;type=date&amp;legend=top-left&amp;sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA">
   <img alt="Star History Chart" src="https://camo.githubusercontent.com/0d8f9a3aaa9ad95d1bb749174f60dca8fb55c60eea23fabb10463ec7ed9bd5a9/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f63686172743f7265706f733d62696e61727977616e672f57784a61766126747970653d64617465266c6567656e643d746f702d6c656674267365616c65645f746f6b656e3d4f50346b756379787a57374a47506f66514a7a49746f4163665544337161706846753345705f6454616c5f5677637674534c56474d415f542d31656d74774b3677306735654b5664665a7966424256596c634671764c523945686b345033756f44357948343448554954327a6a766e4e544959685541" data-canonical-src="https://api.star-history.com/chart?repos=binarywang/WxJava&amp;type=date&amp;legend=top-left&amp;sealed_token=OP4kucyxzW7JGPofQJzItoAcfUD3qaphFu3Ep_dTal_VwcvtSLVGMA_T-1emtwK6w0g5eKVdfZyfBBVYlcFqvLR9Ehk4P3uoD5yH44HUIT2zjvnNTIYhUA">
 </picture></themed-picture>
</a>
</article></div><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 p-responsive" role="contentinfo"  >
  <h2 class='sr-only'>Footer</h2>

  


  <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
    <div class="d-flex flex-items-center flex-shrink-0 mx-2">
      <a aria-label="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 GitHub,&nbsp;Inc.
      </span>
    </div>

    <nav aria-label="Footer">
      <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>

      <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">


          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
          </li>


            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
            </li>

            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
            </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
          </li>

          
<li class="mx-2" >
  <cookie-consent-link>
    <button
      type="button"
      class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
      data-action="click:cookie-consent-link#showConsentManagement"
      data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
    >
      Manage cookies
    </button>
  </cookie-consent-link>
</li>

  <li class="mx-2">
    <cookie-consent-link>
      <button
        type="button"
        class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent text-left"
        data-action="click:cookie-consent-link#showConsentManagement"
        data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
      >
        Do not share my personal information
      </button>
    </cookie-consent-link>
  </li>

      </ul>
    </nav>
  </div>
</footer>



    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
      data-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    You can’t perform that action at this time.
  </div>

    <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
      </button>
      <div class="octocat-spinner tmp-my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
  </div>
</div>

    <template id="snippet-clipboard-copy-button">
  <div class="zeroclipboard-container position-absolute right-0 top-0">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2 tmp-m-2">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 tmp-m-2">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
  <div class="zeroclipboard-container">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>




    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
  </body>
</html>

