首页 > 其他分享 >APP整合微信APV3支付过程解析

APP整合微信APV3支付过程解析

时间:2023-12-14 09:56:17浏览次数:32  
标签:java service 微信 APP request wechatpay wxUtil APV3 com

求个关注和点赞!!!!!谢谢啦~~~~~~~~~~~~~~~~~~~~~

1.官方文档:

开发指引-APP支付 | 微信支付商户平台文档中心 (qq.com)

2.根据官方文档给的SDK进入到相应的文档:

https://github.com/wechatpay-apiv3/wechatpay-java

3.在idea引入相应的maven依赖:

<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.12</version>
</dependency>

这个依赖引入之后如果版本号飘红,就刷新maven即可

4.文档下面有Native下单样例,具体别的样例文档也已经给出:

https://github.com/wechatpay-apiv3/wechatpay-java/tree/main/service/src/example/java/com/wechat/pay/java/service/payments/app

当然,打不开不要急因为很卡很卡很卡很卡很卡......

5.找到相应的example,接下来我们根据每一行代码进行详细介绍:

// 一个商户号只能初始化一个配置,否则会因为重复的下载任务报错
// 创建 config 目的是为了提供给微信支付重要的配置信息
Config config =
new RSAAutoCertificateConfig.Builder()
// 商户号
.merchantId(wxUtil.mchId)
// 证书私钥地址:放在本地也可,服务器也可,但是一定起个英文名字放!!!
.privateKeyFromPath(wxUtil.privateKeyPath)
// 证书序列号
.merchantSerialNumber(wxUtil.mchSerialNo)
// v3密钥
.apiV3Key(wxUtil.apiV3Key)
.build();
// 构建 service,SDK里面配置了相应地与签名有关的操作,给我们开发者省了很大的力气
AppService service = new AppService.Builder().config(config).build();
// NativePayService service = new NativePayService.Builder().config(config).build();
// request.setXxx(val)设置所需参数,具体参数可见Request定义
PrepayRequest request = new PrepayRequest();
Amount amount = new Amount();
amount.setTotal(rechargeOrder.getPrice().intValue());
request.setAmount(amount);
request.setAppid(wxUtil.appId);
request.setMchid(wxUtil.mchId);
request.setDescription(order.getDescription());
request.setNotifyUrl(wxUtil.notifyDomain);
request.setOutTradeNo(order.getOrderSn());
// 调用下单方法,得到应答
PrepayResponse response = service.prepay(request);

6.至此其实就可以了,有几个方面需要注意一下:

1>>

java里面的密钥生成一般是128位,但是我们使用的这个方法里面所需要的密钥超过了128位,必须替换jdk里的相应jar包,可以去官网下载(我是用的jdk1.8):

JDK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

去官网选择自己合适的版本即可。

下载完成之后,将%JDK_HOME%\jre\lib\security目录下的两个源文件替换掉即可。

替换之前记得备份一下,不成功的话就重启idea和刷新maven。

2>>

其他的SDK不一定安全,建议使用这个,或者自己根据官网的接口文档自己封装也可以。

APP下单封装的service有两个,使用哪一个都可以,但是注意他们的相应和接收都不一样,要一一对应即可。

 

标签:java,service,微信,APP,request,wechatpay,wxUtil,APV3,com
From: https://www.cnblogs.com/baoguiying/p/17900513.html

相关文章

  • 解决uniapp无法ios运行的问题
    问题描述设备无法运行uniapp应用设备无法运行uniapp应用的问题表现在哪些方面?如何判断iOS设备无法运行uniapp应用?iOS设备无法运行uniapp应用的原因有哪些?有哪些可能的解决方法解决方法:检查代码错误:首先要检查代码是否存在拼写错误、语法错误或者逻辑错误,这些问题都可能导致应用......
  • uniapp开发——纯原生渲染nvue调用uni.makePhoneCall没反应的处理办法
    uni.makePhoneCall(OBJECT)|uni-app官网(dcloud.net.cn)正常情况下,manifest.json配置拨打电话的权限就可以了:配置权限后重新打包,真机运行应该就可以正常的拨打电话了。如果API没反应,那么可以试试下边这种不弹出询问框直接拨打电话的方法:callMobile(){letmobile......
  • vs code调试appium-adb项目记录
    一、前言因为使用appium的时候发现一个问题,最后定位在是appium-adb执行的时候processExists函数时出现的问题。因此需要对appium-adb进行断点调试以及修改。appium-adb项目是使用javascript和Typescript写的,所以也就是对js项目的调试。因为第一次接触js,很多东西一步步摸索过来的......
  • ArgoCD ApplicationSet CRD
    ApplicationSet概述ApplicationSetcontroller是一个Kubernetescontroller,添加了对ApplicationSetCustomResourceDefinition(CRD)的支持。该controller/CRD实现了跨大量集群和monorepos内管理ArgoCDApplication的自动化和更大的灵活性,此外,它还使多租户Kubernetes......
  • SAP-APP-服务器组-pacemaker集群的基础环境的安装部署-001
    1、安装pacemaker相关的软件及可能会用到的软件,两台主机都需要安装[root@app01qq-5201351]#yuminstallnmap-ncat-y[root@app01qq-5201351]#yuminstallpcs-y[root@app01qq-5201351]#yuminstallresource-agents-sap-ynmap-ncat软件包是因为可以提供nc命令,只......
  • App测试工具记录
    使用到的工具模拟器androidstudio总体来说好用,有多个版本可选细分好,可以指定任意的android版本.坏处是有自己的网关无法使用和主机一致的网段genymotion好用,创建的手机性能高,没有上面的网段问题,但是需要注册,有账号就可以爽用.有付费内容App自动化工具appiumin......
  • ArgoCD AppProject CRD
    Project概述Projects负责为Application提供逻辑分组,它主要实现如下功能:1.限制可以部署的内容(指定受信任的GitSource仓库)2.限制Application可以部署到的目标位置(指定目标Cluster和Namespace)3.限制能够及不能够部署的对象类型,例如RBAC、CRD、DeamonSets、NetworkPolicy等4......
  • AppLink+WMS,实现仓储管理一体化
    WMS像全能的库管员,可以在线还原真实仓库,让企业进行科学化、条理化、俯视化的仓库管理。随着移动互联网和物流行业的快速发展,如何提高仓储管理的效率和准确性成为了企业关注的焦点。在这个背景下,结合AppLink和WMS系统,可以实现仓储管理的一体化,为企业带来更高效的运营和更好的客户体......
  • H5开发App应用程序的常见问题以及解决方案
    Hello大家好,我是咕噜铁蛋,天冷记得添衣,ok话说回来H5开发成为了一种流行的方式来构建跨平台的移动应用程序。然而,在H5开发App应用程序的过程中,我们常常会遇到一些问题,这些问题可能涉及性能、兼容性、用户体验等方面。作为致力于帮大家解决问题的老铁,铁蛋今天为大家分享一些常见问题以......
  • ArgoCD Application CRD
    Application示例apiVersion:argoproj.io/v1alpha1kind:Applicationmetadata:name:guestbook#You'llusuallywanttoaddyourresourcestotheargocdnamespace.namespace:argocd#AddthisfinalizerONLYifyouwantthesetocascadedelete.......