微信native支付对接

news2024/11/16 9:56:21

简介

Native支付是指商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。

应用场景

Native支付适用于PC网站、实体店单品或订单、媒体广告支付等场景,用户扫描商户展示在各种场景的二维码进行支付。聚体步骤如下:

1.商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买
2.用户使用微信“扫一扫”扫描二维码后,获取商品支付信息,引导用户完成支付。
3.用户确认支付,输入支付密码
4.支付完成后会提示用户支付成功,商户后台得到支付成功的通知,然后进行发货处理

接入前准备

直接跳转微信支付商户平台 https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_1.shtml

生成密钥文件:
在这里插入图片描述

配置文件:

wx:
  appId: appId
  keyPath: apiclient_key.pem
  certPath: apiclient_cert.pem
  certP12Path: 暂不用
  platformCertPath: platform_cert.pem
  mchId: mchId
  apiKey3: 暂不用
  apiKey: apiKey
  domain: https://hous.exchang.cn
  serialNo: 序列号

pom文件:

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

代码:

配置类:

//获取yml中微信配置
@Data
@ConfigurationProperties(prefix = "wx")
public class WechatProperties {
   

    private String appId;

    private String keyPath;

    private String certPath;

    private String platformCertPath;

    private String mchId;

    private String apiKey;

    private String domain;

    private String serialNo;
}
//配置类
@Configuration
@EnableConfigurationProperties(WechatProperties.class)
public class WechatNativeConfig {
   


    private final WechatProperties wechatProperties;

    public WechatNativeConfig(WechatProperties wechatProperties) {
   
        this.wechatProperties = wechatProperties;
    }

    @Bean
    public RSAConfig rsaConfig() throws IOException {
   
        ClassPathResource keyResource = new ClassPathResource(wechatProperties.getKeyPath());
        String apiClientKey = keyResource.getFile().getPath();
        ClassPathResource certResource = new ClassPathResource(wechatProperties.getPlatformCertPath());
        String platformCertResourceKey = certResource.getFile().getPath();
        /*String apiClientKey = wechatProperties.getKeyPath();
//        ClassPathResource certResource = new ClassPathResource(wechatProperties.getPlatformCertPath());
        String platformCertResourceKey = wechatProperties.getPlatformCertPath();*/
        return new RSAConfig.Builder()
                .merchantId(wechatProperties.getMchId())
                .privateKeyFromPath(apiClientKey)
                .merchantSerialNumber(wechatProperties.getSerialNo())
                //平台证书
                .wechatPayCertificatesFromPath(platformCertResourceKey)
                .build();
    }

    @Bean
    public NativePayService nativePayService() throws IOException {
   
        return new NativePayService.Builder()
                .config(this.rsaConfig())
                .build();
    }

    @Bean
    public NotificationParser notificationParser() throws IOException{
   
        ClassPathResource certResource = new ClassPathResource(wechatProperties.getPlatformCertPath());
        String platformCertResourceKey = certResource.getFile().getPath();
        //String platformCertResourceKey = wechatProperties.getPlatformCertPath();
        NotificationConfig config = new RSANotificationConfig.Builder()
                .apiV3Key(wechatProperties.getApiKey())
                .certificatesFromPath(platformCertResourceKey)
                .build();
        // 初始化 NotificationParser
        return new NotificationParser(config);

    }

    @Bean
    public RefundService refundService() throws IOException {
   
        return new RefundService.Builder().config(this.rsaConfig()).build();
    }

}

创建支付单:

	@Slf4j
@Service
@EnableConfigurationProperties(WechatProperties.class)
public class WechatNativePayServiceImpl implements BasePayService {
   

    @Resource
    private WechatProperties wechatProperties;

    @Resource
    private NativePayService nativePayService;

    @Resource
    private RedisCache redisCache;

    @Value("${spring.application.name:scm-ofc-system}")
    private String serviceName;


    @Override

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【EI会议投稿】第三届电气、控制与信息技术国际学术会议(ECITech 2024)

第三届电气、控制与信息技术国际学术会议&#xff08;ECITech 2024&#xff09; 2024 3rd International Conference on Electrical, Control and Information Technology 继往届ECITech年度系列会议的成功举办&#xff0c;第三届电气、控制与信息技术国际学术会议&#xff08…

JTAG 详解

10.1 JTAG简介 JTAG接口的基本工作原理是&#xff1a;在芯片内部定义一个TAP&#xff08;Test Access Port&#xff0c;测试访问端口&#xff09;&#xff0c;开发人员使用连接到芯片的JTAG外部接口上的JTAG调试器&#xff0c;通过访问芯片内部的TAP端口来扫描芯片内部各个扫…

数据驱动决策:大数据分析如何塑造业务成功

文章目录 大数据分析的定义大数据分析如何影响业务1. 洞察业务趋势2. 提高决策质量3. 优化运营效率4. 个性化客户体验5. 发现新商机 如何利用大数据分析实现业务成功1. 收集和整合数据2. 选择适当的工具和技术3. 制定数据策略4. 建立数据分析团队5. 进行实验和反馈 大数据分析的…

激活函数作用以及 sigmoid和softmax

激活函数 激活函数在神经网络中起着非常重要的作用&#xff0c;它的主要功能是引入非线性性质&#xff0c;使得神经网络可以学习和表示更加复杂的模式和关系。下面是激活函数的几个主要作用&#xff1a; 引入非线性&#xff1a;激活函数通过引入非线性变换&#xff0c;打破了…

java.sql.SQLException: ORA-28000: the account is locked

1.遇到的问题 Oracle执行报下面的错误 java.sql.SQLException: ORA-28000: the account is locked 2.解决办法 登录sysdba管理账号&#xff0c;执行下面命令。 alter user demo account unlock&#xff1b;

NPDP产品经理证书值得考吗?

NPDP&#xff08;New Product Development Professional&#xff09;证书是由新产品开发专业协会&#xff08;PDMA&#xff09;提供的一项专业认证。对于那些在产品开发领域寻求进一步发展的人来说&#xff0c;考取这个证书可能是一个值得考虑的选择。 首先&#xff0c;NPDP证…

以“降本增效”为目标,智能视频监控能为企业带来哪些经济价值?

随着经济的发展和科技的进步&#xff0c;企业需要不断提升自身的品质和效率&#xff0c;以保持竞争优势。而智能视频监控技术正是一项值得考虑的工具&#xff0c;其对企业带来的降本增效效益可以通过以下几个方面来体现。 1、降低运行成本 EasyCVR智能视频监控平台可以实现远程…

Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数

一、聚合函数 SQL中提供了一些可以对查询的记录的列进行计算的函数——聚合函数 1.count&#xff08;&#xff09; 统计函数&#xff0c;统计满足条件的指定字符的值的个数 统计表中rebirth_mood个数 select count(列名) from 表名; #统计表中rebirth_namelcl的个数 select …

亚马逊发布Q3财报,营收利润强劲,云业务增长缓慢

KlipC报道&#xff1a;10月26日&#xff0c;亚马逊发布财报显示&#xff0c;该公司2023年第三季度每股收益0.94美元&#xff0c;营收同比增13%至1431亿美元&#xff0c;营业利润率7.8%远超预期的5.46%&#xff0c;均高于预期。 KlipC的合伙人Andi D表示&#xff1a;“三季度盈利…

S-3A5001 DPDK性能优化

一、已知问题 1. 7A1000桥片总带宽约20G&#xff0c; 7A2000桥片总带宽约40G 2. 7A1000桥片单槽无法跑满2个10G口&#xff0c;需要用双槽来跑&#xff0c;每个槽用1个port 二、 板卡当前状态 用双槽单port模式测试丢包 调试方案1&#xff1a;配置HT拆包寄存器 busybox devm…

如何开通 Medium会员

1 开通 WildCard 卡 首先你需要一张可以支付的外国卡 选择开通 WildCard 卡&#xff0c;优点&#xff1a; 1 无需上传身份证件&#xff0c;支付宝认证即可 2 可以使用国内手机号注册 3 可以使用支付宝、微信充值 开通地址&#xff1a; https://bewildcard.com/card 一步一步…

【AI视野·今日Sound 声学论文速览 第三十期】Fri, 20 Oct 2023

AI视野今日CS.Sound 声学论文速览 Fri, 20 Oct 2023 Totally 7 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;Loop Copilot,基于对话模型的作曲助理 (from 伦敦大学玛丽女王学院) website:https://sites.google.com/view/loop-copilot Daily…

c语言中啥时候用double啥时候用float?

c语言中啥时候用double啥时候用float&#xff1f; 一般来说&#xff0c;可以使用double来表示具有更高精度要求的浮点数&#xff0c;因为它可以存储更大范围的数值并且具有更高的精度。 最近很多小伙伴找我&#xff0c;说想要一些c语言资料&#xff0c;然后我根据自己从业十年…

netcore项目中使用miniexcel

1.miniexcel背景简介 常工作中经常与数据打交道的同学肯定会难以避免对Excel的一些数据操作如导入、导出等&#xff0c;但是当对一些大数据量操作Excel时经常会遇到一个常见的问题内存溢出。今天给大家推荐一个简单、高效、低内存避免OOM&#xff08;内存溢出&#xff09;的.N…

SILKYPIX Developer Studio Pro 11E for Mac: 掌握数码照片处理的黄金标准

在当今的数字时代&#xff0c;照片处理已经成为我们日常生活的一部分。无论是社交媒体分享&#xff0c;还是个人相册制作&#xff0c;我们总是希望我们的照片能够展现出最佳的效果。然而&#xff0c;这并非易事。幸运的是&#xff0c;SILKYPIX Developer Studio Pro 11E for Ma…

Angular-04:指令

① 内置指令1.1 *ngIf 结构指令1.2 [hidden] 属性指令1.3. *ngFor 结构指令1.4 *ngSwitch 结构指令 ② 自定义指令用法 指令是angular操作dom的途径&#xff0c;分为属性指令和结构指令。属性指令&#xff1a;修改元素的外观或行为。使用 [ ] 包裹。结构指令&#xff1a;增加、…

未来嵌入式在哪些方向会更火?

针对于嵌入式比较官方的定义为&#xff1a;嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。目前,随着全球物联网设备的大量使用和ChatGpt的出现,嵌入式系统市场目前呈现出一个…

商人宝:选择服装店收银系统源码需要注意的三个关键点

当选择服装店收银系统源码时&#xff0c;有几个关键点需要注意。首先&#xff0c;确保系统具备完备的功能&#xff0c;以满足日常运营的需求。其次&#xff0c;易用性和用户体验也是重要的考虑因素。最后&#xff0c;安全性和稳定性是不可忽视的要素。商人宝开源收银系统今天分…

小型洗衣机哪个牌子质量好?家用小洗衣机推荐

随着人们的生活水平的提升&#xff0c;越来越多小伙伴来开始追求更高的生活水平&#xff0c;一些智能化的小家电就被发明出来&#xff0c;而且小型洗衣机是其中一个。现在通过内衣裤感染到细菌真的是越来越多&#xff0c;所以我们对内衣裤的清洗频次会高于普通衣服&#xff0c;…

第27届亚洲国际动力传动与控制技术展览会盛大开幕,意大利国家展团闪耀回归

2023年10月24日&#xff0c;第27届亚洲国际动力传动与控制技术展览会&#xff08;PTC ASIA&#xff09;在上海新国际博览中心正式拉开帷幕。作为亚太地区动力传动行业的风向标&#xff0c;PTC ASIA致力于为来自世界各地的参展企业提供专业的采供、技术信息交互平台&#xff0c;…