哔哩哔哩1.18亿拿下支付牌照

南财全媒体集团记者 李览青 上海报道继拼多多、字节跳动后,又一家互联网公司拿下支付牌照!

南财全媒体集团记者 李览青 上海报道继拼多多、字节跳动后,又一家互联网公司拿下支付牌照!

11月19日,据宁波市公共资源交易中心披露,余姚中国塑料城物流有限公司(下称“余姚物流”)持有的浙江甬易电子支付有限公司(下称“甬易支付”)65.5%的国有股权进行公开拍卖,上海宽娱数码科技有限公司(下称“宽娱数码”)以11796.55万元拍下相关标的。

企查查数据显示,宽娱数码是知名视频弹幕网站哔哩哔哩在境内的运营主体。本次以1.18亿元拍下甬易支付65.5%股权,意味着哔哩哔哩将获得支付牌照。

据中国人民银行官网,甬易支付在2012年6月27日获得支付业务许可证,在全国范围内获批开展互联网支付业务,并在2017年6月27日获批续展至今,下一次支付牌照续展日为2022年6月26日。此前甬易支付的控股股东系余姚市国资委。

B站布局支付业务早有预兆。

公开资料显示,今年1月4日,B站关联公司上海幻电信息科技有限公司完成对“bilbilipay.com”、“bilibilipay.cn”等域名备案,在5月10日通过工信部审核许可。据企查查,上述两个域名都归入网站“幻电网”旗下。

而B站对支付业务的人才招聘也早在去年11月就已开启,目前其招聘页面依然在招支付产品经理,该岗位隶属于OGV事业部-会员部。岗位职责包括负责大会员业务支付相关功能设计、优化用户购买体验,提升购买、代扣成功率;对接与维护各方支付渠道,确保支付安全稳定,搭建全面有效的支付工具;支撑运营活动与渠道,满足业务部门需求;分析与研究内容行业支付产品,探索支付渠道营销玩法。有对接各大支付平台(微信、支付宝、苹果支付等)经验者优先。

哔哩哔哩1.18亿拿下支付牌照

依托于快速增长的流量,B站的收入来源主要包括手机游戏、增值服务、广告收入和电子商务,无论是手游充值,还是增值服务中的大会员充值,亦或是电商平台交易,都离不开第三方支付通道提供结算服务。

目前B站APP内的流通货币包括“B币”和“贝壳”,“B币”主要用于充值会员、购买平台虚拟商品或服务,“贝壳”则是平台给“up主”的收益,“B币”的充值与“贝壳”的提现都需要经过第三方支付通道,包括支付宝、微信支付、QQ支付和花呗,在其内置电商平台“会员购”商城中下单时,支付方式还包括银联、一网通支付等。

在2020年财报中,B站曾提及其依赖外部第三方支付通道的风险,在用户使用第三方支付通道付费的情况下,B站需向运营方缴纳一定费率作为产品和服务销售费用,若支付过程中存在安全漏洞、故障或错误,可能会影响B站的用户体验。另一方面,未能及时从第三方支付结算方收取应收账款,可能会对公司现金流造成不利影响。在第三方支付通道遇到资金困难的情况下,可能会存在推迟付款或拒付的情况。此外,B站认为其没有控制第三方支付服务提供商的安全措施,在用户隐私保护、在线支付安全漏洞等多个方面存在隐患,可能会导致公司失去付费用户。

随着B站业务规模的扩大,相关服务费支出增幅激增。经由第三方支付通道结算的资金会有一部分留存在B站在各支付平台开设的账户中。2018年-2020年的B站财报数据显示,截至各报告期末,B站在支付宝、PayPal等在线支付平台管理的账户中持有现金,三年间被收取的网上服务费分别为1080万元、2680万元、4200万元。

近年来,包括美团、唯品会、滴滴、拼多多、字节跳动、携程、快手等多家头部互联网企业都通过收购完成了支付牌照的布局,结合其深耕的场景逐步开拓金融业务。

当下B站的金融业务还停留在初步阶段,主要是为B站与招行信用卡中心推出的联名信用卡导流。

在拿下支付牌照后,月活用户规模2.6亿的B站还将呈现怎样的金融业务值得期待。

更多内容请下载21财经APP

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/108622.html

(0)

相关推荐

  • 老年高血压患者日常生活保健

    高血压是我国最常见的心血管疾病,也是中老年人最多发的疾病之一。其引发的心脑血管意外也是我国死亡率高发的因素。因此,高血压患者除在医生的指导下进行药物治疗,还要注意日常生活方面的保健。

    生活 2021年9月1日
  • 2020前三季度汽车销量,2020年第四季度汽车销量

    国内B级车市场向来竞争十分激烈,从技术创新以及外观设计风格,B级车可以说是在众多的汽车厂商中具有举足轻重的地位,它的品质几乎代表着品牌的形象。随着当前年轻的消费者逐渐成为汽车的主力消费人群,国内的主流合资B级车也密集换代,外观设计也更加向运动时尚的方向发展!

    生活 2021年11月13日
  • 当操作系统都在一个群里,他们会聊些什么?

    半夜时分,忙活了一天的操作系统们终于可以喘口气了,他们接受邀请,在一个群里聊了起来...

    科技 2021年11月5日
  • 钉钉报警接入代码

    @Service@Slf4jpublic class DingTalkUtil { @Value("${dingTalk.robot.url}") private String robotUrl; @Value("${dingTalk.robot.me}") private String me; // 钉钉密钥 @Value("${dingTalk.robot.secret}") private String secret; @Value("${dingTalk.enabled}") private Boolean enabled; private OkHttpClient okHttpClient; private static final ObjectMapper objectMapper = new ObjectMapper(); private static final MediaType jsonMediaType = MediaType.parse("application/json"); @PostConstruct public void init() { ExecutorService executorService = new ThreadPoolExecutor( 1, 5, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100), ThreadFactoryBuilder.create().setNamePrefix("dingTalk-").build(), new ThreadPoolExecutor.CallerRunsPolicy() ); Dispatcher dispatcher = new Dispatcher(executorService); dispatcher.setMaxRequests(5); dispatcher.setMaxRequestsPerHost(5); okHttpClient = new OkHttpClient.Builder() .readTimeout(Duration.ofSeconds(1)) .connectTimeout(Duration.ofSeconds(1)) .callTimeout(Duration.ofSeconds(1)) .writeTimeout(Duration.ofSeconds(1)) .dispatcher(dispatcher) .build(); } /** * 异步发送钉钉机器人文本消息. */ public void sendTextMessage(String content) { doSendTextMessage(content, textMessage -> { }); } /** * 异步发送文本消息并@自己. */ public void sendTextMessageWithAtMe(String content) { doSendTextMessage(content, textMessage -> textMessage.getAt().getAtMobiles().add(me)); } /** * 异步发送文本消息并@所有人. */ public void sendTextMessageWithAtAll(String content) { doSendTextMessage(content, textMessage -> textMessage.getAt().setAtAll(true)); } private void doSendTextMessage(String content, Consumer<TextMessage> messageConfigurator) { if (!enabled) { return; } if (StringUtils.isBlank(content)) { throw new IllegalArgumentException("文本消息内容不能为空"); } TextMessage textMessage = new TextMessage(); textMessage.setText(new TextMessage.Content(content)); messageConfigurator.accept(textMessage); long timestamp = System.currentTimeMillis(); String sign = sign(timestamp); try { Request request = new Request.Builder() .url((robotUrl + "×tamp=" + timestamp + "&sign=" + sign)) .post(RequestBody.create(objectMapper.writeValueAsString(textMessage), jsonMediaType)) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(@NotNull Call call, @NotNull IOException e) { log.error("发送钉钉消息失败, 请求: {}.", call, e); } @Override public void onResponse(@NotNull Call call, @NotNull Response response) { ResponseBody responseBody = response.body(); log.debug("钉钉发送成功, call: {}, resp: {}.", call.request().body(), responseBody); if (responseBody != null) responseBody.close(); } }); } catch (JsonProcessingException e) { throw ExceptionUtil.wrapRuntime(e); } } private String sign(long timestamp) { final String seed = (timestamp + "\n" + secret); try { Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); byte[] result = mac.doFinal(seed.getBytes(StandardCharsets.UTF_8)); return URLEncoder.encode(Base64.getEncoder().encodeToString(result), StandardCharsets.UTF_8.displayName()); } catch (NoSuchAlgorithmException | InvalidKeyException | UnsupportedEncodingException e) { throw ExceptionUtil.wrapRuntime(e); } } @Getter private static class TextMessage { private final String msgtype = "text"; @Setter private Content text; private final At at = new At(); @Data @AllArgsConstructor private static class Content { private String content; } private static class At { @Setter private boolean isAtAll = false; @Getter private final List<String> atMobiles = new LinkedList<>(); // 不能删除,否则会导致生成的json字段名是atAll, 导致@所有人不生效 public boolean getIsAtAll() { return isAtAll; } } }}

    科技 2021年11月18日