微信转账凭证看不到对方微信号怎么解决,速来懂得字数不够,有没有懂得的,知道的评论区见
15条回答 默认 最新
- 专家-皆知 2024-05-30 11:08关注
参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
在微信小程序中处理微信支付转账时,用户通常关心如何获取到对方的微信号作为转账凭证的一部分。但需要注意的是,出于隐私保护的原因,微信官方接口并不直接提供转账双方的微信号信息。不过,可以通过其他方式间接实现类似需求,确保交易的可追溯性。
1. 通过订单号关联
在进行转账前,你可以在自己的服务器上为每一笔转账生成一个唯一的订单号,并将此订单号与发起转账的用户信息(如用户ID、昵称等,但不包括微信号)关联起来。转账时,将这个订单号作为
transaction_id
或自定义的转账描述字段传递给微信支付API。2. 转账回调
微信支付在转账完成后,会通过你设置的回调地址通知你的服务器。在回调通知中,会包含
transaction_id
等转账信息。你的服务器可以根据这个transaction_id
查询之前保存的订单信息,从而间接知道是哪位用户发起的转账。示例代码:创建转账订单
在后端服务中,你可能需要实现一个创建转账订单并调用微信支付API的功能。这里是一个基于Node.js使用
axios
库调用微信支付API的示例代码框架:const axios = require('axios'); // 微信支付API配置 const wxPayConfig = { appid: 'your_appid', mch_id: 'your_mch_id', api_key: 'your_api_key', // 注意:实际使用中应从安全地方读取,不要硬编码 }; // 创建转账订单请求体示例 function createTransferOrder(openid, amount, description, spbill_create_ip) { const nonce_str = generateNonceStr(); // 生成随机字符串 const timestamp = Math.floor(Date.now() / 1000); // 当前时间戳 const sign = generateSign({ appid: wxPayConfig.appid, mch_id: wxPayConfig.mch_id, nonce_str, partner_trade_no: generateUniqueOrderNo(), // 生成唯一订单号 openid, check_name: 'NO_CHECK', // 根据需求调整 amount, desc: description, spbill_create_ip, timestamp, }, wxPayConfig.api_key); // 签名生成函数 return axios.post('https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers', { appid: wxPayConfig.appid, mch_id: wxPayConfig.mch_id, nonce_str, partner_trade_no: generateUniqueOrderNo(), openid, check_name: 'NO_CHECK', amount, desc: description, spbill_create_ip, time_start: formatTimestamp(timestamp), time_expire: formatTimestamp(timestamp + 3600), // 设置有效期 sign_type: 'MD5', sign, }, { headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', }, }); } // 辅助函数省略... // 调用示例 createTransferOrder('receiver_openid', 1, '转账描述', '127.0.0.1') .then(response => { console.log('转账请求成功,等待回调:', response.data); }) .catch(error => { console.error('转账请求失败:', error.response.data); });
注意事项
- 请确保替换示例代码中的
your_appid
、your_mch_id
、your_api_key
等占位符为实际的微信支付商户平台配置。 - 实现
generateNonceStr
、generateUniqueOrderNo
、generateSign
和formatTimestamp
这些辅助函数来生成随机字符串、唯一订单号、签名以及格式化时间戳。 - 转账功能需要在微信商户平台开通,并且需要用户的授权才能获取到其openid进行转账。
通过上述方式,虽然不能直接展示对方的微信号,但可以确保每笔转账都有记录可查,满足业务追溯的需求。
解决 无用评论 打赏 举报 - 请确保替换示例代码中的
悬赏问题
- ¥15 网络科学导论,网络控制
- ¥100 安卓tv程序连接SQLSERVER2008问题
- ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd