Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >几行代码解决云开发微信支付

几行代码解决云开发微信支付

作者头像
许坏
发布于 2019-09-09 09:58:26
发布于 2019-09-09 09:58:26
2.9K00
代码可运行
举报
文章被收录于专栏:宅机吧宅机吧
运行总次数:0
代码可运行

新版二手书小程序的进程每天都在更新了,中午抽时间赶到了支付阶段,第一次使用云开发进行小程序支付,体验了下,真的方便。

首先,创建云函数pay,其内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const config = {
      appid: 'wx111111111111111', //小程序Appid
      envName: 'zf-shcud', // 小程序云开发环境ID
      mchid: '1511111111', //商户号
      partnerKey: '11111111111111111111111111111111', //此处填商户密钥
      notify_url: 'https://mp.weixin.qq.com', //支付回调网址,这里可以随意填一个网址
      spbill_create_ip: '127.0.0.1'
};

const cloud = require('wx-server-sdk');
cloud.init({
env: config.envName
})
const db = cloud.database();
const TcbRouter = require('tcb-router'); //云函数路由
const rq = require('request');
const tenpay = require('tenpay');//支付核心模块

exports.main = async (event, context) => {
const app = new TcbRouter({
            event
      });
//支付回调
      app.router('pay', async (ctx) => {
const wxContext = cloud.getWXContext();
// 在云函数参数中,提取商品 ID
const goodId = event.goodId;
// 根据商品的数据库_id将其它数据提取出来
let goods = await db.collection('publish').doc(goodId).get();
// 在云函数中提取数据,包括名称、价格才更合理安全,
// 因为从端里传过来的商品数据都是不可靠的
let good=goods.data;
const curTime = Date.now();
const api = tenpay.init(config)
let result = await api.getPayParams({
//商户订单号,我这里是定义的book+商品发布时间+当前时间戳
//微信这里限制订单号一次性不能重复,只需要唯一即可
                  out_trade_no: 'book'+good.creat + '' + curTime,     
body: good.bookinfo.title,       //商品名称,我设置的书名
                  total_fee: parseInt(good.price),     //金额,注意是数字,不是字符串
                 openid: wxContext.OPENID //***用户的openid
            });
            ctx.body = result;//返回前端结果
      });
      //修改订单状态,以下是支付成功后的其余操作,与配置支付无关
      app.router('change', async (ctx) => {
try {
return await db.collection('publish').doc(event._id).update({
data: {
                              status:1 ////0在售;1买家已付款,但卖家未发货;2买家确认收获,交易完成;3、交易作废,退还买家钱款
                        }
                  })
            } catch (e) {
console.error(e)
            }
      });
return app.serve();
}

注意安装依赖;

前端代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//支付提交
      paypost() {
let that = this;
            wx.showLoading({
title: '正在下单',
            });
// 利用云开发接口,调用云函数发起订单
            wx.cloud.callFunction({
name: 'pay',
data: {
$url: "pay", //云函数路由参数
                        goodId: that.data.publishinfo._id
                  },
success: res => {
                        wx.hideLoading();
                        that.pay(res.result)
                  },
                  fail(e) {
                        wx.hideLoading();
                        wx.showToast({
title: '支付失败,请及时反馈或稍后再试',
icon:'none'
                        })
                  }
            });
      },
//实现小程序支付
      pay(payData) {
let that = this;
//官方标准的支付方法
            wx.requestPayment({
timeStamp: payData.timeStamp,
nonceStr: payData.nonceStr,
                  package: payData.package, 
signType: 'MD5',
                  paySign: payData.paySign,
                  success(res) {
console.log("支付成功", res)
                  },
            })
      }

这就是完整的云开发支付了,完整的dome,请敬请期待二手书小程序的上线,到时我会上传到我的Github,地址:

https://github.com/xuhuai66

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅机吧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信小程序知识云开发
小程序界面设计、交互、功能与他人的手机应用软件或在先发布的小程序构成实质性相似,构成小程序抄袭
达达前端
2019/08/18
5.9K0
2024年11月最新版微信小程序支付功能,使用小程序云开发10行代码实现小程序支付功能(含源码和步骤)
我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。
编程小石头
2024/11/14
2400
10行代码实现微信小程序支付功能,使用小程序云开发实现小程序支付功能(含源码)
我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。
编程小石头
2019/08/13
2.5K1
10行代码实现微信小程序支付功能,使用小程序云开发实现小程序支付功能(含源码)
10行代码实现小程序支付功能!丨实战
我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。
腾讯云开发TCB
2019/08/15
11.7K3
几行代码实现小程序云开发提现功能
纯云开发实现,下面说使用步骤: 一:开通商户的企业付款到领取功能 说明地址:
许坏
2019/09/24
2.8K0
几行代码实现小程序云开发提现功能
干货:如何借助小程序云开发实现小程序支付功能(含源码)
本节就来教大家如何使用小程序云开发实现小程序支付功能的开发,不用搭建自己的服务器,不用有自己的备案域名,只需要简简单单的使用小程序云开发。
腾讯云开发TCB
2019/07/05
11.7K10
节省80%代码量?对接微信支付,云开发推出两大新能力
微信支付作为国内最大的支付服务之一,多年以来一直是各类APP、小程序、Web应用必须对接的公共服务之一。当然,对接微信支付也并非那么简单,除了官方文档、代码示例、SDK以外,依然会有一些较为复杂、繁重的开发工作量,例如:
腾讯云开发TCB
2023/09/13
5420
节省80%代码量?对接微信支付,云开发推出两大新能力
微信小程序--云开发支付闭环
云开发支付流程闭环 extends 微信小程序--使用云开发完成支付闭环 在上述文章中,我们对支付结果的处理更多依赖于小程序端的操作 订单号存储在小程序端 支付结果采用小程序端定时触发器轮询
Kindear
2021/06/10
4.4K0
微信小程序--云开发支付闭环
实战丨如何制作一个完整的外卖微信小程序开发项目(已开源)
一开始项目并非基于云开发而开发的,目前考虑用云开发,因此,需要在项目中开启云开发的相关选项。
腾讯云开发TCB
2020/07/29
4.4K0
实战丨如何制作一个完整的外卖微信小程序开发项目(已开源)
小程序-云开发-实现微信云支付功能
对于支付下单在小程序当中是一个非常重要的功能,在未接入云支付之前,想要实现一个支付下单的功能,借助微信官方提供的wx.requestPayment()这个接口,发起微信支付
itclanCoder
2020/10/28
11K1
小程序-云开发-实现微信云支付功能
微信小程序--使用云开发完成支付闭环
根据回调函数携带的订单号,修改对应订单号的waiting状态为success,并且返回对应格式的返回信息
Kindear
2021/02/04
1.2K0
【小程序云开发】云函数路由的高效配置
在小程序开发工具中,启动云开发默认模板,提供的云函数办法是一个请求对应一个云函数,比如说,我要获取用户登录数据,就添加一个login函数,然后前端就请求这个login获取,如果现在我要通过云函数删除我的使用用户,是不是就得重新再建一个函数如delete,然后这个delete就用于处理前端提交的用户删除任务,如果到时候任务多了,不就需要创建很多个云函数了吗?麻烦,所以我们想办法一个函数处理多个任务,这就需要使用云函数路由了。
许坏
2019/07/14
1.7K0
纯云开发获取用户微信绑定的手机号码
今天开始在写带支付版的二手书了,涉及到用户注册信息需要获取手机号,这里有两个办法,第一是购买短信接口,第二是直接小程序开放数据获取手机号。
许坏
2019/09/05
3.6K2
纯云开发获取用户微信绑定的手机号码
从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程
使用微信支付的前提必开通微信商户号,要使用到那种的支付方式要前需在商户平台开通(要审核)。
九旬
2020/12/01
7.7K1
从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程
微信小程序实现扫码登录网站
最近使用腾讯云时,用的都是微信扫码登入,发现会跳转到腾讯云助手小程序进行确认登入。感觉挺好用的,就想做一个扫码登入。
王秀龙
2021/09/09
7.5K3
几行代码获取微信绑定的手机号 小程序云开发
之前也有过说过相关教程,但不够简单,现在采取官方云调用免鉴权,着实方便,非常简单。
许坏
2020/03/26
3K1
微信小程序与云开发
Java、NodeJS、JavaScript、HTML5、CSS3、VueJs、ReactJs、前端工程化、前端架构
达达前端
2019/08/05
9.5K0
微信小程序与云开发
金融项目-微信支付-思路
公众号接入支付: https://pay.weixin.qq.com/static/applyment_guide/applyment_detail_public.shtml
张哥编程
2024/12/07
2560
微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)「建议收藏」
微信支付功能,个人公众号是没有办法进行开发支付功能的,需要是使用非个人公众号进行注册(如:营业执照等,可以去淘宝购买一个也行 大概500左右)
全栈程序员站长
2022/08/02
3.8K2
微信小程序如何实现支付功能?看官方文档头疼(使用云函数的方式操作)「建议收藏」
微信小程序支付
微信小程序支付 首先申请微信支付商户号并关联微信小程序 1583065647497-60a54eb3-d5f4-4931-b6d0-f71ef5d40254.png 1583065739033-2bebe181-6525-4811-829a-6aa552009f02.png 准备订单参数 // Order.js 架构 const mongoose = require('mongoose'); const Order = new mongoose.Schema({ openid: {
4O4
2022/04/25
1.3K0
微信小程序支付
推荐阅读
相关推荐
微信小程序知识云开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验