注册微信小程序并开通微信支付流程

news/2024/11/17 18:46:43/
  • 首先我们要梳理清楚,微信到底有哪些平台,以及每个平台的作用。

  1. 微信开放平台(如果单单只做小程序的话,这个平台可以不管,我们公司因为还有App所以也开通了,并且可以在开放平台绑定小程序【目前来看绑定没什么用处】为第三方移动程序提供接口用的,企业需支付300认证费用)

  2. 微信公众平台(申请、管理、发布公众号、小程序的平台,企业注册的时候可以使用对公账号打款认证方式,后续可以在微信开放平台绑定当前注册的小程序或微信公众号的公众平台账号)【特别注意:微信小程序如果需要开通微信支付的话,需要在公众平台微信小程序的管理界面中找到微信支付,然后去关联微信商户平台,但是前提是小程序必须通过微信认证,对,又是要交钱,300!!!但是如果你们公司已经有公众号的话(并且已经微信认证过),可以登录公众号的管理后台,绑定小程序,并复用认证资质,直接可以让小程序认证掉,节省300。小程序可以复用公众号的资质,但是公众号是无法复用小程序的资质的,所以建议还是用公众号去做微信认证,这样的话,就两个都能用,没有公众号的,可以再去注册一个!微信最坑的就是需要好多邮箱!!】

  3. 微信商户平台(企业开通微信支付,需要申请注册商户。申请成功后,可在小程序管理界面申请开通微信支付能力(即绑定当前的微信商户平台账号))

  4. 微信对话平台(注册申请机器人用的)

  • 大体的流程

一、【微信公众平台】申请小程序账号

二、【微信商户平台】注册申请商家账户

三、【微信开发工具】中上传源码并配置服务器相关信息(请求必须都是https(阿里云可以免费申请SLL证书))

四、【微信公众平台】的小程序管理界面开通微信支付(关联商户平台)

五、【微信公众平台】小程序管理界面申请发布小程序

六、【微信商户平台】开通微信分账功能,每一笔交易都实时分账

  • 代码中小程序唤起支付

1、小程序端唤起支付还是比较简答的,【登录(获取openId)=>向后台请求支付参数(请求携带支付金额和openId,其余的参数可以在后台写死)=>获取到后台返回的支付参数后,执行支付请求】我这边使用uni-app写的小程序,所有这边贴一下uni-app内部唤起小程序的代码。(整个支付流程看以下这个地址就特别清楚了:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_10&index=1#)

uni.login({provider:getApp().globalData.mLoginProvider,timeout:1500,success(loginRes) {//每一个微信唯一的ID,即openIDlet openId = loginRes.code;console.log("登录成功" + openId);/* 登录成功*//* 微信订单数据请求 */uni.request({rl: 'http://192.168.0.12:28203/api/aquaCyber/login',//请求地址//请求模式method: 'POST',//请求携带的参数data: {customerId:"1223344",payment:"100",														// #ifdef MP-WEIXINpayMethod:2,openId:openId,tradeType:"JSAPI",// #endif},timeout:10000,//请求头header: {'Content-Type':'application/json'},//请求成功success:(res) => {console.log(res);let configdata = res.data.data;/* 请求支付参数成功,将参数获取出来,执行支付请求 */uni.requestPayment({provider: getApp().globalData.mPayProvider,// #ifdef MP-WEIXINappId:configdata.appId,//小程序IDtimeStamp: configdata.timeStamp,//时间戳nonceStr: configdata.nonceStr,//随机数package: configdata.packageValue,//数据包signType: configdata.signType,//签名方式paySign: configdata.paySign,//签名数据// #endif// #ifdef MP-ALIPAYorderInfo:configdata.orderInfo,// #endif/* 支付成功,跳转到支付成功的界面 */success:(res) => {/* 弹出成功提示 */uni.showToast({duration:3000,title:"支付成功",icon:'success'});},/* 支付失败 */fail:(error) =>  {uni.showToast({duration:3000,title:"支付失败",icon:'none'});},complete: () => {uni.hideLoading();}});},/* 请求订单支付参数失败 */fail:(error) =>  {console.log(error.errMsg);/* 执行请求失败 */uni.showToast({duration:3000,title:"获取支付订单参数失败",icon:'none'});},complete: () => {uni.hideLoading();}})/* 支付宝订单数据请求 */},fail:(error) => {uni.showToast({duration:3000,title:"登录失败",icon:'none'});},complete: () => {uni.hideLoading();}});}
  • 特别注意的坑(主要是后台这边)

1、提示【签名失败】,多半是后台返回回来的签名有问题,后台需要在微信返回的签名上做二次签名,特别需要注意的坑是,做二次签名的时候,传参的顺序和传参的大小写(appid是统一下单时候的参数名,appId是二次签名的参数名)。(附加微信在线校验签名地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1)(若这边校验签名是成功,那多半就是二次其签名时候大小写之类的错误)

2、时间戳timeStamp这个参数最好也是后台生成,传给前端。(注意:微信的需要的时间戳是10位的)

3、小程序绑定商户平台的时候,在商户平台上获取到的key之类的参数,以及加密方式必须要做到一致。

4、支付宝小程序,需要在管理平台添加能力,下图三个必要的。

5、小程序唤起支付宝支付整体来说比较简单,这边顺带提一下小程序唤醒支付宝支付的坑,支付宝小程序支付和App的支付是有区别的(buyer_id),小程序支付的时候,前端是需要将授权码交由后台,后台根据授权码获取buyer_id,然后加上buyer_id参数去执行统一下单获取到支付宝交易号,返回给前端,前端即可执行唤起操作。(说是坑的原因的是,之前一直用的统一下单接口,但是小程序区别于App的)(附时序图)【前期由于没有好好看文档,没有加buyer_id,浪费很多时间】

æ¶åºå¾æ¨¡ç.png

APP和小程序支付方面还有什么问题,欢迎留言。。。

 


http://www.ppmy.cn/news/897838.html

相关文章

怎么免费注册微信小程序-微信小程序开发-视频教程1

自从去年微信发布小程序以来, 受到很多人的关注, 今年微信小程序不断的推出新功能, 组合线下活动, 让人有更多期待, 今天我们来看看怎么注册微信小程序。 什么人和机构可以注册微信小程序 微信公众平台允许以下5个主体…

如何正确的注册微信开发测试号

注册测试号 注册的地址在 这里 要进行微信公众号的开发,那就需要一个本地的开发环境来进行开发。而微信测试号就正好提供了这样的一个development环境。每个微信号只能对应一个测试号,但是每个测试号可以开发多个微信公众号项目。微信号与测试号是一一…

微信扫码登陆或注册设计流程

一、整体流程 1、点击微信登录按钮,跳转微信扫码页面 2、用户扫描登录码,匹配用户信息 3、未匹配到用户信息,做注册操作 4、匹配到用户信息,做登录操作 微信授权流程说明,参照微信开放平台 获取access_token时序图…

微信小程序:注册微信小程序

注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq.com)点击右上角的“立即注册”按钮。 选择注册的帐号类型 显示了4选项,我们现在是注册小程序,所以选择小程序 填写邮箱和密码 请填写未注册过公众平台、开放平台、企业号、…

java微信授权登录回调地址,微信开发者工具,注册微信公共平台

最近在做授权登录的时候遇到一个大坑,回调的地址的问题。 微信登录授权首先要在微信公众平台注册一个账号,然后获取 appID和appsecret 然后点击授权的 切记一定不能加上http://这些协议的东西; 这个域名是内网穿透获取用来通过微信授权的地…

【微信公众号】2. 微信公众号申请注册流程

目录 1. 内容概要 1.1 注意事项 1.2 注册订阅号步骤 1.3 订阅号包含功能 1. 内容概要 注册订阅号 1.1 注意事项 一个邮箱只能注册一个公众号(订阅号/服务号/小程序)注册订阅号成功后,3天内修改默认名字,否则账号会被回收 1.…

5.3 Python高级特性之-列表生成式、生成器、迭代器

一、 列表生成式 是Python内置的非常简单却强大的可以用来创建list的生成式 具体可根据如下案例理解,且代码也是可用的""" 1、 生成[0,1,2,3,4,5,6]这样列表 """ print(list(range(0, 7))) """ 2、 生成[0&#xff0…

工作日志3 对类型的判断 slice的截取对于jq的使用 el-table的表头和内容的位置

在 JavaScript 中,你可以使用多种方式来判断某个值是否为空。以下是几种常见的方法: 使用严格相等运算符 () 检查值是否为 null 或 undefined: var value null; // 或者 undefinedif (value null || value undefined) {// 值为空 }使用逻…