支付宝小程序向用户发红包的实现方法
作者:方木一 发布时间:2022-12-19 22:58:58
1. 介绍
目的:公司的支付宝小程序向指定用户发送红包。
场景:积分兑换、邀请注册。
2.开通权限
2.1开通服务
说明:进入支付宝商家中心 → 营销工具 → 营销活动送红包
备注:秘钥选择PKCS8。
入口:https://b.alipay.com/signing/productSetV2.htm
2.2查看应用
说明:申请通过后,进入app管理界面可找到通过后的应用。
入口:https://openhome.alipay.com/platform/appManage.htm
2.3设置秘钥
说明:点击应用列表的[查看详情]。进入应用信息,设置加密方式。
备注:在这里我们将使用签名算法类型为'RSA2' 和 'PKCS8' 。(根据自身的SDK进行设置)。
文档:https://opendocs.alipay.com/open/200/105310
3.开发操作
创建并配置好应用后,就可以进行开发了,支付宝红包发送到用户手上只需要两步:
①创建现金(红包)活动:比如创建100个1元红包的活动。
②发送红包给用户:根据活动id、用户openId,将红包发送给用户。
3.1创建现金活动
说明:要想把红包发给用户,首先得创建一个现金(红包活动)。
文档:https://opendocs.alipay.com/apis/api_5/alipay.marketing.campaign.cash.create
示例:在这里创建了每个2元金额的红包活动,共20元、10个包。
/**
* 创建现金红包
* @param {AlipayCashHBEntity} en 实体对象
* @see https://docs.open.alipay.com/api_5/alipay.marketing.campaign.cash.create
*/
async createCashHB(en) {
let alipaySdk = this._getAlipaySdk();
try {
const rs = await alipaySdk.exec('alipay.marketing.campaign.cash.create', {
bizContent: {
couponName: en.couponName,
prizeType: en.prizeType,
totalMoney: en.totalMoney,
totalNum: en.totalNum,
prizeMsg: en.couponName,
startTime: en.startTime,
endTime: en.endTime,
merchantLink: en.merchantLink,
sendFreqency: `L${en.sendFreqency}`
}
});
if (rs.code != '10000') {
throw new Error(rs.subMsg);
} else {
return rs;
}
} catch (err) {
throw err;
}
}
3.2发送红包给用户
说明:创建完红包活动后,就可以把红包发送给用户。
文档:https://opendocs.alipay.com/apis/api_5/alipay.marketing.campaign.cash.trigger
注意:发送的红包金额会转入用户的【余额】里。
/**
* 发送现金红包
* @param {String} crowdNo 红包编号
* @param {String} alipayUserOpenId 支付宝用户openId
* @param {String} productExchangeId 兑换记录Id
* @see https://docs.open.alipay.com/api_5/alipay.marketing.campaign.cash.trigger
*/
async sendCashHB(crowdNo, alipayUserOpenId, productExchangeId) {
let alipaySdk = this._getAlipaySdk();
try {
const rs = await alipaySdk.exec('alipay.marketing.campaign.cash.trigger', {
bizContent: {
user_id: alipayUserOpenId,
crowd_no: crowdNo,
out_biz_no: productExchangeId
}
});
if (rs.code != '10000') {
throw new Error(rs.subMsg);
} else {
return rs;
}
} catch (err) {
throw err;
}
}
来源:https://www.cnblogs.com/polk6/archive/2020/11/19/11757799.html


猜你喜欢
- 定时任务是老生常谈了,因为我们总是需要定时修改特定的数据。实现它的方法肯定不止一种,但我在相当长一段时间里都是用程序编码去做的,今天突然想到
- 如果你的网站涉及个人隐私或者机密性非公开的网页,怎样告诉禁止搜索引擎收录抓取,下面侯庆龙说下以下方法,希望对不想被搜索引擎收录抓取网站有所帮
- 本文主要是利用scapy包编写了一个简易扫描工具,支持ARP、ICMP、TCP、UDP发现扫描,支持TCP SYN、UDP端口扫描,如下:u
- 本文实例讲述了python中readline判断文件读取结束的方法。分享给大家供大家参考。具体分析如下:大家知道,python中按行读取文件
- 一、线程队列queue队列:使用方法同进程的Queue一样如果必须在多个线程之间安全地交换信息时,队列在线程编程中尤其有用。重要:q.put
- if•Go里面if条件判断语句中不需要括号,条件判断语句里面允许声明一个变量,任何在这里声明的变量都可以在所有的条件分支中使用。if x :
- 本文实例总结了Python正则表达式常用函数。分享给大家供大家参考,具体如下:re.match()函数原型:match(pattern, s
- 写爬虫有一个绕不过去的问题就是验证码,现在验证码分类大概有4种:图像类滑动类点击类语音类今天先来看看图像类,这类验证码大多是数字、字母的组合
- 这些天,我需要全文搜索。这个区块中最酷的孩子们是Elastic Search和Sorl:他们快速,灵活,资源消耗沉重并且需要Java,这几乎
- 线性代数线性代数,矩阵计算,优化与内存;比如矩阵乘法,分解,行列式等数学知识,是所有数组类库的重要组成部分。和MATLAB等其他语言相比,n
- fixtures调用其他fixtures及fixture复用性 pytest最大的优点之一就是它非常灵活。它可以将复杂的测试需求简
- 这篇文章主要介绍了python yield和Generator函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 我们已经在数学上描述了多层感知机,现在让我们尝试自己实现一个多层感知机。为了与我们之前使用softmax回归获得的结果进行比较,我们将继续使
- 众所周知,python是写爬虫的利器,今天作者用python写一个小爬虫爬下一个段子网站的众多段子。目标段子网站为“http://ishuo
- MySQL内建复制功能来优化可用性,在Soundbreak我们每天24小时不间断地播放实况音频和视频,所以对于MySQL的新增的复制特性,我
- MySql版本问题sql_mode=only_full_group_by查看sql_modeselect @@sql_mode查询出来的值为
- 字符串在 Python 中创建字符串对象非常容易。只要将所需的文本放入一对引号中,就完成了一个新字符串的创建(参见清单 1)。如果稍加思考的
- 创建python虚拟环境virtualenv、virtualenvwrapper1,为什么需要搭建虚拟环境由于当机器上两个项目依赖于相同包的
- 如下所示:torch.mm(mat1, mat2, out=None) → Tensortorch.matmul(mat1, mat2, o
- 前言:Matplotlib 通常与 NumPy、Pandas 一起使用,是数据分析中不可或缺的重要工具之一。Matplotlib 是 Pyt