微信小程序支付开发及问题

2023-11-09

一.前期准备

微信后台申请微信支付:微信支付-商务号关联(个人信息 填写,操作密码)-》api密钥设置

得到appid AppSecret  商户号  api密钥等

微信支付接口签名校验工具

二大概流程

1)登录,获取code(一个code只能用一次)
2)通过code获取openid(通过请求服务器,由服务器请求微信获取并返回小程序)。微信登录+获取openid接口

wx.login({
	success: function(res) {
		if (res.code) {
			let params={
				code:res.code,
			}
			Api.getWxUserInfo(params).then(res => {
				if(res.success==true){
					let userOpen={
						openId:res.data.openId,
						userId:res.data.userId
					}
					wx.setStorageSync('userOpenInfo',userOpen);
				}
			});
		}else {
			wx.showToast({
				title: '获取用户登录失败请重新关注',
				icon: 'none',
				duration: 5000
			});
		}
	}
});
注意这边openid 是后端加密后的,

3)前端把openid,订单数据(支付金额等)的传给服务端
4)服务端根据请求订单数据、生成第三方订单号,调用微信的统一下单接口 、第一次签名、第一次签名成功后返回再一次签名,最后后端这些参数('timeStamp','nonceStr','package','signType','paySign')返回给前端,

5)前端发起支付(wx.requestPayment),并支付完成 
6)服务器收到回调

let payParams = {
	tempId:wx.getStorageSync('tempId'),
	totalMoney:mythis.data.totalMoney,//总金额
	openId:wx.getStorageSync('userOpenInfo').openId
}
Api.pay(payParams).then(datas => {

	if(datas.success == true){
		 console.log('获取参数', datas.data);
		let dataInfo = JSON.parse(datas.data);
		wx.requestPayment({
			'timeStamp': dataInfo.timeStamp,//时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间
			'nonceStr': dataInfo.nonceStr,//随机字符串,长度为32个字符以下
			'package':dataInfo.package,//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=***
			'signType': dataInfo.signType,//MD5	签名算法
			'paySign': dataInfo.sign,//签名
			'success': function (data) {
				console.log('成功',data)
			},
			'fail': function (data) {
				console.log('失败',data)
			}
		})
	}
}).catch((err) => {
				    console.log('异常',err)
				wx.hideLoading();
				wx.showToast({
					title: '数据支付有异常',
					icon: 'none',
					duration: 5000
				});
			});

注意服务端返回的数据要注意大小写 

二.遇到问题

1.微信支付遇到调用支付JSAPI缺少参数:total_fee(高效精准解决方法)

2. errMsg: "requestPayment:fail 支付验证签名失败"

这个是签名paySign 获取失败 有可能是后端返回的字段大小有关

3.小程序发起支付请求,在未到达支付商户时,将金额拆分两部分,分别到两个不同的商户号进行入账。

这样是不行的。分账必须走服务商

4.小程序可以绑定多个商户号,同时调起多个支付 (验证成功,都是同主题的)

比如:a按钮可以把钱支付给A商户号 b按钮可以把钱支付给B商户号

5.小程序主体市医院与商户号主体是企业,这个前提下,医院的小程序关联了企业的商户号支付能成功

6.小程序主体与商户号主体不一致可以绑定吗?如果不能有什么解决方案?

不可以绑定,但是可以用不同的主体收款,但是需要做联合运营,可以参考https://pay.weixin.qq.com/index.php/public/cms/content_detail?platformType=0&lang=zh&id=35001

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序支付开发及问题 的相关文章

  • 第10课 微信小程序数据存储(同步缓存、异步缓存,本地读取缓存):

    第10课 微信小程序数据存储 同 异步缓存 本地读取缓存 同步缓存 wx setStorageSync key value 异步缓存 wx setStorage Object object 同步删除缓存 wx removeStorageSy
  • 第6课 微信小程序模板的引入与使用:

    第6课 微信小程序模板的引入与使用 在template1 wxml中自定义一个wxml模板
  • 微信小程序实现随机抽签功能

    扫一扫以上小程序 许愿灯池 可以查看具体随机抽签功能 效果图 具体思路 为了让每个用户抽的签都不一样 并且能够进行记录 又为了防止我们的云开发数据库占用过多 因此我们决定使用微信缓存技术 为了实现每日抽签 我们还对时间进行了缓存 用if语句
  • 第17课 微信小程序通过node获取用户openid:

    第17课 微信小程序通过node获取用户openid 调用 wx login 获取 临时登录凭证code 并回传到开发者服务器 调用 auth code2Session 接口 换取用户唯一标识 OpenID 和 会话密钥 session k
  • 微信小程序开发——日历实现

    1 new Date toLocaleDateString 获取当前的时间 年月日 2 new Date getFullYear 获取年 new Date getMonth 1 获取月份 new Date getDate 获取日期 3 th
  • 第11课 微信小程序多种弹窗提示样式

    第11课 微信小程序弹窗提示样式 消息提示 wx showToast Object object 关闭消息提示 wx hideToast Object object 弹窗选框提示 wx showModal Object object 加载提
  • 四、小程序必备API

    4 1请求服务器数据API 4 1 1小程序 服务器架构 小程序和服务器通信的架构也可以称为C S架构 请求过程 1 小程序先向服务器发起网络请求 2 服务器收到请求后执行相关代码处理请求 3 处理完毕后服务器向小程序回复并返回数据 4 小
  • 优美的小程序启动页(附源码)

    优美的小程序启动页 附源码 1 看效果 2 注意点 实现这一效果其实是很简单的 首先我们要把自己设置的启动页的路径写在app jon中 注意小程序默认第一个路径是小程序加载的开始页 其次我们的页面有时会出现这种情况 这是应为在x json文
  • webpack打包微信小程序

    webpack打包微信小程序目的 编写小程序代码时也可以引入 npm 上的插件 通过 webpack 打包后可以大大减小小程序代码的体积 项目目录 项目目录 plugin loadpath js src 把小程序的代码放到 src 文件夹内
  • 微信小程序获取当前位置 地图定位导航-详细代码

    小程序获取当前位置 回到当前位置 地图定位 导航 效果 因为小程序更新了获取地理位置API接口 需要先在app json中配置一下permission字段 不然会报微信小程序getLocation 需要在app json中声明permiss
  • 微信小程序--优购商城项目(5)

    文章目录 前言 六 商品列表 1 创建 goodslist 分支 2 定义请求参数对象 3 获取商品列表数据 4 渲染商品列表结构 5 把商品 item 项封装为自定义组件 6 使用过滤器处理价格 7 上拉加载更多 1 初步实现上拉加载更多
  • 微信小程序支付开发及问题

    一 前期准备 微信后台申请微信支付 微信支付 商务号关联 个人信息 填写 操作密码 api密钥设置 得到appid AppSecret 商户号 api密钥等 微信支付接口签名校验工具 二大概流程 1 登录 获取code 一个code只能用一
  • 微信小程序-- 三、视图与逻辑

    文章目录 三 视图与逻辑 1 声明式导航 1 跳转到 tabBar 页面 2 跳转到非 tabBar 页面 3 后退导航 2 编程式导航 1 跳转到 tabBar 页面 2 跳转到 非tabBar 页面 2 后退导航 3 导航传参 1 声明
  • 小程序开发总结日记(一)——云开发数据库查询、加载、更新(不使用云函数)

    项目背景 个人开发者出于节约成本的目的 可能会选择小程序的云开发功能 从而节省服务器购买的费用 也省去了服务器搭建 配置 维护等开发成本 使用小程序云开发功能最基础的版本是19 9 月 数据库调用配额是20万次 月 云函数配额是2GB 月
  • 微信小程序——操作数组

    1 数组 排序 过滤 求和 去重 乱序 let array sort 数组正序 array 5 4 3 2 1 console log array sort reverse 数组倒序 array 1 2 3 4 5 console log
  • 微信小程序16进制颜色码

    颜色码http www w3school com cn cssref css colornames asp
  • 微信小程序隐私保护指引设置

    今天修改了发布规则 发布前必须填写用户隐私保护指引设置 就是以下内容
  • uniApp和微信小程序好看的我的页面(有源码)

    uniApp和微信小程序好看的我的页面 有源码 1 先睹为快 未登录状态 以登录 uniapp源码
  • 第19课 微信小程序安装使用mpvue脚手架

    第19课 微信小程序安装使用mpvue脚手架 详情地址 http mpvue com mpvue quickstart 安装前检查环境 安装脚手架之前需要电脑已安装node与npm 首先按住 shift 鼠标右键 按下 在此处打开命令行窗口
  • 【微信小程序】wx.request出现undefined

    偶现 天啦噜 一直困惑了很久的bug终于找到原因了 示例代码如下 wx request sucess function res if res statusCode 200 res data status 200 do something e

随机推荐

  • FTP服务器版本信息可被获取(CVE-1999-0614)漏洞修复

    FTP服务器版本信息可被获取 CVE 1999 0614 漏洞修复 风险等级 低 漏洞描述 NSFOCUS建议您采取以下措施以降低威胁 修改源代码或者配置文件改变缺省banner信息 漏洞CVE编号 CVE 1999 0614 服务器为Ub
  • Linux命令行使用技巧

    1 什么是Linux Linux操作系统 GUN Linux GUN是开源组织 Linux是指Linux内核 内核 系统核心程序 相当于人的大脑 负责系统程序和硬件分配 2 如何进入Linux的超级用户 1 选择not listed 进入超
  • 单链表拆分

    设 C a1 b1 a2 b2 an bn 为线性表 采用带头结点的单链表存放 设计一个就地算法 将其拆分为两个线性表 使得A a1 a2 an B bn b2 b1 B表采用头插法建立 LinkList Solve LinkList A
  • android ReactNative之Cannot find entry file index.android.js in any of the roots

    由于公司要求 想让我去了解一下ReactNative开发 说是为了以后开发的以后方便移植到IOS上 晕 没办法 照着React Native的中文开发文档配置环境https reactnative cn docs 0 51 getting
  • LeetCode【58】最后一个单词的长度

    题目 给定一个仅包含大小写字母和空格 的字符串 返回其最后一个单词的长度 如果不存在最后一个单词 请返回 0 说明 一个单词是指由字母组成 但不包含任何空格的字符串 示例 输入 Hello World 输出 5 1 public int l
  • mac如何利用 applescript 批量将word转换成pdf

    没有更多的废话 直接上代码 代码的注释应该很清楚了 property word docs org openxmlformats wordprocessingml document com microsoft word doc propert
  • 倍投计算器工具_年化1.84%?计算中证500、沪深300的定投,我发现止盈太重要了...

    新年伊始 对于定投止盈大家一定要注意噢 比如我们主流的宽基指数 中证500指数 小编用一些指数定投计算器 去摁了下 从中证500指数2007年推出到2020年1月8号 定投664期 年化收益1 84 大家是不是被吓坏了啊 小编也是吃了一惊
  • 【信息系统项目管理师】十大管理——1、整合管理

    十大管理 1 整合管理 项目背景 项目概况 2021年6月 我有幸作为项目经理主持了 某省广电网络工程资源管理系统 项目的建设工作 该项目中标金额为888万元 建设工期为5年 该项目是该省广电网络公司的重点项目 该项目整合并条理化广电运营商
  • 画波形图的工具

    在数字电路设计中 常常会看波形图 通过波形图来表达时序关系 波形图也是设计者直接的标准语言 比如 A模块的开发者会用波形图来表示接口的输入信号或者输出信号的时序关系 B模块 对应A模块的驱动或者接收者会根据接口时序做相应的数据传输控制 那么
  • 目标检测算法研究

    1 目标检测基本介绍 1 1 项目结构 1 2 目标检测的算法分类 1 2 1两步走的目标检测 先进行区域推荐 而后进行目标分类 代表算法 R CNN SPP net Fast R CNN Faster R CNN 1 2 2 端到端的目标
  • Python入门--数组、list

    在Python中 列表 list 是一种用于存储一组有序元素的数据类型 列表中的元素可以是数字 字符串 变量或其他任何Python对象 列表是可变的 也就是说 可以添加 删除和修改列表中的元素 下面是一些列表的基本操作示例 1 创建一个空列
  • mov edi,edi - hook api

    mov edi edi hook api 系统 windows xp 查看系统函数的反汇编代码时会发现开头有个 mov edi edi 2字节 再往前则是5个nop指令 当然这不会引人注意 可是 mov edi edi 有什么用了 上网搜索
  • 故事篇:数据库架构演变之路

    故事的开头总是这样 适逢其会 猝不及防 今天我哼着 也是黄昏的沙滩上 有着脚印两对半 在海边散步 迎面走来了一位身穿黄金甲的男子 来海边还穿这么花哨 真是个傻X 定睛一看 这不是嘉文吗 背景介绍 嘉文四世 德玛西亚皇子 是有名的高富帅 与盖
  • openwifi ap sta路由配置教程

    一 先启动AP wgd sh sysctl w net ipv4 conf all forwarding 1 sysctl w net ipv4 conf default forwarding 1 sysctl w net ipv6 con
  • RANSAC(Random Sample Consensus)对点云进行多个平面的分割并可视化(附python代码)

    使用 RANSAC Random Sample Consensus 算法对点云进行多个平面的分割 并进行可视化 下面是对代码的逐行解释 pcd o3d io read point cloud xxx pcd 从文件中读取点云数据 并将其存储
  • L1-029. 是不是太胖了

    据说一个人的标准体重应该是其身高 单位 厘米 减去100 再乘以0 9所得到的公斤数 已知市斤是公斤的两倍 现给定某人身高 请你计算其标准体重应该是多少 顺便也悄悄给自己算一下吧 输入格式 输入第一行给出一个正整数H 100 lt H lt
  • STM32F1开发指南笔记46----字库原理及汉字库创建

    随着液晶显示技术的发展和应用 越来越多的开发人员希望在自己开发的仪器中使用液晶屏幕来显示汉字 通常的汉字显示方式是 先根据所需要的汉字提取汉字点阵 譬如16x16点阵 24x24点阵等 将点阵文件存入ROM中 形成新的汉字编码 然后在使用时
  • 蓝桥杯练习——Python砖墙

    题目 你的面前有一堵矩形的 由 n 行砖块组成的砖墙 这些砖块高度相同 也就是一个单位高 但是宽度不同 每一行砖块的宽度之和相等 你现在要画一条 自顶向下 的 穿过 最少 砖块的垂线 如果你画的线只是从砖块的边缘经过 就不算穿过这块砖 你不
  • API网关

    API网关 api gateway 即 api 网关 所有的请求首先会经过这个网关 这有点类似于前端控制器模式 也有点类似于 Facade模式 如下图所示 由于所有的请求会先经过这个 api 网关 所以 可以在 这里做 权限控制 安全 负载
  • 微信小程序支付开发及问题

    一 前期准备 微信后台申请微信支付 微信支付 商务号关联 个人信息 填写 操作密码 api密钥设置 得到appid AppSecret 商户号 api密钥等 微信支付接口签名校验工具 二大概流程 1 登录 获取code 一个code只能用一