zoukankan      html  css  js  c++  java
  • Ionic 微信支付

    1.安装插件

      ionic plugin add https://github.com/mrwutong/cordova-qdc-wxpay.git

    2.代码

    controller.js

     1 angular.module('starter.controllers', []).controller('MyCtrl', function($scope,PayService) {
     2   $scope.wxpaytest= function () {
     3     //参数说明:格式为JSON格式
     4     //cb_success:调用成功回调方法
     5     //cb_failure:调用失败回调方法
     6     try {
     7       PayService.getJson().then(function(data){
     8         if(data){
     9           if(data.status=="SUCCESS"){
    10             var json = {
    11               appid: data.appid,
    12               noncestr: data.noncestr,
    13               package: data.package,
    14               partnerid: data.partnerid,
    15               prepayid: data.prepayid,
    16               timestamp: data.timestamp,
    17               sign: data.sign
    18             }
    19             wxpay.payment(json, function(msg){
    20               var json  =JSON.parse(msg);
    21               if(json.code==0){
    22                alert("支付成功返回页面");
    23               }
    24             }, function(error){
    25               var json  =JSON.parse(error);
    26               if(json.code ==-2){
    27                  alert("用户不支付了,点击取消,返回APP");
    28               }
    29             })
    30           }
    31           else{
    32             alert("失败了");
    33           }
    34         }
    35       });
    36     }catch(ex){
    37       alert(ex);
    38     }
    39   }
    40 
    41 
    42 });

     services.js

     1 angular.module("starter.services",[])
     2   .factory("PayService",function($q,$http){
     3   return {
     4     getJson: function()
     5     {
     6       var r = $q.defer();
     7 
     8       $http.get("http://服务发布IP地址/ailpay.ashx?method=Unified").success(function (data) {
     9         r.resolve(data);
    10       }).error(function (er) {
    11         r.resolve(!1);
    12       });
    13       return r.promise;
    14     }
    15   }
    16 });

    index.html

     1 <!DOCTYPE html>
     2 <html>
     3   <head>
     4     <meta charset="utf-8">
     5     <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
     6     <title></title>
     7 
     8     <link href="lib/ionic/css/ionic.css" rel="stylesheet">
     9     <link href="css/style.css" rel="stylesheet">
    10 
    11     <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
    12     <link href="css/ionic.app.css" rel="stylesheet">
    13     -->
    14 
    15     <!-- ionic/angularjs js -->
    16     <script src="lib/ionic/js/ionic.bundle.js"></script>
    17 
    18     <!-- cordova script (this will be a 404 during development) -->
    19     <script src="cordova.js"></script>
    20 
    21     <!-- your app's js -->
    22     <script src="js/app.js"></script>
    23     <script src="js/controllers.js"></script>
    24     <script src="js/services.js"></script>
    25   </head>
    26   <body ng-app="starter">
    27 
    28     <ion-pane>
    29       <ion-header-bar class="bar-stable">
    30         <h1 class="title">支付测试</h1>
    31       </ion-header-bar>
    32       <ion-content>
    33       <div ng-controller="MyCtrl">
    34 
    35            <button class="button button-block button-positive"  ng-click="alipaytest()">支付宝支付</button>
    36 
    37            <button class="button button-block button-positive" ng-click="wxpaytest()">微信支付</button>
    38 
    39         </div>
    40       </ion-content>
    41     </ion-pane>
    42   </body>
    43 </html>

    服务端代码:

     1  public void GetUnifiedOrder(HttpContext context)
     2         {
     5             string callback = context.Request["callback"] == null ? "JSON_CALLBACK" : context.Request["callback"].ToString();
     6             string body = context.Request["body"] == null ? "body" : context.Request["body"].ToString();
     7             string attach = context.Request["attach"] == null ? "测试系统-支付平台" : context.Request["attach"].ToString();
     8             string totalFee = context.Request["totalFee"] == null ? "1" : context.Request["totalFee"].ToString();
     9             string goods_tag = context.Request["goodstag"] == null ? "" : context.Request["goodstag"].ToString();
    10             string productId = context.Request["productId"] == null ? "" : context.Request["productId"].ToString();
    11             WxPayData data = new WxPayData();
    12             data.SetValue("body", body);//商品描述
    13             data.SetValue("attach", attach);//附加数据
    14             data.SetValue("out_trade_no", WxPayApi.GenerateOutTradeNo());
    15             data.SetValue("total_fee", totalFee);//总金额
    16             data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));//交易起始时间
    17             data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"));//交易结束时间
    19             data.SetValue("trade_type", "APP");//交易类型
    26 
    27             WxPayData result = WxPayApi.UnifiedOrderApp(data);//调用统一下单接口
    28             string json = "NO";
    29             if (result.GetValue("return_code").ToString() == "SUCCESS")
    30             {
    31                 string prepay_id = result.GetValue("prepay_id").ToString();//获得统一下单接口返回prepay_id
    32 
    33                 string noce_str = Guid.NewGuid().ToString().Replace("-", "");
    34                 var timestamp = WxPayApi.GenerateTimeStamp();
    35                 WxPayData dataReq = new WxPayData();
    36 
    37                 dataReq.SetValue("appid", "APP申请的Key");//
    38                 dataReq.SetValue("partnerid", "APP申请的商户号");//商户号    
    39                 dataReq.SetValue("noncestr", noce_str);//随机字符串
    40                 dataReq.SetValue("package", "Sign=WXPay");
    41                 dataReq.SetValue("prepayid", prepay_id);
    42                 dataReq.SetValue("timestamp", timestamp);
    50                 var sign = dataReq.MakeSignApp();
    62                 context.Response.Write("{"status":"SUCCESS","appid":"" + "APP申请的Key" + "","partnerid":""
    63                     + "APP申请的商户号" + "","noncestr":"" + noce_str + "","package":"" + "Sign=WXPay"
    64                     + "","prepayid":"" + prepay_id + "","timestamp":"" + timestamp + "","sign":"" + sign + ""}");
    65             }
    66             else {
    67                 WxLog.Info("Faile", result.GetValue("return_msg").ToString());
    68                 context.Response.Write(callback + "({"status":"Faile"})");
    69             }
    73         }

     效果图:

  • 相关阅读:
    luogu P1451 求细胞数量
    P1443 马的遍历
    luogu P1194 买礼物
    codevs 4919 线段树练习4
    printf的实型
    printf的整型
    scanf
    printf
    c++常用函数
    字符类型C++(ascll码表)
  • 原文地址:https://www.cnblogs.com/linsu/p/5747982.html
Copyright © 2011-2022 走看看