免签第三方支付解决方案

我要开发同款
?才抽一半2022年11月28日
707阅读
作品源文件
gz格式 72.44 KB
¥5000.00

作品详情

该应用旨在解决资质不够的商家进行银行卡自动充值结算业务通过识别银行卡到账信息推送内容完成系统账号充值及付款操作。每笔付款业务需要为付款金额增加小数点进行判断,懂的再买app需申请短信权限,使用时需要一台手机设备实时运行参数设置 短信通道号码: 来自银行卡推送消息的号码 服务器API: 需要推送的目标服务器api接口 关键词:来自银行卡推送消息内容的关键字,支持多个关键词(某些银行发送短信的格式会有所变化,英文半角逗号隔开) 签名密钥signature:与服务器同步设置,防止他人通过该接口恶意提交信息数据推送接口需要根据签名sign(sign内容通过header获取)字段进行数据验证,签名规则:sign =md5(JSON.stringify(data)+ signature)开始监听时会进行服务器检查,使用{ type: 'ping'}向服务器发起请求,服务器应返回状态码 { code: 200 }信息正式上报内容格式{ type: 'report', msg: 'sms content', timestamp: 'sms receive time'}签名验证规则 sign = md5(data.msg+ data.timestamp + data.type + signature)短信内容上报信息在data包中额外加入了sign字段,完整上报信息为{ type: 'report', msg: 'sms content', timestamp: 'sms receive time', sign: sign}服务器接口业务处理方案,当用户进行充值或者支付时,需要向数据库创建一笔付款订单,并且订单金额需要进行小数点追加,比如实际付款应付 100.00, 那么可以设置为100.01, 每笔订单小数点不重复,根据测试,小数点从1-99足够,也就是100.01-100.99,此处操作可以存储到缓存对象中,每次添加订单从缓存当中获取小数点对象并+1,例子如下$decimal = Cache::get('decimal');if(!$decimal) { // 如果未设置缓存,那么初始化一个缓存 Cache::set("decimal", 1); $decimal = 1;}else{ // 如果已设置缓存,那么缓存自增 if($decimal < 99) { $decimal += 1; Cache::set("decimal", $decimal); }else{ // 如果小数点已遍历99遍以上,则重置 Cache::set('decimal", 1); $decimal = 1; }}根据短信推送时间和金额找到支付订单然后完成接下来的操作$str = "您尾号xxxx卡x月x日 00:12xx银行收入(他行汇入) 120.43元,余额xx元,对方户名:xxx,对方账户尾号:xxxx。【xx银行】";此处$str 变量中定义了一条入账短信,我们对短信内容进行提取,主要为提取入款金额和时间,我们可以的到时间为x月x日 00:12 金额为 120.43 把时间格式化为时间戳结合金额去数据库匹配订单,然后完成接下来的付款流程即可,多条短信格式,进行遍历排除法处理
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论