| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | <!DOCTYPE HTML><html>	<head>		<meta charset="utf-8"/>		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>		<meta name="HandheldFriendly" content="true"/>		<!--<meta name="MobileOptimized" content="320"/>-->		<title>Hello H5+</title>		<script type="text/javascript" src="../js/common.js"></script>		<script type="text/javascript">var pays={};function plusReady(){	// 获取支付通道	plus.payment.getChannels(function(channels){		var content=document.getElementById('payment');		var info=document.getElementById('info');		var txt='支付通道信息:';		for(var i in channels){			var channel=channels[i];			if(channel.id=='qhpay'||channel.id=='qihoo'){	// 过滤掉不支持的支付通道:暂不支持360相关支付				continue;			}			pays[channel.id]=channel;			txt += 'id:'+channel.id+', ';			txt += 'description:'+channel.description+', ';			txt += 'serviceReady:'+channel.serviceReady+'; ';			var de=document.createElement('div');			de.setAttribute('class', 'button');			de.setAttribute('onclick', 'pay(this.id)');			de.id=channel.id;			de.innerText=channel.description+'支付';			content.appendChild(de);			checkServices(channel);		}		info.innerText=txt;	},function(e){		outLine('获取支付通道失败:'+e.message);	});}document.addEventListener('plusready', plusReady, false);// 检测是否安装支付服务function checkServices(pc){	if(!pc.serviceReady){		var txt=null;		switch(pc.id){			case 'alipay':			txt='检测到系统未安装“支付宝快捷支付服务”,无法完成支付操作,是否立即安装?';			break;			default:			txt='系统未安装“'+pc.description+'”服务,无法完成支付,是否立即安装?';			break;		}		plus.nativeUI.confirm(txt, function(e){			if(e.index==0){				pc.installService();			}		}, pc.description);	}}var w=null;var PAYSERVER='http://demo.dcloud.net.cn/payment/?payid=';// 支付function pay(id){	if(w){return;}//检查是否请求订单中	if(id==='appleiap'){		outSet('应用内支付');		clicked('payment_iap.html');		return;	}	outSet('----- 请求支付 -----');	var url=PAYSERVER;	if(id=='alipay'||id=='wxpay'){		url+=id;	}else{		plus.nativeUI.alert('当前环境不支持此支付通道!', null, '捐赠');		return;	}	var appid=plus.runtime.appid;	if(navigator.userAgent.indexOf('StreamApp')>=0){		appid='Stream';	}	url+='&appid='+appid+'&total=';		w=plus.nativeUI.showWaiting();	// 请求支付订单	var amount = document.getElementById('total').value;	var xhr=new plus.net.XMLHttpRequest();	xhr.onreadystatechange=function(){		switch(xhr.readyState){			case 4:			w.close();w=null;			if(xhr.status==200){				outLine('----- 请求订单成功 -----');				outLine(xhr.responseText);				var order=xhr.responseText;				plus.payment.request(pays[id],order,function(result){					outLine('----- 支付成功 -----');					outLine(JSON.stringify(result));					plus.nativeUI.alert('支付成功:感谢你的支持,我们会继续努力完善产品。',function(){						back();					},'捐赠');				},function(e){					outLine('----- 支付失败 -----');					outLine('['+e.code+']:'+e.message);					plus.nativeUI.alert('更多错误信息请参考支付(Payment)规范文档:http://www.html5plus.org/#specification#/specification/Payment.html', null, '支付失败:'+e.code);				});			}else{				outLine('----- 请求订单失败 -----');				outLine( xhr.status );				plus.nativeUI.alert('获取订单信息失败!', null, '捐赠');			}			break;			default:			break;		}	}	xhr.open('GET',url+amount);	outLine('请求支付订单:'+url+amount);	xhr.send();}		</script>		<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>		<style type="text/css">#total{	-webkit-user-select:text;	text-align:right;	padding:0 1em;	border: 0px;	border-bottom:1px solid #ECB100;	border-radius: 0;	font-size:16px;	width:30%;	outline:none;}		</style>	</head>	<body>		<br/>		<p id="info" style="padding: 0 1em;text-align:left;">支付通道信息:</p>		<div style="padding: 0.5em 1em;"><hr color="#EEE"/></div>		<p style="padding: 0 1em;text-align:left;">为DCloud提供的免费软件进行赞助吧。</p>		<br/>		<div style="padding: 0 1em;text-align:left">			捐赠金额:<input id="total" type="number" value="1"/> 元		</div>		<br/>		<div id="payment"></div>		<!--<div class="button" onclick="clicked('payment_iap.html')">Apple IAP</div>-->		<div id="outpos"/>		<div id="output">Payment模块管理支付功能,可通过js调用第三方支付服务。通过plus.payment可获取支付管理对象。		</div>	</body></html>
 |