payment_iap.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  6. <meta name="HandheldFriendly" content="true"/>
  7. <meta name="MobileOptimized" content="320"/>
  8. <title>In-App Purchase</title>
  9. <script type="text/javascript" src="../js/common.js"></script>
  10. <script type="text/javascript">
  11. var iap=null;
  12. var ids=['donation','donation6'];//应用内购项目
  13. function plusReady(){
  14. // 获取支付通道
  15. plus.payment.getChannels(function(channels){
  16. for(var i in channels){
  17. var channel=channels[i];
  18. if(channel.id==='appleiap'){
  19. iap=channel;
  20. }
  21. }
  22. requestOrder();
  23. },function(e){
  24. console.log("获取支付通道失败:"+e.message);
  25. });
  26. }
  27. document.addEventListener('plusready',plusReady,false);
  28. // 获取订单
  29. function requestOrder(){
  30. plus.nativeUI.showWaiting('检测支付环境...');
  31. iap.requestOrder(ids,function(e){
  32. plus.nativeUI.closeWaiting();
  33. console.log('requestOrder success: '+JSON.stringify(e));
  34. },function(e){
  35. console.log('requestOrder failed: '+JSON.stringify(e));
  36. plus.nativeUI.closeWaiting();
  37. plus.nativeUI.confirm("错误信息:"+JSON.stringify(e),function(e){
  38. if(e.index==0){
  39. requestOrder();
  40. }else{
  41. back();
  42. }
  43. },'重新请求支付',['确定','取消']);
  44. });
  45. }
  46. // 支付
  47. function pay(id){
  48. plus.nativeUI.showWaiting('',{style:"black",background:"rgba(0,0,0,0)"});
  49. plus.payment.request(iap, {productid:id}, function(result){
  50. plus.nativeUI.closeWaiting();
  51. //alert('成功:'+JSON.stringify(result));
  52. plus.nativeUI.alert("支付成功:感谢你的支持,我们会继续努力完善产品。",function(){
  53. back();
  54. },"捐赠");
  55. },function(e){
  56. plus.nativeUI.closeWaiting();
  57. plus.nativeUI.alert("错误信息:"+e.message,null,"支付失败:"+e.code);
  58. });
  59. }
  60. // 获取已购买商品(非消耗性商品和订阅商品)
  61. function restoreComplateRequest(){
  62. plus.nativeUI.showWaiting('',{style:"black",background:"rgba(0,0,0,0)"});
  63. iap.restoreComplateRequest({},function(results){
  64. plus.nativeUI.closeWaiting();
  65. alert(results.length);
  66. for(var i in results){
  67. alert('restoreComplateRequest['+i+']: '+JSON.stringify(results[i]));
  68. }
  69. });
  70. }
  71. </script>
  72. <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8"/>
  73. </head>
  74. <body>
  75. <br/><br/>
  76. <p class="des" style="font-size:16px;line-height:30px;margin: 0px .5em;">
  77. DCloud 是W3C会员、中国HTML5产业联盟发起单位,致力于推进HTML5发展,构建HTML5生态。
  78. </p>
  79. <br/>
  80. <strong>
  81. 支持HTML5开发工具HBuilder
  82. </strong>
  83. <div class="button" onclick="pay(ids[0])">
  84. 捐赠1元
  85. </div>
  86. <div class="button" onclick="pay(ids[1])">
  87. 捐赠6元
  88. </div>
  89. <!--<div class="button" onclick="restoreComplateRequest()">
  90. restoreComplateRequest
  91. </div>-->
  92. </body>
  93. </html>