Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款

年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款

原创
作者头像
悟空码字
发布于 2023-01-26 15:51:15
发布于 2023-01-26 15:51:15
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,我是小悟

今天是正月初五,天气超级好,也是迎财神的日子,祝大家顺风顺水,财源滚滚,钱兔似锦。

既然要发财,那自然少不了收款咯。如果你是一个商家,肯定是想收款的方式越方便越好,但支付渠道有那么多种,也就意味着顾客的支付选择也是多种。

那总不能把所有的渠道收款码都贴上吧,那会非常的乱,对顾客来说也极其不方便,一个码能解决的事情,就不要搞复杂化了。那这个是怎么实现的呢?

要实现一码多渠道收款其实也不难,毋庸置疑,现在主流的支付方式就是微信和支付宝,而在微信和支付宝申请的商户相同点是都支持余额、银行卡和信用卡支付,不同点是微信支持云闪付支付,支付宝支持花呗支付。所以只要对接了微信和支付宝,那基本上就够用了。

值得一提的是,随着微信支付生态的发展,现在想实现这样的功能是越来越方便了。借助微信扫普通链接二维码打开小程序的功能,无需判断前端是微信还是支付宝或者其他APP扫码,可以减少很多工作量。

所以重点来了,我们都知道,微信和支付宝根据前端不同而有多种支付方式,比如APP支付,H5支付,小程序支付等。

为了实现更全和更简单的功能,支付宝需要对接H5支付,而微信需要对接的却是小程序支付。说到这里你可能就有疑问了,为啥不都是H5支付或都是小程序支付?

首先对接支付宝H5支付的话,当你使用其他APP比如抖音、快手打开的时候也可以跳转到支付宝完成支付,一劳永逸。再者因为微信小程序支付支持云闪付支付,所以微信对接的是小程序支付。

说到这里不知道你已经想到实现思路了吗?是的,前端需要开发一个简单的页面,但是再简单,起码可以输入金额吧。然后简单做下金额正则校验,因为涉及到H5和小程序,所以可以使用uniapp编写前端页面部署更方便,也就是说支付宝部署的是H5,微信部署的是小程序。

我写的demo是搞了两个,不要学我哦,怎么方便怎么来,左边是支付宝H5扫出来的样子,右边是微信小程序扫出来的样子。

支付做多了服务端其实也不复杂,注意,支付宝对接的是H5支付,微信对接的是小程序支付,简单贴一下代码。需要写回调的话也一定不要忘了哦。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
支付宝H5支付
public AjaxResult aliPayH5(PayModel payModel) {
    payModel.setBody("支付宝H5支付").setSubject("支付宝H5支付");
    String outTradeNo = IdUtil.getSnowflake(1,1).nextIdStr();
    payModel.setOutTradeNo(outTradeNo).setPassbackParams(outTradeNo);
    String form = aliPayService.aliPayH5(payModel);
    if(StringUtils.isNotBlank(form)) {
        Map<String, Object> result = new HashMap<>(2);
        result.put("form", form);
        return AjaxResult.success(result);
    }
    return AjaxResult.error("数据准备异常");
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
微信小程序支付
public AjaxResult jsapiMaPayCommon(JsapiOrderParam param, HttpServletRequest request) {
    String openId = param.getOpenId();
    String remoteAddr = IpUtils.getIpAddr(request);
    String outTradeNo = IdUtil.getSnowflake(1,1).nextIdStr();
    BigDecimal decimal100 = new BigDecimal("100");
    BigDecimal orderAmount = new BigDecimal(String.valueOf(param.getAmount()));
    JsapiParam jsapiParam = new JsapiParam();
    jsapiParam.setAppid(wechatProperties.getMaAppId())
            .setMchid(wechatProperties.getMchId())
            .setDescription("微信小程序支付")
            .setOut_trade_no(outTradeNo)
            .setAttach(outTradeNo)
            .setNotify_url(wechatProperties.getNotifyUrlCommon());
    Amount amount = new Amount();
    amount.setTotal(decimal100.multiply(orderAmount).intValue());
    jsapiParam.setAmount(amount);
    Payer payer = new Payer();
    payer.setOpenid(openId);
    jsapiParam.setPayer(payer);
    SceneInfo sceneInfo = new SceneInfo();
    sceneInfo.setDevice_id("POS1:12");
    sceneInfo.setPayer_client_ip(remoteAddr);
    jsapiParam.setScene_info(sceneInfo);
    BaseParam baseParam = new BaseParam();
    baseParam.setAppName(wechatProperties.getAppName())
            .setMchId(wechatProperties.getMchId())
            .setMchSerialNo(wechatProperties.getMchSerialNo())
            .setWechatSerialNo(wechatProperties.getWechatSerialNo())
            .setMchPrivateKeyPath(wechatProperties.getMchPrivateKeyPath())
            .setWechatPubKeyPath(wechatProperties.getWechatPubKeyPath());
    JSONObject result = wechatService.jsapiPay(jsapiParam, baseParam);
    int status = result.getInteger("requestStatus");
    if (status == 200) {
        SortedMap<Object, Object> params = new TreeMap<>();
        String timestamp = Long.toString(System.currentTimeMillis() / 1000);
        String nonceStr = UuidUtils.randomUUID();
        String packageParam = "prepay_id=" + result.getString("prepay_id");
        String paySign = SignUtils.paySign(wechatProperties.getMaAppId(), timestamp, nonceStr, packageParam,
                wechatProperties.getMchPrivateKeyPath());
        params.put("appId", wechatProperties.getMaAppId());
        params.put("timeStamp", timestamp);
        params.put("paySign", paySign);
        params.put("signType", "RSA");
        params.put("nonceStr", nonceStr);
        params.put("package", "prepay_id=" + result.getString("prepay_id"));
        logger.info("params:{}",params);
        return AjaxResult.success(params);
    } else {
        return AjaxResult.error(result.getString("message"), result);
    }
}

部署起来后,支付宝基本就这样了,能支付就行,微信还需要配置一些东西。首先,微信商户号后台,支付方式配置,云闪付需要开启状态。

其次,小程序后台,需要配置扫普通链接二维码打开小程序,将部署的支付宝H5支付链接地址映射到微信小程序的支付页面,测试范围选择线上版,全网发布即可。这样,当使用微信扫描该二维码地址时,就会自动跳转到微信小程序支付页面。

然后使用草料二维码生成器将H5地址塞到二维码里面,就大功告成了,以后使用微信或支付宝,或者其他APP扫码就可以完成支付了。支持微信、云闪付、支付宝、花呗、银行卡、信用卡支付。打完收工。

一码在手,生意你有。

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海

上一篇:微信小程序模板消息接口下线了,不用慌,调用统一服务消息接口来实现相同功能

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信扫码支付(模式一)遇到的那些坑
在这个二维码风起云涌的时代,在线支付已经成为潮流,没事扫一扫,打赏一下我也不介意。 timg.jpg 酝酿 谈坑之前先聊一聊模式一的大体流程,模式一的适用场景一般为自助售卖机或者固定价格的商品的线下交
小柒2012
2018/04/16
5K2
微信扫码支付(模式一)遇到的那些坑
微信h5支付,微信外浏览器支付实现
大家好,又见面了,我是你们的朋友全栈君。 对接第三方比较重要的点都有什么? 1.按规则 2.单独封装 3.做好出入参 2021-02-07修改 看一下官方文档还是很必要的,知道必不可少的
全栈程序员站长
2022/08/18
1.8K0
微信h5支付,微信外浏览器支付实现
微信H5支付
先说一个事情。8月1号开始微信公众平台支付的开发配置页面迁移至商户平台 详细说明参考这个或者看下面的截图
Javen
2018/08/21
7.5K1
微信H5支付
springboot集成微信支付V3(小程序)
目前微信支付的 api 有 V2 和 V3 两个版本,V2 是 xml 的数据结构不建议用了,很麻烦(虽然 V3 也不简单).
adu
2022/10/30
3.3K0
springboot集成微信支付V3(小程序)
H5微信支付、支付宝支付
1.绑定域名: 登录微信公众平台 –> 公众号设置 –> 功能设置 –> 填写“JS接口安全域名”
青梅煮码
2023/02/18
1.7K0
H5微信支付、支付宝支付
微信支付之微信小程序支付
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/78956042
林老师带你学编程
2019/05/26
5.1K0
微信小程序调起H5页面支付的全流程解析与实战
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/12/30
3K1
微信小程序调起H5页面支付的全流程解析与实战
微信JSAPI支付
1.和H5、Native扫码支付略微有点不同,JSAPI主要适用于微信内支付的场景,就是在微信内置浏览器中实现的H5支付
安德玛
2022/03/05
2.4K0
JAVA后端实现统一扫码支付:微信篇
1.判断支付平台,在判断是微信平台时,必须使用window.location打开网页,使用其他方法在IOS版微信无法打开网页,至少现在的新版微信无法打开。对应的连接是请求获取code的链接。第2步会讲到。
Java编程指南
2019/08/02
1.2K0
JAVAWEB开发的微信公众号H5支付
一切需求都是来源于业务需要,前一阵子做了微信扫码支付,的确相对PC用户来说方便了很多。但是如果手机下单,你总不能让用户自己扫自己吧?查看了一下文档,微信还是支持公众号内网页端调起支付(前提你必须有微信
小柒2012
2018/04/13
3.2K0
JAVAWEB开发的微信公众号H5支付
微信支付之扫码、APP、小程序支付接入详解
做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现。目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付。那么大家要思考了,为什么微信支付和支付宝支付能作为大多数公司接入的首选呢?其实这个问题大多小伙伴应该是很清楚的,说白了就是人家有庞大的用户流量,目前微信在国内的用户已突破10亿,支付宝也接近8亿左右,如此庞大的用户群体,你还会选择其他的第三方支付(微博钱包、财付通、快钱等)吗,作为普通客户,大家都希望能方便快捷,谁会为了在一个平台买点东西下载或开通其他服务呢,除非你给他有诱惑性的好处。今天我们先说说微信支付的接入及实现。
攻城狮的那点事
2019/08/26
2.1K0
微信支付之扫码、APP、小程序支付接入详解
微信公众号H5支付遇到的那些坑
简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的手机浏览器请求微信支付的场景唤起微信支付。 当然,今天的主角是微信公众号支付,其实也不一定非在公众号中打开,只要在微信中打开就可以使用。 实现 项目使用的springboot微服务来实现,以下都是简单的伪代码实现,具体逻辑见码云。 Main 其实就是一个初始化下单操作,前台业务逻辑在这就不展示了,这个就是接收
小柒2012
2018/04/16
5.5K3
【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
微信支付是腾讯集团旗下的第三方支付平台,致力于为用户和企业提供安全、便捷、专业的在线支付服务。以“微信支付,不止支付”为核心理念,为个人用户创造了多种便民服务和应用场景。微信支付为各类企业以及小微商户提供专业的收款能力,运营能力,资金结算解决方案,以及安全保障。用户可以使用微信支付来购物、吃饭、旅游、就医、交水电费等。企业、商品、门店、用户已经通过微信连在了一起,让智慧生活,变成了现实。
愚公搬代码
2022/10/31
9730
【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
〔支付接入〕微信的 h5 支付和 jsapi 支付
江户川码农
2023/08/10
2.2K0
〔支付接入〕微信的 h5 支付和 jsapi 支付
金融项目-微信支付-思路
公众号接入支付: https://pay.weixin.qq.com/static/applyment_guide/applyment_detail_public.shtml
张哥编程
2024/12/07
2410
手把手教你springboot集成微信支付
最近要做一个微信小程序,需要微信支付,所以研究了下怎么在 java 上集成微信支付功能,特此记录下。
用户2038589
2022/09/21
2.2K0
实战:第八章:支付宝Native,JSAPI支付与微信Native,JSAPI,MWEB支付实现
以上三种支付方式都是需要和前端交互的网页类支付接口 然后看看H5的配置类:\  
Java廖志伟
2022/09/28
7560
一文快速实现微信公众号支付功能(详细版,建议收藏备用)
微信支付实际上有很多种不同的类型,具体要使用哪一种就需要根据不同的应用场景来选择,官方给出的参考例子: 刷卡支付:用户打开微信钱包的刷卡的界面,商户扫码后提交完成支付。 公众号支付:用户在微信内进入商家H5页面,页面内调用JSSDK完成支付 扫码支付:用户打开"微信扫一扫“,扫描商户的二维码后完成支付 APP支付:商户APP中集成微信SDK,用户点击后跳转到微信内完成支付 H5支付:用户在微信以外的手机浏览器请求微信支付的场景唤起微信支付 小程序支付:用户在微信小程序中使用微信支付的场景
java进阶架构师
2019/01/02
6K0
实习生妹子问我怎么对接微信支付(H5、JSAPI、小程序)
开通微信商户号、微信公众号然后按照步骤准备一堆资料审核,然后设置相关配置。所以最好提前准备资料审核以免耽误开发进度。配置的步骤:官方文档,直接按照官方文档配置就行了。需要特别注意的是配置商户号的支付授权目录和公众号的授权域名必须一致,不然会调起支付失败的!
andyhu
2022/12/14
1.2K0
微信H5支付
微信支付分很多种,其中微信H5支付是给在手机浏览器上使用,在手机上发起付款,自动跳转到微信并付款
二十三年蝉
2022/03/10
1.4K0
微信H5支付
推荐阅读
相关推荐
微信扫码支付(模式一)遇到的那些坑
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验