Skip to content

zh Home

顾玮华 edited this page Mar 18, 2020 · 5 revisions

这种方法的准确率怎么样?或者怎么提高准确率?

  • 1.尽量同时支持微信支付与支付宝支付 我们可以设用户选择的付款方式为事件A,那么当你同时支持两种方式时,一次付款的p(A)=1/2
  • 2.对价格给一个后两位的随机减免 我们同样设付款的价格为事件B,那么出现这个价格的概率为p(B)=1/10*1/10=1/100
  • 3.考虑时间因素 我们假定用户购买的时间也是随机的,如果我们只考虑小时和分钟数,那么这个时间的概率大概是p(C)=1/13*1/60=1/780
  • 4.因为支付方式的选择与随机减免的金额与购买的时间,我们可以认为独立 那么这种方式出错的概率大概就是p(ABC)=p(A)p(B)p(C)=(1/2)(1/100)(1/780)=1/156000 即如果能做到上面的两点,一次付款出错的概率大概在15万分之一,这个出错的概率,如果购买量小的化,是可以接受的。

安装注意事项

  • 安装完毕后,不要急于打开,比较稳妥的是将其加入到白名单,或者从自动黑名单去除,在权限管理软件中,允许自启。(本软件不会占用太多内存资源,请放心)

  • 第一次打开会跳转到通知权限页面,请赋予本软件通知监听权限。

使用方法

级别 使用方法
最简使用 只设置推送的url地址就行(请带上https://,或者http://,如http://mydomin.com/receipt)
使用加密 需要在设置中勾选加密,然后选择加密方法(现在只支持des),设置秘钥
使用echo 使用echo 是为了让服务器确认该device手机是否现在在线
使用辅助功能 通过辅助功能,获取更详细信息(如转账码金额等)

推送字段说明

sign字段 如果加密里选md5,就是md5(md5(type+price) + secretkey),否则就是md5(md5(price + type))

加密详细说明

  • 现在只支持des加密。
  • des的秘钥必须是8位
  • 设置完加密方法和秘钥后,可以点解设置的解密说明来看解密的参数(默认的是解密初始化向量与秘钥一致)

echo服务器说明

  • 使用需勾选设置并设置echo 服务器地址
  • echo服务器的地址和推送的地址有关联吗? 可以有也可以没有,这个客户端会利用socket.io来向server发送一个事件名为echo的事件,同时附带设备的deviceid和现在的时间。这要这个server 是socket.io server
  • 该怎样写echo服务器,来知道设备现在在不在线?可以参考getreceipt-server项目的nodejs分支下的app.js。例如:
var express = require('express');
var app = express();
var server = require('http').Server(app);
const io=require('socket.io')(server);

global.deviceisonline=false;
io.on('connection',(socket)=>{
    socket.on('echo',(devicestr)=>{
        device=JSON.parse(devicestr);
        global.deviceid=device['deviceid'];
        global.deviceisonline=true;
        global.deviceconnectedtime=device['connectedtime'];
        console.log("new device_echo from "+device['deviceid']+" with time "+device['connectedtime']+" and socketid is: "+socket.id);
    });
    socket.on('disconnect',()=>{
        global.deviceisonline=false;
        global.devicedisconnectedtime=new Date();
        console.log("device disconnect");
    });
});
  • 我不用node作为服务器语言怎么办?例如我用php。你可以使用phpsocket.io项目

不同收款平台的注意事项

平台 注意
云闪付 1.如果云闪付接不到通知栏通知,请申请使用商家的收款码
云闪付 2.云闪付支持小米推送,且小米推送的通知支持首页的那个收款码而不必须用商家的收款码
云闪付 3.如果不是小米系统,又想直接使用首页里的那个普通收款码(这样可以设定收款数字),可以尝试小米系统级推送这个软件来支持小米推送(但是很可能需要root权限来把自己手机伪装成小米手机)