个人收款源码方案个人收款SDK源码集成方案

个人收款即:用户支付费用直接到个人,并可完成支付成功回调,即支付流程自动化。

 主要的思路就是根据金额区分支付的订单号:

  1. 创建一个订单,将二维码 展示给用户

  2. 用户扫描后,商家手机上安装了支付宝,那么会受到 付款推送通知

  3. 实现一个安卓App,能读取通知,并将通知解析通知给 系统。

  4. 根据系统匹配到具体的订单号,修改订单状态既可以实现实时收款。

那么这里有2个问题,作为一个小白,如何玩转服务器和app, 一般开发者只会开发后台或者app。通过上面分析用到技术有: html+js , java(后台服务器),sql(后台数据库), java(安卓);

如果上面技术都会开发了几乎是全栈,一般工程师只会一部分。比如我只会安卓和html,不会后台咋办,看似乎无法完成。这里我就分享出一个结合自己的技术水平实现一个 个人收款方案源码。该方案是 静态网页+app挂机实现。

静态网页负责展示收款码 ,支付成功给客户反馈。

APP挂机负责获取通知,修改订单成功状态。

云数据是试用第三方数据库,免费额度完全够用,可登录上去查看数据内容。

免费的云数据库

这里走了捷径: 试用云数据库,那么我开发过程只需要是云数据库的sdk即可,这样省我开发服务器的成本,同时也省了租用服务器搭建动态语言服务器的成本。

贴出主要的代码过程:

app:

获取支付宝通知,如何获取安卓系统的通知,技术比较成熟网上代码也比较多,不是本文介绍重点。

这里只贴出如何解析出支付宝收款的通知 金额。(可匹配商家收款和个人转账通知)

protected  String extractMoney(String content){
                Pattern pattern = Pattern.compile("(收款|收款¥|向你付款|向您付款|入账)(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?元");
                Matcher matcher = pattern.matcher(content);
                if(matcher.find()){
                        String tmp=matcher.group();
                        Pattern patternnum = Pattern.compile("(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?");
                        Matcher matchernum = patternnum.matcher(tmp);
                        if(matchernum.find())
                                return matchernum.group();
                        return null;
                }else
                        return null;


        }
 

静态网页的实现:

这里也只是核心流程代码:创建订单,更新收款二维码,收款成功回调。

 var key =getUrlParameter('key');
	var conferid =getUrlParameter('content');

	if(key==null || key=="" || key=='undefined'){	
		if(localStorage.mpdeviceid){
		    key = localStorage.mpdeviceid;
		}
	}else{
		conferid = decodeURI(conferid);
		document.getElementById('user-info').innerHTML = '设备信息:'+key;
		localStorage.mpdeviceid  = key;
	}
		
    
	document.getElementById('user-info').innerHTML += "  <br>选择金额: <a href=\"javascript:changeMoney(0.10); \">体验支付</a>/ <a href=\"javascript:changeMoney(199.10);\">199元 购买源码</a>"; localStorage.mptimecount = offsetTime; timeOutCount(); checkStateTimedCount(callbackPayed); creatOrder(key,oderMoney,conferid); function callbackPayed(money){ document.getElementById('timeshow').innerHTML=" <font color=\"99ffff\">支付成功 </font><br><font size=\"3\" color=\"99ffff\">订单:"+localStorage.mporderid+"</font>"; document.getElementById("page-url").src = ""; document.getElementById('moneyshow').innerHTML = "<font color=\"99ffff\">¥"+money+"</font> " document.getElementById('user-info').innerHTML = " <br><a href=\"javascript:recreateOrderID(); \">重新体验</a>"; getRewarded(function callback(rewarded){ if(rewarded){ document.getElementById('user-info').innerHTML = "下载地址:"+rewarded; } }); } 
 其中 callbackPayed就是表示支付成功回调。系统会2秒检测后台订单状态。如果成功则会回调。在这里可以实现支付成功的逻辑。

完整代码:autoxpay代码下载地址和演示:pan.baidu.com/s/1FiRuia2HQo7qBgTfQkgZGQ 提取码:5k1n

猜你喜欢

转载自www.cnblogs.com/hifun/p/12454199.html