微信支付集成工具是什么

技术微信支付集成工具是什么这篇文章将为大家详细讲解有关微信支付集成工具是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。微信支付集成工具最近老板又安排了新项目,要接入微

本文将详细讲解什么是微信支付集成工具。文章内容质量很高,我就分享给大家作为参考。希望大家看完这篇文章后对相关知识有一定的了解。

微信支付集成工具

最近老板安排了一个新项目接入微信支付。看了之前的支付码(很多年前别人写的),不忍直视,就去找微信官方sdk。因此,官方sdk不是“面向对象”的。由于经常使用阿里巴巴云,他决定用阿里巴巴云sdk的API风格写一个。

并通知线上项目下单和付款结果通过测试,其他完成的界面简单测试一两次全部通过。其他未完成的接口将逐步完成github : https://github.com/BekeyChao/wxpay/tree/master.

在OSCHINA上混合,带一个代码云仓库: https://gitee.com/BekeyChao/wxpay.

快速开始

cdyourpath

gitclonegitAddress

cdwxpay

Mvninstall将源代码克隆到本地,通过mvn安装到本地,并将其引入pom文件。

属国

groupIdxyz.bekey/groupId

artifactIdwxpay/artifactId

版本/版本

目前/dependency的最新版本是0.0.5,jdk的最低要求是1.8。java8在代码中没有被广泛使用。如果您想要兼容,您只需要在统一的单一接口中修改本地日期时间类型。

00-1010微信支付工具都是通过实例化微信支付类来使用的,为了方便,建议在Spring中注册为单实例。

@配置

publicclassWechatPayConfig{

@Value('${mch_id} ')

privateStringmch _ id

@Value('${key} ')

privateStringkey

@Value('${cert_path} ')

privateStringcert _ path//微信证书路径。

@豆

public微信公众号({ 0

//wxConfig提供两种构造方式,默认签名类型为MD5,默认微信支付服务地址取自官方文档。

WxpayConfigwxConfig=new wxpayconfig(微信应用程序。Yepaofu _ Subscribe.getAppid()

,mch_id,密钥,cert _ path);

//无需设置即可忽略自定义。

wxconfig . setconnecttimeou(10000);

wxconfig . setsockettimeout(10000);

returnnew微信公众号(wxConfig);

}

}以统一订购界面为例,调用方法。

@服务

公共类

nbsp;PayService {
    @Autowired
    private WechatPay wechatPay;
    // 统一下单接口
    public void toPay() {
        UnifiedOrderRequest request = new UnifiedOrderRequest();
        request.setTotal_fee(100);
        request.setSpbill_create_ip("10.10.10.10");
        request.setOut_trade_no("test123");
        request.setBody("测试订单");
        request.setTrade_type(TradeType.MWEB);
        request.setOpenid("openid");
        request.setNotify_url("http://mycallbak.com");
        // some else...
                
        UnifiedOrderResponse response = wechatPay.getWechatPayResponse(request);
        boolean success = response.isSuccess();
        if (success) {
            System.out.println(JSON.toJSONString(response)); 
        } else {
            System.out.println(response.getErr_code_des()); 
        }
    }
    // 支付结果回调,请从response中获取xml字符串
    public void handleCallback(String xml) { 
        try {
            UnifiedOrderCallback callback = wechatPay.unifiedorderCallback(xml);
            if (callback.isSuccess()) {
                System.out.println(JSON.toJSONString(callback));
            } else {
                System.out.println(callback.getErr_code_des());
            }
        } catch (InvalidSignException e) {
            // 处理签名异常
            e.printStackTrace();
        }        
    }
    
}

接口完成列表

已完成接口

  • 统一下单接口 UnifiedOrderRequest

  • 查询订单接口 OrderQueryRequest

  • 申请退款接口(需要证书) RefundRequest

  • 退款查询接口 RefundQueryRequest

  • 支付结果通知 UnifiedOrderCallback

未完成接口

  • 关闭订单

  • 海关申报

  • 下载对账单

  • 下载资金账单

  • 交易保障

  • 拉取订单评价数据

  • 退款结果通知(因为需要AES-256-ECB解密,jdk默认不支持,暂时不实现了)

代码风格

微信接口中会有大量的 javabean xml map 之间的转换,我处理的还是比较随意的,在xml -- javabean 之间主要通过fastjson进行转换,因为用起来比较顺手,所以也没在意效率的问题。 整体api风格设计借鉴 阿里云SDK 风格,xxxRequest 对应 xxxResponse,这种api设计很直观,而且通过一个api接口可以统一调用。 在参数校验层面,为了偷懒大量的校验与数据结构转换在Request中进行,所以Request类并不是简单类,在调试中可能会遇到点麻烦,见谅

关于微信支付集成工具是什么就分享到这里了,希望

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

(0)

相关推荐

  • 操作虚拟仿真需要什么能力(在线仿真与软件仿真的主要区别)

    技术的软件仿真和硬件仿真指的是什么本篇文章给大家分享的是有关的软件仿真和硬件仿真指的是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、软件仿真

    攻略 2021年12月24日
  • presto如何安装启动

    技术presto如何安装启动这篇文章主要介绍了presto如何安装启动,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。presto 关键字catalogs

    攻略 2021年11月25日
  • 【leetcode】153. Find Minimum in Rotated Sorted Array

    技术【leetcode】153. Find Minimum in Rotated Sorted Array 【leetcode】153. Find Minimum in Rotated Sorted A

    礼包 2021年11月20日
  • 微信小程序模拟零钱(微信小程序中的零钱通)

    技术Java模仿微信如何实现零钱通简易功能本篇文章为大家展示了Java模仿微信如何实现零钱通简易功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 需求描述使用Java 开发

    攻略 2021年12月14日
  • Python代码然后实现列表分组计数

    技术Python代码然后实现列表分组计数本篇文章给大家分享的是有关Python代码然后实现列表分组计数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. c

    攻略 2021年11月11日
  • centos8上安装mysql5.6

    技术centos8上安装mysql5.6 centos8上安装mysql5.61.下载5.6
    选择5.6.45,Red Hat Enterprise Linux,Linux 7https://dev.m

    礼包 2021年11月1日