微信支付(JSAPI支付)接入流程

news2024/11/26 8:55:35

一、 常用支付方式

微信当前支持的支付产品有如下这些:

在这里插入图片描述

可以根据自己的需要选择接入的支付方式。 接入指引

我们常用的支付方式:JSAPI支付 Native支付 APP支付

  • JSAPI支付: 商家张贴收款码物料,用户打开扫一扫,扫码后输入金额,完成付款
  • Native支付: 商家在系统中按微信支付协议生成支付二维码,用户扫码拉起微信收银台,确认并完成付款
  • APP 支付: 用户在商家的APP中下单,跳转到微信中完成支付,支付完后跳回到商家APP内,展示支付结果,随后通过微信支付公众号下发账单消息

接入文档里面有各个接入方式的详细说明。这里只介绍JSAPI支付

二、简介

JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收款。

三、应用场景

JSAPI支付适用于线下场所、公众号场景和PC网站场景。

商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。

四、接入准备

1. 选择接入模式:普通商户或普通服务商

商户/服务商在接入前首先要判断自己公司注册区域适用的接入模式,微信支付目前提供两种接入方式:直连模式和服务商模式。
直连模式:
信息、资金流:微信支付—>直连商户

直连模式,商户自行申请入驻微信支付,无需服务商协助。(商户平台申请)成为直连商户

服务商模式:
在这里插入图片描述

   							 —— 信息流    —— 资金流

服务商模式,商户申请成为微信支付服务商,服务商自身无法作为一个直连商户直接发起交易,其发起交易必须传入相关特约商户商户号的参数信息。(服务商平台申请)成为服务商

请结合自身实际情况来选择接入模式。

服务商模式相关说明详见:服务商模式介绍

2. 申请参数

商户自行申请入驻微信支付,无服务商协助。(商户平台申请)成为直连商户

  1. 申请APPID

    由于微信支付的产品体系全部搭载于微信的社交体系之上,所以直连商户或服务商接入微信支付之前,都需要有一个微信社交载体,该载体对应的ID即为APPID。

    注意: JSAPI支付的载体只能是公众号,请前往 公众平台申请

    各类社交载体一旦申请成功后,可以登录对应平台查看账号信息以获取对应的appid。

    不同载体可使用场景,见下图:
    在这里插入图片描述

  2. 申请mchid、绑定APPID及mchid 、配置API key、下载并配置商户证书
    步骤请查看我上一篇文章:微信支付(Native支付)接入流程

  3. 配置应用

    1. 设置支付授权目录
      支付授权目录说明

      • 普通商户最后请求拉起微信支付收银台的页面地址我们称之为“支付授权目录”,例如:https://www.weixin.com/pay.php的支付授权目录为:https://www.weixin.com/
      • 普通商户实际的支付授权目录必须和在微信支付商户平台设置的一致,否则会报错“当前页面的URL未注册:”。

      支付授权目录设置说明
      登录【微信支付商户平台—>产品中心—>开发配置】,设置后一般5分钟内生效。
      在这里插入图片描述

      支付授权目录校验规则说明

      • 如果支付授权目录设置为顶级域名(例如:https://www.weixin.com/ ),那么只校验顶级域 名,不校验后缀;
      • 如果支付授权目录设置为多级目录,就会进行全匹配,例如设置支付授权目录为 https://www.weixin.com/abc/123/,则实际请求页面目录不能为https://www.weixin.com/abc/,也不能为https://www.weixin.com/abc/123/pay/,必须为https://www.weixin.com/abc/123/
    2. 设置授权域名
      开发JSAPI支付时,在JSAPI下单接口中要求必传用户OpenID,而获取OpenID则需要您在微信公众平台 (opens new window)设置获取OpenID的域名,只有被设置过的域名才是一个有效的获取OpenID的域名,否则将获取失败。具体界面如图所示:
      在这里插入图片描述
      在这里插入图片描述

五、支付的流程

  1. 获取code

    在确保微信公众账号是已认证服务号的前提下,
    生成授权链接https://open.weixin.qq.com/connect/oauth2/authorize?appid={ {APPID}}&redirect_uri={ {REDIRECT_URI}}&response_type=code&scope={ {SCOPE""&state={ {STATE}}#wechat_redirect

    可以通过做成二维码的方式,让用户使用微信扫码,访问授权链接, 用户同意授权后,页面将跳转至 redirect_uri/?code={ {CODE}}&state={ {STATE}},应当使用https链接来确保授权code的安全性。

  2. 通过code换取网页授权access_token

    获取code后,请求以下链接获取access_token:
    https://api.weixin.qq.com/sns/oauth2/access_token?appid={ {APPID}}&secret={ {SECRET}}&code={ {CODE}}&grant_type=authorization_code

    正确时返回的JSON数据包如下:

    {
         
      "access_token":"ACCESS_TOKEN",
      "expires_in":7200,
      "refresh_token":"REFRESH_TOKEN",
      "openid":"OPENID",
      "scope":"SCOPE",
      "is_snapshotuser": 1,
      "unionid": "UNIONID"
    }
    

    这样就拿到微信用户的 OPENID

  3. 下单
    调用下单接口下单,成功后可以得到一个prepay_id

    {
         
      "prepay_id" : "wx201410272009395522657a690389285100"
    }
    
  4. JSAPI调起支付
    调起支付只能通过 H5 页面使用 JS 方法拉起微信的支付功能。

    function onBridgeReady() {
         
        WeixinJSBridge.invoke('getBrandWCPayRequest', {
         
            "appId": "wx2421b1c4370ec43b",     //公众号ID,由商户传入     
            "timeStamp": "1395712654",     //时间戳,自1970年以来的秒数     
            "nonceStr": "e61463f8efa94090b1f366cccfbbb444",      //随机串     
            "package": "prepay_id=up_wx21201855730335ac86f8c43d1889123400",
            "signType": "RSA",     //微信签名方式:     
            "paySign": "oR9d8PuhnIc+YZ8cBHFCwfgpaK9gd7vaRvkYD7rthRAZ\/X+QBhcCYL21N7cHCTUxbQ+EAt6Uy+lwSN22f5YZvI45MLko8Pfso0jm46v5hqcVwrk6uddkGuT+Cdvu4WBqDzaDjnNa5UK3GfE1Wfl2gHxIIY5lLdUgWFts17D4WuolLLkiFZV+JSHMvH7eaLdT9N5GBovBwu5yYKUR7skR8Fu+LozcSqQixnlEZUfyE55feLOQTUYzLmR9pNtPbPsu6WVhbNHMS3Ss2+AehHvz+n64GDmXxbX++IOBvm2olHu3PsOUGRwhudhVf7UcGcunXt8cqNjKNqZLhLw4jq\/xDg==" //微信签名 
        },
        function(res) {
         
            if (res.err

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

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

相关文章

Tomcat隐藏版本号和关闭默认管理页面

一. 隐藏Tomcat异常页面中的版本信息,Tomcat服务器版本号泄露 Tomcat/8.5.xx相关版本号等信息,是不安全的。这会被黑客获取到,利用该版本的其他漏洞对服务器进行异常操作,所以需要隐藏掉。 进入tomcat安装目录 apache-tomcat-8.…

MySQL系列-win10安装MySQL

MySQL系列-win10安装MySQL 1. MySQL系列-win10安装MySQL1.1MySQL下载安装MySQL5.71.2MySQL下载再安装MySQL8.0 未完待续 1. MySQL系列-win10安装MySQL 1.1MySQL下载安装MySQL5.7 下载地址 https://www.mysql.com/downloads/ 进入后,下拉页面,最下面有社…

Zabbix自定义监控内容案例(自动发现、自动注册)

一、自定义监控内容 案例:自定义监控客户端服务器登录的人数 需求:限制登录人数不超过3个人,超过5个人就发出报警 1、在客户端创建自定义key 创建Zabbix监控项配置文件,用于自定义Key #在zabbix的配置文件中定义了会加载放在/e…

Zabbix“专家坐诊”第210期问答汇总

问题一 Q:zabbix触发器条件基于历史趋势的函数有示例吗?还有这些基于历史趋势的函数,具体是读取历史表还是趋势表? A:读历史表,示例可以看看官网的。 https://www.bookstack.cn/read/zabbix-5.0-zh/37cf0…

前端批量下载文件(干货)

如果可以实现记得点赞分享,谢谢老铁~ 1.常见的下载方式 (1) window.open() (2) 通过 标签绑定url (3) 通过请求后台API接口进行下载 2.推荐方式 (1)如果是下载单个文件的 直接用window.open(url, ‘打开方式’) 这里的打开方…

Git 分支设计规范

开篇 这篇文章分享 Git 分支设计规范,目的是提供给研发人员做参考。 规范是死的,人是活的,希望自己定的规范,不要被打脸。 在说 Git 分支规范之前,先说下在系统开发过程中常用的环境。 DEV 环境:用于开发…

rtklib的rtknavi使用

1、点击rtknavi工具 2、配置输入的数据流 采用香港基准站的实时数据流,进行验证。 输入caster的地址 landsd-gncaster.realtime.data.gov.hk 选择HKSS 和HKWS 配置Options 点击运行

2023亚太杯数学建模A题B题C题思路汇总分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

[黑马程序员Pandas教程]——合并与变形

目录: 学习目标Dataframe合并 df.append函数纵向追加合并dfpd.concat函数纵向横向连接多个数据集df.merge合并指定关联列的多个数据集df.join横向合并索引值相同的多个数据集df合并小结Dataframe变形 df.T行列转置df.stack()和s.unstack()变形df.melt宽变长将列名变…

企业该怎么选择泛域名https证书

随着互联网技术的不断进步,网络安全技术也在不断发展,https数字证书技术也在不断进步。现在,为了迎合市场需求,CA认证机构开发了多种类型的https数字证书,而泛域名https证书可以有效地保护多个网站客户的个人隐私和信息…

通信原理板块——图像压缩编码

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 1、图像压缩编码 图像压缩编码可以…

增强group by的使用

-- (1) 显示某种岗位的雇员总数、平均工资 SELECT COUNT(empno),FORMAT(AVG(sal),2) AS avg_sal,jobFROM empGROUP BY job; -- (2) 显示雇员总数,以及获得补助的雇员数 SELECT COUNT(*) AS emp_total,COUNT(comm) AS emonyFROM emp;-- (3) 统计获得补助的非空补助的…

中国人民大学与加拿大女王大学金融硕士——在金融领域里持续探索、成长

在金融领域里持续探索、成长,这是一个永无止境的旅程。在这个领域里,机遇与挑战并存,未知与已知交织,需要我们时刻保持敏锐的洞察力和扎实的基本功。金融市场的变化日新月异,我们需要时刻关注市场动态,了解…

腾讯待办是不是停了?怎么用其它提醒软件查看导出的ics文件

腾讯待办是腾讯企业旗下的业务产品,其主要以微信小程序的形式使用,定位于待办事项和日程管理工具,支持罗列日程待办清单、设定定时提醒,帮助大家规划日常事务和进行时间管理,成功创建待办事项后可在对应的公众号和绑定…

餐品展示订餐小程序的作用是什么

对有门店的餐饮商家来说,只要味道能说的过去,能够满足时间、空间需求,那么订餐就会很平常,对中型或酒店等单位更是趋于平常,同时还有订桌、菜品预约、咨询等需求,那么对餐饮商家来说,基于餐品展…

互联网常见职称

1、管理层 CEO – Chief Executive Officer 首席执行官 VP – Vice President 副总裁 HRD – Humen Resource Director 人力资源总监 OD – Operations Director 运营总监 MD – Marketing Director 市场总监 GM – General Manager 总经理 PM – Production Manager 产品…

新能源产业微电网保护及安全自动装置解读

安科瑞 崔丽洁 摘 要:在“碳达峰”、“碳中和”的双碳背景下,为了避免化石能源的直接燃烧导致气候变化,新能源将作为新型电力系统供电的主体。为了保证新型电力系统的可靠运行,配置微机保护装置和电能质量在线监测装置有效监测电…

Flat Ads凭全球6亿独家流量,入选《中国数字营销生态图2023版》名单

近日,中国商务广告协会数字营销专业委员会、虎啸奖组委会、秒针营销科学院共同发布了《中国数字营销生态图(2023版)》的入选名单。该图谱一共包含三大类19个大赛道,109个细分赛道,收录了千余家数字营销优质服务商、媒体…

管理视频推广工作:新媒体团队的成功策略

目前的新媒体团队,在视频管理时呈现出多、杂、散的特点,如何有效管理视频素材是当下许多新媒体团队的管理痛点,也是管理要点。高效的视频推广管理是新媒体团队提升产出效率的关键。 那么新媒体行业该如何管理视频推广工作? 数据…

[SUCTF 2019]CheckIn1

提示 一句话木马的多种变式(这里需要用到用javascript来写一句话木马)注意修改文件头 先随意上传一个文件fuzz一下看能不能直接传webshell 从下面来看常见php后缀都不行,其中有一个没有加后缀过了后缀验证这一步,到了下一步,但是他还会看文件…