支付宝小程序向用户发红包的实现方法
作者:方木一 发布时间: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
猜你喜欢
- 案例以论坛为例,有个接口返回帖子(posts)信息,然后呢,来了新需求,说需要显示帖子的 author 信息。此时会有两种选择:在 post
- 需要安装pyechartspip install pyecharts -U 创建【demo6.py】并输入以下编码:from py
- 前言网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其
- 背景当我慢慢的开在高速公路上,宽敞的马路非常的拥挤!这时候我喜欢让百度导航的小度给我讲笑话,但她有点弱,每次只能讲一个。百度号称要发力人工智
- 1. 引言最近在将一个算法由matlab转成python,初学python,很多地方还不熟悉,总体感觉就是上手容易,实际上很优雅地用pyth
- 是扫盲文章, 其实我自己就是个被扫对象, 为了学习W3C标准地设计网页, 想到写这个系列的文章当作自己的学习笔记, 不求每篇都写很好, 只求
- 在Internet上我们每天都会遇到数不清的表单,也看到其中大部分并没有限制用户多次提交同一个表单。缺乏这种限制有时候会产生某些预料不到的结
- 1、安装执行命令pip install virtualenv为了使用virtualenv更方便,可以借助 virtualenvwrapper
- 目录一、前言二、什么是super三、super的常用使用场景总结一、前言最近有粉丝向我咨询super相关的问题,说网上搜索到的教程不够通俗易
- 表单验证做网站程序多多少少都会碰到,其中emai地址的合法性验证也算是一个典型的例子,网页表单的验证我们一般是先在客户端使用javascri
- 1 多线程实现多任务1.1 什么是线程? 进程是操作系统分配程序执行资源的单位,而线程
- 一、概述现有一个wenda1.xlsx文件,内容如下:需要将faq记录合并为一行,效果如下:注意:faq记录,每一行用||来拼接。二、多行转
- 一、测试平台:解决分散用例执行方式,提供统一测试用例执行过程、用例管理、测试报告主要是基于: fastapi+vu
- 要求:分别以james,julie,mikey,sarah四个学生的名字建立文本文件,分别存储各自的成绩,时间格式都精确为分秒,时间越短成绩
- hanxiaolian 为了躲避 lake2 ASP站长管理助手而写.. 一.绕过lake2 Asp木马扫描的小马 代码如下:<%&n
- 本文实例讲述了Python多线程原理与用法。分享给大家供大家参考,具体如下:先来看个栗子:下面来看一下I/O秘籍型的线程,举个栗子——爬虫,
- 本文假设某些特定类型的文件和大小为0的文件为垃圾文件,可以自由扩展代码的列表,也就是垃圾文件的类型。from os.path import
- 具体代码如下所述:#coding=utf-8import itchatfrom itchat.content import TEXTfrom
- 今天运行程序时,在Oracle中输入SQL语句:select * from USERS as u ,程序报错输入select * from
- 本文实例讲述了Python 使用元类type创建类对象。分享给大家供大家参考,具体如下:type("123") 可以查看