IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java快速对接微信支付分(一) -> 正文阅读

[Java知识库]java快速对接微信支付分(一)

1.微信支付分产品介绍

维信支付分是对个人的身份特质、支付行为、使用历史等情况的综合计算分值,旨在为用户提供更简单便捷的生活方式。

(1)用户可在具体应用场景中,开通威信支付分,此为最常见的开通方法。开通后,用户可以在【微信 > 我 > 服务 > 钱包 > 支付分】中查看分数和使用记录。

(2)用户可在【微信 > 我 > 服务 > 钱包 > 支付分】直接点击,刷脸开通,此方法开通支付分后,用户仅能查看自己的分数,如需使用应用场景中的服务,仍需在应用场景中开启服务

微信支付分入口示意图

用户在场景中开通示意图

说明:用户只需在某一个应用场景中开通一次(开通分数+开通免密代扣),即可在其他应用场景使用支付分功能,无需再次开通分数或开通免密代扣。

商户接入微信支付分行业解决方案,即可获得:
1、设置分数门槛,筛选合适用户的能力,分数达到或超过该分数门槛的用户,才可以享受对应的服务(例如免押金,免预充值等)。
2、免密代扣能力,服务结束后,进行免密扣款。
3、催收能力。

2.接入前准备

A--大致的接入流程大纲如下,可以先混个眼熟

B--进行商户申请微信支付分获取到服务id? --- service_id

以下是微信官方的链接

https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter3_1_1.shtml

友情提示:申请成功之后会有微信工作人员进行把你们拉入一个裙,其他的不懂的可以进行询问群里的工作人员

3.需确定订单模式和免确定模式

A--需确定订单模式

意为:每次进入你的程序的时候都要进行微信那边授权一次 且?可传 先免模式的字段 或 先享模式的字段

【需确认订单模式】典型场景说明:

例如 免押租借场景,均是使用【需确认订单模式】,以租借充电宝为例

?

?

B--免确定订单模式

意为:第一次进行进入你的程序的时候就进行微信那边的授权 后续进行使用的时候不用在进行微信的授权,

该模式只能添加只可传 先享模式字段

【免确认订单模式】典型场景说明:

例如 网约车先乘后付,是使用的【免确认订单模式】

?

?

补充一点为【免确认订单模式】是高级接口权限,目前只支持如下行业调用:

?除以上行业/场景外,其他行业/场景均只能调用【需确认订单模式】接口。

接口调用权限与服务id相关,在申请服务id时,只有上述场景下的服务id,才有权限调用【免确认单定模式】接口。即只有在上述场景下,创单订单api接口中need_user_confirm字段才能传
false:免确认订单。

?C--先免与先享字段的说明

在创建支付分订单的risk_fund字段里面的name

如图

先免模式:顾名思义就是比如免去押金,免去预付款,免去保证金,前提是评估通过,即免去此类的东西,进行服务,后进行扣款,当评估不通过,即在 确认订单页上进行押金/预付款/保证金支付,支付成功进行服务使用

先享模式:是指评估不通过,不能通过缴纳费用,继续进行服务使用。例如信用回收,用户评估通过,可先获得部分回收款,若评估不通过,则无法获得。

D--需确定模式和面确定模式的大致思路图

需确定模式

?

免确定模式

?

4.实际开发的细步骤?

这里我选择的是需确定模式和先享模式

需确定模式的api为公共api和需确定模式api

以下为官网的链接

https://pay.weixin.qq.com/wiki/doc/apiv3/apis/index.shtml

A--进行商户申请成功获取到service_id

B--进行创建支付分订单

以下为创建支付分订单的接口

创建支付分订单

我把我使用的发送http请求的工具类分享出来

public class HttpClientUtils {
    /**
     * 发送get请求
     * @param url 请求地址
     * @return 返回内容 json
     */
    public static String httpGet(String url){

        // 1 创建发起请求客户端
        try {
            HttpClient client = new HttpClient();
            // 2 创建要发起请求-tet
            GetMethod getMethod = new GetMethod(url);
//            getMethod.addRequestHeader("Content-Type",
//                    "application/x-www-form-urlencoded;charset=UTF-8");
            getMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf8");
            // 3 通过客户端传入请求就可以发起请求,获取响应对象
            client.executeMethod(getMethod);
            // 4 提取响应json字符串返回
            String result = new String(getMethod.getResponseBodyAsString().getBytes("utf8"));
            return result;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

在进行解析第三方接口返回的json的时候我一般使用FastJson

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

大致的思路就是,先把请求需要的东西给填入进去,在使用工具类进行发送http请求,返回的结果使用工具类进行解析

注意:

此处应该为true 因为选的是需确定订单

?

请求示例

{
  "out_order_no": "1234323JKHDFE1243252",
  "appid": "wxd678efh567hg6787",
  "service_id": "500001",
  "service_introduction": "某某酒店",
  "post_payments": [
    {
      "name": "就餐费用服务费",
      "amount": 4000,
      "description": "就餐人均100元服务费:100/小时",
      "count": 1
    }
  ],
  "post_discounts": [
    {
      "name": "满20减1元",
      "description": "不与其他优惠叠加"
    }
  ],
  "time_range": {
    "start_time": "20091225091010",
    "end_time": "20091225121010"
  },
  "location": {
    "start_location": "嗨客时尚主题展餐厅",
    "end_location": "嗨客时尚主题展餐厅"
  },
  "risk_fund": {
    "name": "ESTIMATE_ORDER_COST",
    "amount": 10000,
    "description": "就餐的预估费用"
  },
  "attach": "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
  "notify_url": "https://api.test.com",
  "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
  "need_user_confirm": true
}

当发送成功之后会获取package数据,在使用封装的思想把数据返回去前端进行调起支付的请求

前端调起支付请求

以上部分内容参考该文章 送上链接

https://blog.csdn.net/hgg923/article/details/112469575#comments_22396695

第一次写博客,不足之处请指出,后续内容在第二部

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:22:54  更:2022-07-21 21:24:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:46:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码