码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • uniapp小程序uniCloud云开发云函数对接微信支付实现方案


    准备工作

    申请微信商户号:
    微信支付 - 中国领先的第三方支付平台 | 微信支付提供安全快捷的支付方式 (qq.com)

    提交营业执照,公司对公账户。

    申请通过后可以拿到两个东西:商户号 mchid 和 密钥 partnerKey (这里用的是APIv2)

    写云函数

    在项目云函数目录下右键 新建云函数起名wxpay 

    新建成功后 在wxpay的根目录下安装插件tenpay

    npm install tenpay --save

    安装成功之后上传部署并运行 或者采用本地调试

    1. const tenpay = require('tenpay');
    2. const config = {
    3. appid: '小程序appid',
    4. mchid: '微信支付商户号',
    5. partnerKey: '商户号密钥 后台自己生成',
    6. notify_url: 'http://xxx.xxx.cn', // 随便填不影响
    7. spbill_create_ip: '127.0.0.1' // 这里填这个就可以
    8. };
    9. exports.main = async(event, context) => {
    10. const {
    11. orderid,
    12. money,
    13. title
    14. } = event;
    15. const api = tenpay.init(config);
    16. const res = await api.getPayParams({
    17. out_trade_no: orderid, //订单id
    18. total_fee: money, // 订单金额(分)
    19. body: title,
    20. openid: 'openid' // 付款用户的openid
    21. });
    22. return res;
    23. }

    拉起支付

    1. <button @click="createOrder()">创建订单</button>
    2. createOrder(){
    3. uniCloud.callFunction({
    4. name: 'wxpay',
    5. data: {
    6. title: '一辆自行车',
    7. orderid: "123456",
    8. money: 100
    9. }
    10. }).then(res=>{
    11. console.log('订单结果',res)
    12. wx.requestPayment({
    13. timeStamp: res.result.timeStamp,
    14. nonceStr: res.result.nonceStr,
    15. package: res.result.package, //统一下单接口返回的 prepay_id 格式如:prepay_id=***
    16. signType: 'MD5',
    17. paySign: res.result.paySign, //签名
    18. success(res) {
    19. console.log("支付成功", res)
    20. },
    21. fail(res) {
    22. console.log("支付失败", res)
    23. },
    24. complete(res) {
    25. console.log("支付完成", res)
    26. }
    27. })
    28. })
    29. },

    到这里基本上就结束了。我们再来梳理下流程:先注册微信商户号,绑定公司账户;再写云函数,对接商户号;然后前端调用云函数,在用户端拉起支付;用户支付成功后,金额就会直接到商户号那里,商户号每日自动提现到公司账户。

    获取openid

    https://api.weixin.qq.com/sns/jscode2session?appid=小程序appid&secret=小程序密钥&js_code=小程序用户code&grant_type=authorization_code

    其他参考文档

    使用云开发环境的云函数实现微信小程序的支付功能_腾讯云函数实现小程序支付-CSDN博客

    小程序云开发也能优雅实现微信支付 | 微信开放社区 (qq.com)

    小程序云开发实现微信支付完整代码_node-tenpay-CSDN博客

    uniapp+unicloud:unipay(v3支付)_2个小程序 uni-pay-CSDN博客

    uniapp + uniCloud+unipay 实现微信小程序支付功能_uni-pay-CSDN博客

  • 相关阅读:
    【unocss】apply聚合语法,unocss配置
    GAN的理论知识及公式的理解
    NXP iMX6ULL核心板框架图|软硬件|功能功耗|原理图的规格书资料
    Android源码设计模式探索与实战【代理模式】
    c++/VS XP系统 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll解决方案
    基于Springboot+vue的羽毛球购物销售商城 elementui
    python之Scipy
    vue3的getCurrentInstance获取组件实例踩坑记录
    Java中的IO流详解(二)
    【无标题】未完成
  • 原文地址:https://blog.csdn.net/zd1007129657/article/details/139715985
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号