我的收款源碼方案我的收款SDK源碼集成方案

我的收款即:用戶支付費用直接到我的,並可完成支付成功回調,即支付流程自動化。javascript

 主要的思路就是根據金額區分支付的訂單號:html

  1. 建立一個訂單,將二維碼 展現給用戶

  2. 用戶掃描後,商家手機上安裝了支付寶,那麼會受到 付款推送通知

  3. 實現一個安卓App,能讀取通知,並將通知解析通知給 系統。

  4. 根據系統匹配到具體的訂單號,修改訂單狀態既能夠實現實時收款。

那麼這裏有2個問題,做爲一個小白,如何玩轉服務器和app, 通常開發者只會開發後臺或者app。經過上面分析用到技術有: html+js , java(後臺服務器),sql(後臺數據庫), java(安卓);java

若是上面技術都會開發了幾乎是全棧,通常工程師只會一部分。好比我只會安卓和html,不會後臺咋辦,看彷佛沒法完成。這裏我就分享出一個結合本身的技術水平實現一個 我的收款方案源碼。該方案是 靜態網頁+app掛機實現。sql

靜態網頁負責展現收款碼 ,支付成功給客戶反饋。數據庫

APP掛機負責獲取通知,修改訂單成功狀態。服務器

雲數據是試用第三方數據庫,免費額度徹底夠用,可登陸上去查看數據內容。app

免費的雲數據庫ui

 

 

這裏走了捷徑: 試用雲數據庫,那麼我開發過程只須要是雲數據庫的sdk便可,這樣省我開發服務器的成本,同時也省了租用服務器搭建動態語言服務器的成本。url

貼出主要的代碼過程:spa

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

相關文章
相關標籤/搜索