评论

如何用云开发实现给用户发零钱

如何用云开发实现给用户发零钱

云开发小程序如何实现给用户发零钱的功能

~

01、相关背景


近期答题活动上线了抽奖发红包的功能,小程序本身是用云开发技术方案完成的,包括答题+抽奖,实际调研了下用云开发发放零钱的方案,发现这块文章有很多,但是都没有说明白是怎么发的,有没有发放成功

也就是没有找到成功发放的案例

那么没办法,只能求其他方案

~

02、技术方案

本文的方案是这样的

答题+抽奖用云开发完成

零钱发放是通过PHP来发放的,

云开发抽到固定红包金额的红包后,调用php的零钱发放脚本,这里就涉及一个问题

抽奖和发红包是相互独立解耦的,那么在如何在这个过程中做到安全,以防止被用户薅羊毛,就是本文思考的问题

目前准备了几个方案

方案1

该方案比较简单,

发放红包的脚本如下所示

xx/xx/index.php?openid=xx&amount=100&checkcode=xx

其中openid为用户id

amount为红包金额,单位为分,checkcode为签名字符串

在php一层,对checkcode进行校验,如果校验通过就可以执行给openid发放amount红包的逻辑


现在checkcode逻辑还是比较简单的,可以基本做到安全,但是真遇到做这块的技术,是防不住的

方案2

方案2是结合其他开源项目学习来的,通过增加一个前面的逻辑

前面逻辑如下

入参按字amount=100&openid=xxx,对该字符串进行AES (mode=ecb)加密,加密的秘钥不对外公开,加密生产前面执行web base64化,这样可以通过get传参放到url里面进行传递

当请求来到php后,对签名进行解密,解析出当前的openid、amount,跟实际传输的openid、amount对应上,执行打钱的逻辑

03、方案相关


1)

base64URL

https://juejin.cn/post/7042520107976753165

2)

aes对称加密

3)生成签名规则

如何用云开发实现给用户发零钱

最后一次编辑于  2022-07-20  
点赞 1
收藏
评论

1 个评论

  • 程俊陶
    程俊陶
    发表于小程序端
    2022-07-20

    密钥不公开是不是小程序里有一份,有就能破

    2022-07-20
    赞同 1
    回复
登录 后发表内容