Git Product home page Git Product logo

best-pay-sdk's Introduction

可能是目前最好的支付sdk

支付宝、微信支付方式多样, 开发繁琐, 使用该sdk, 只需10行代码, 帮你搞定!

示例 https://github.com/Pay-Group/best-pay-demo

版本更新

1.3.7(2022.8.18)

1. 新增支付app
2. 修复支付宝wap回调参数的bug

1.3.3(2020.5.23)

2. 修正支付沙盒

1.3.1(2019.11.28)

1. 修复:微信APP支付签名问题
2. 新增支付宝WAP支付
3. PayRequest增加参数returnUrl, 优先级高于PayConfig.returnUrl
4. 修复:查询订单,微信订单未支付的情况下timeEnd会返回空

更多更新记录 https://github.com/Pay-Group/best-pay-sdk/releases

文档

  1. 使用文档

特别注意

  1. 要求JDK8+
  2. IDE 需安装 lombok 插件
  3. 如果想贡献代码,请阅读代码贡献指南

在线体验

  1. http://best-pay.springboot.cn

  2. 微信公众号支付请扫码体验

    师兄干货

交流方式

  1. qq群(590730230)加群暗号:best。目前项目处于刚刚起步开发阶段,欢迎有兴趣的朋友加群共同开发。

Maven最新版本

<!-- https://mvnrepository.com/artifact/cn.springboot/best-pay-sdk -->
<dependency>
    <groupId>cn.springboot</groupId>
    <artifactId>best-pay-sdk</artifactId>
    <version>请使用最新版</version>
</dependency>

best-pay-sdk's People

Contributors

chenwu152817 avatar cvedetect avatar dependabot[bot] avatar jiyujie880621 avatar llqllq1024 avatar lly835 avatar phyzait avatar steven-ma avatar wangjinhai555 avatar xtherk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

best-pay-sdk's Issues

微信 NATIVE 扫码支付 是不是没实现

/**
* H5支付交易类型选择
*/
public String switchH5TradeType(BestPayTypeEnum payTypeEnum){
String tradeType = "JSAPI";
switch (payTypeEnum){
case WXPAY_H5:
tradeType = "JSAPI";
break;
case WXPAY_MWEB:
tradeType = "MWEB";
break;
}
return tradeType;
}

微信退款带异步通知的接口,新版本可以使用吗?

近期开发项目时需要退款申请后,需要接受到微信的异步通知,老师1.1版本里没有这个接口。就上来看看,我看到老师近期提交的有【新增微信加解密-退款通知,未测试】字眼,请问老师这个功能可以使用了吗?

查询订单timeEnd为空会报异常

在WxPayServiceImpl.java中的以下代码,微信订单未支付的情况下timeEnd会返回空,以下代码会抛出空指针异常

return OrderQueryResponse.builder()
                .orderStatusEnum(OrderStatusEnum.findByName(response.getTradeState()))
                .resultMsg(response.getTradeStateDesc())
				.outTradeNo(response.getTransactionId())
                .orderId(response.getOutTradeNo())
				.attach(response.getAttach())
                //yyyyMMddHHmmss -> yyyy-MM-dd HH:mm:ss
                .finishTime(response.getTimeEnd().replaceAll("(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3 $4:$5:$6"))
                .build();

支付宝异步返回结果的验签不通过的bug

版本 1.3.1
源码中处理异步回调时,先把数据URLDecoder,再调用MapUtil.form2Map,

实际调用时,发现支付宝返回的签名(sign)上有“=”这样的字符串,form2Map方法里面,有按照“=”切割的代码,转换为map的签名少了“=”,导致签名验证失败

建议先按“&”分割,再URLDecoder

多次支付

你好,我想问一下,我最近在使用你们的这个jdk,但我在使用的时候,当调用bestPayService.pay(payRequest);方法时,能支付成功,但过了一会,它又会调用我的pay方法,也就是它自行调用了两次,因为第一次支付成功了,修改了订单状态,所以第二次调用时就会报错:java.lang.RuntimeException: 【微信统一支付】发起支付, resultCode != SUCCESS, err_code = ORDERPAID err_code_des=该订单已支付,但我就调用一次而已,结果它又调用了一次,也就是又进入了我调用pay方法的那个方法里,您可以帮我解答一下么,麻烦了。

最近有XXE攻击,忘引起重视

修复方案:
XmlUtil.java
line 65:
Map<String, String> data = new HashMap<>();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
//防止xxe攻击
documentBuilderFactory.setExpandEntityReferences(false);

        String FEATURE = null;
        try {
            FEATURE = "http://apache.org/xml/features/disallow-doctype-decl";
            documentBuilderFactory.setFeature(FEATURE, true);
            FEATURE = "http://xml.org/sax/features/external-general-entities";
            documentBuilderFactory.setFeature(FEATURE, false);
            FEATURE = "http://xml.org/sax/features/external-parameter-entities";
            documentBuilderFactory.setFeature(FEATURE, false);
            documentBuilderFactory.setXIncludeAware(false);
            documentBuilderFactory.setExpandEntityReferences(false);
        } catch ( Exception e) {
            logger.info("微信异步通知解析文件出错:原因:{}" + ExcepitonUitl.printErrorTrace(e) );
            e.printStackTrace();
        }

        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        InputStream stream = new ByteArrayInputStream(strXML.getBytes("UTF-8"));
        org.w3c.dom.Document doc = documentBuilder.parse(stream);
        doc.getDocumentElement().normalize();
        NodeList nodeList = doc.getDocumentElement().getChildNodes();

....................

best-pay-sdk依赖tomcat,导致使用其他容器会有冲突

我的spring boot项目采用undertow容器,而不是默认的tomcat容器。结果在使用websocket过程中,老是报错。后面发现,原来best-pay-sdk有依赖tomcat容器。切换回tomcat就正常了。
一个支付的sdk为什么要绑死tomcat呢?

关于best-pay-sdk

就把demo里面的三个java文件拷过来了,然后配置文件自己建了个.properties文件,除了读取配置文件,其他代码都没动

微信支付回调异常

如果使用了微信支付到店红包会导致回调失败,不使用这种红包就一切正常
image

订单查询

我引入1.1.0版本或者1.2.0版本都没有订单查询这一块的代码。但是我看这个github上多了一个订单查询的接口,但是我们mavan引入的代码没有这个接口

求1.1.0版本的XXE高危漏洞处理方法

系统是用的best-pay-sdk-1.1.0 , 能告诉一下怎么处理这个XXE漏洞吗?
以下是通知原文:
微信支付在发送支付结果通知中发现贵公司有一个安全漏洞, 请转给贵公司技术人员或系统提供商第一时间修复处理。【漏洞详情】:http://url.cn/5bNFX9o
网络安全漏洞直接影响贵公司业务开展,甚至导致资金损失。提前发现和修复漏洞,避免贵公司系统遭受黑客攻击。
为保证用户资金安全,微信支付将于2018年10月25日对仍未修复的商户采取暂停交易权限的措施。如有疑问,请通过邮箱 [email protected] 申请技术协助。感谢支持,微信支付与您共建安全支付。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.