一个小程序最多5个服务类目,一个月可以修改3次类目

小程序侵权投诉的发起与应对

软件著作权作品登记证书

实现小程序支付功能

如何借助官方支付api简单、高效率地实现小程序支付功能

借助小程序云开发实现

只需要一个简单的云函数

实现微信小程序支付功能

exports.main = async(event, context) => {
const wxContent = cloud.getWXContext()
let {
orderid,
money
} = event;
// 初始化支付
const api = tenpay.init(config);
let result = await api.getPayParams({
out_trade_no: orderid,
body: '商品简单描述',
total_fee: money, // 订单金额
openid: wxContext.OPENID // 付款用户的openid
});
return result;
}

小程序界面设计、交互、功能与他人的手机应用软件或在先发布的小程序构成实质性相似,构成小程序抄袭

微信小程序代码抄袭,侵犯他人软件著作权

<image mode="widthFix" src="../../img/next-course.png"></image>
image {
width: 100%;
}
<view class="card">
<image src="" mode="widthFix"></image>
</view> .card image { }
.card {
margin: 10rpx;
}
.bg {
width: 100%;
}

什么是UniApp

Union Application

前端框架

基于Vue.js

开发规范同小程序

<style>
@import url("index.css");
</style>

widthFix

宽度不变,高度自动变化,保存原图宽高比不变

一个云开发小程序

// app.js

App({
onLaunch: function() {
wx.cloud.init({
env: "prod-ayrkn"
})
}
})

创建云函数pay

引入三方依赖tenpay

在命令行里执行 npm i tenpay

[外链图片转存失败(img-Ag8oCRF9-1565915745539)(https://upload-images.jianshu.io/upload_images/11158618-4cd8f7865c386211.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败(img-oVV41MNS-1565915745543)(https://upload-images.jianshu.io/upload_images/11158618-ac663878f28c218b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败(img-d6mAyp0R-1565915745544)(https://upload-images.jianshu.io/upload_images/11158618-b1a8579796ebb099.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

//云开发实现支付
const cloud = require('wx-server-sdk')
cloud.init() //1,引入支付的三方依赖
const tenpay = require('tenpay');
//2,配置支付信息
const config = {
appid: '你的小程序appid',
mchid: '你的微信商户号',
partnerKey: '微信支付安全密钥',
notify_url: '支付回调网址,这里可以先随意填一个网址',
spbill_create_ip: '127.0.0.1' //这里填这个就可以
}; exports.main = async(event, context) => {
const wxContext = cloud.getWXContext()
let {
orderid,
money
} = event;
//3,初始化支付
const api = tenpay.init(config); let result = await api.getPayParams({
out_trade_no: orderid,
body: '商品简单描述',
total_fee: money, //订单金额(分),
openid: wxContext.OPENID //付款用户的openid
});
return result;
}

[外链图片转存失败(img-2ZPAhgPT-1565915745547)(https://upload-images.jianshu.io/upload_images/11158618-30dac116851543dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

提交页面,调用pay云函数

<form bindsubmit="formSubmit" bindreset="formReset">
<input name="orderid" placeholder="随便写一个订单号"/>
<input name="money" placeholder="随便写一个订购单总价"/>
<button form-type="submit" type="primary">提交订单</button>
</form>

订单号要大于6位

wx.requestPayment(Object object)

发起微信支付

[外链图片转存失败(img-tlXXELCg-1565915745554)(https://upload-images.jianshu.io/upload_images/11158618-fb56af8490ecee9e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

调用wx.requestPayment实现支付

wx.requestPayment({
timeStamp: '',
nonceStr: '',
package: '',
signType: 'MD5',
paySign: '',
success(res){},
fail(res){}
})

pay.js

// pages/pay/pay.js
Page({
//提交订单
formSubmit: function(e) {
let that = this;
let formData = e.detail.value
console.log('form发生了submit事件,携带数据为:', formData)
wx.cloud.callFunction({
name: "pay",
data: {
orderid: "" + formData.orderid,
money: formData.money
},
success(res) {
console.log("提交成功", res.result)
that.pay(res.result)
},
fail(res) {
console.log("提交失败", res)
}
})
},
//实现小程序支付
pay(payData) {
//官方标准的支付方法
wx.requestPayment({
timeStamp: payData.timeStamp,
nonceStr: payData.nonceStr,
package: payData.package, //统一下单接口返回的 prepay_id 格式如:prepay_id=***
signType: 'MD5',
paySign: payData.paySign, //签名
success(res) {
console.log("支付成功", res)
},
fail(res) {
console.log("支付失败", res)
},
complete(res) {
console.log("支付完成", res)
}
})
}
})

[外链图片转存失败(img-gE4DbneD-1565915745555)(https://upload-images.jianshu.io/upload_images/11158618-df345792390c4d22.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败(img-TytLDHMo-1565915745557)(https://upload-images.jianshu.io/upload_images/11158618-55501c01b2975818.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败(img-GRThAPsZ-1565915745562)(https://upload-images.jianshu.io/upload_images/11158618-a28a9b0bda6c5b7e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]


若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注达叔小生的简书!

这是一个有质量,有态度的博客

[外链图片转存失败(img-MuN0jPRW-1565915745564)(https://upload-images.jianshu.io/upload_images/11158618-9ab0d3fef85d80ce?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

微信小程序知识云开发的更多相关文章

  1. 微信小程序--使用云开发完成支付闭环

    微信小程序--使用云开发完成支付闭环 1.流程介绍 2. 代码实现和逻辑思想描述 云函数统一下单 对应云函数 unipay [CloudPay.unifiedOrder] 函数思路 : 调用云函数封装 ...

  2. Slog71_选取、上传和显示本地图片GET !(微信小程序之云开发-全栈时代3)

    ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 ArthurSlog Page GitHub NPM Package Page 掘金主页 ...

  3. 微信小程序之云开发一

    最近听说微信小程序发布了云开发,可以不需要购买服务器,就能开发小程序和发布小程序,对于动辄千元的服务器,极大的节约了开发成本,受不住诱惑,我就开始了小程序的云开发,目前项目已上线,亲测不收费,闲不住的 ...

  4. 微信小程序与云开发

    微信小程序基础概念 小程序云开发的三大基础能力:云数据库.云函数.云存储 Java.NodeJS.JavaScript.HTML5.CSS3.VueJs.ReactJs.前端工程化.前端架构 小程序开 ...

  5. 当微信小程序遇到云开发,再加上一个类似 ColorUI 的模板,人人都能做小程序了

    作为一个 Java 程序员,早就想尝试一把微信小程序,但是一直苦于没有想法,再加上做一个漂亮的页面实在不太擅长. 由于自己比较喜欢历史,经常看历史方面的书.在一次梳理中国现有的朝代时,突然想到,要是可 ...

  6. 微信小程序知识总结及案例集锦

    微信小程序知识总结及案例集锦 微信小程序的发展会和微信公众号一样,在某个时间点爆发 学习路径 微信小程序最好的教程肯定是官方的文档啦,点击这里直达 微信官方文档 认真跟着文档看一遍,相信有vue前端经 ...

  7. 微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击

    微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击 摘要: 小程序和公众号最大的区别有如下四点:1.小程序没有粉丝,开发者在后台能看到的只能是累计用户访问数以及实时统计 ...

  8. 微信小程序之蓝牙开发(详细读数据、写数据、附源码)

    本文将详细介绍微信小程序的蓝牙开发流程(附源码)准备:微信只支持低功耗蓝牙也就是蓝牙4.0,普通的蓝牙模块是用不了的,一定要注意. 蓝牙可以连TTL接到电脑上,再用XCOM调试 一开始定义的变量 va ...

  9. 基于微信小程序的系统开发准备工作

    腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够 ...

随机推荐

  1. netcore 实现跨应用的分布式session

    需求场景 网站a,域名为 a.site.com 网站b, 域名为 b.site.com 需要在a.b两个站点之间共享session 解决方案 使用redis作为分布式缓存存储 设置sessionId ...

  2. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...

  3. pandas-05 map和replace操作

    # pandas-05 map和replace操作 map可以做一个映射,对于操作大型的dataframe来说就非常方便了,而且也不容易出错.replace的作用是替换,这个很好理解. import ...

  4. Java 初始化块

    初始化块是和成员变量.成员函数一个级别的.一般用于类的初始化,也可执行其他java代码,作用和构造函数相同. 创建对象时,初始化块在构造函数之前执行. 初始化块分为普通初始化块.静态初始化块. 普通初 ...

  5. jar - 操作jar包的工具

    jar - Manipulates Java Archive (JAR) files. jar命令是一种通用的存档和压缩工具,基于ZIP和ZLIB压缩格式. 常用格式: * 创建jar文件 jar c ...

  6. suctf2019 部分web题目的复盘

    1.简单的SQL注入 一开始一直没思路,输入什么过滤什么,结束后看了大佬们的wp,感觉学到了,这里涉及到Mysql中的一个特殊模式的设置 set sql_mode=pipes_as_concat; 这 ...

  7. 一道面试题关于js中逗号

    一.今天遇到一个面试题,自我感觉是会,但是却做错了.人都是这样,自我感觉良好,其实也就预警自己已经忽视一些细节以及一些自我感知. 面试题: ,j=,k; ,j<;i++,j++){ k=i+j; ...

  8. Vue和微信小程序区别

    一.生命周期 先贴两张图: vue生命周期 小程序生命周期 相比之下,小程序的钩子函数要简单得多. vue的钩子函数在跳转新页面时,钩子函数都会触发,但是小程序的钩子函数,页面不同的跳转方式,触发的钩 ...

  9. Pycharm 切换Git 远程分支

    1.git 仓库新建远程分支以后,pycharm 本地没有办法查看到对应的分支,需要切换到本地代码的git所在的目录执行下"git remote update origin --prune” ...

  10. test20190901 NOI2019 模拟赛

    0+0+0=0.还是太菜,看不出题型. Masodik 你要从 (0,0) 点走到 (n,m),每次只能往 x 轴或者 y 轴正方向移动一个单位距离.从 (i,j) 移动到 (i,j+1) 的代价为 ...