• js网页拉起支付宝支付


    js网页唤起支付宝进行支付

    在做uni-app项目中,打包成 ios App的时候,为了绕过苹果支付的审核,所以用的 webview 加载支付宝的网页支付,进行付款

    具体实现流程:

    前端通过 url 将商品单价,商品数量,商品总额等后端所需要的参数传到我们写的 html支付 页面中,

    支付页面拿到参数后再像后端发起订单的请求,后端将订单返回回来,我们通过后端返回回来的订单数据,拉起支付宝发起支付!

    整个过程其实不难,代码也很简单,详情请看代码......

     1 <!DOCTYPE html>
     2 <html lang="zh">
     3     <head>
     4         <meta charset="UTF-8">
     5         <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6         <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7         <title></title>
     8     </head>
     9     <body>
    10         <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    11         <script type="text/javascript">
    12             function getRequest() {  
    13               var url = location.search; //获取url中"?"符后的字串  
    14               var theRequest = new Object();  
    15               if (url.indexOf("?") != -1) {  
    16                 var str = url.substr(1);  
    17                 strs = str.split("&");  
    18                 for(var i = 0; i < strs.length; i ++) {
    19                   theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);  
    20                 }  
    21               }
    22               return theRequest;  
    23             }
    24             let parameter = getRequest()
    25             $.ajax({
    26                 url: 'http://server.zhongqu.net.cn/api/user/payment/v1',
    27                 type: "post",
    28                 headers: {
    29                     'Content-Type': 'application/json;charset=utf8',
    30                     'x-access-token': parameter.token
    31                 },
    32                 dataType: "json",
    33                 data: JSON.stringify({
    34                     'goodId': parameter.goodId,
    35                     'fee': parameter.fee,
    36                     'amount': parameter.amount,
    37                     'totalFee': parameter.totalFee
    38                 }),
    39                 success: function(data) {
    40                     let temp = document.createElement("form");
    41                     temp.action = 'https://openapi.alipay.com/gateway.do?charset=utf-8'
    42                     temp.method = "post";
    43                     temp.style.display = "none";
    44                     let params = data.data;
    45                     let strs = params.split('&');
    46                     for (let v of strs) {
    47                         let arr = v.split('=');
    48                         var opt = document.createElement("input");
    49                         opt.name = arr[0];
    50                         opt.value = decodeURIComponent(arr[1]);
    51                         temp.appendChild(opt);
    52                     }
    53                     document.body.appendChild(temp);
    54                     temp.submit();
    55                 }
    56             });
    57         </script>
    58     </body>
    59 </html>
  • 相关阅读:
    jquery学习笔记
    javascript中的面向对象—— 学习1
    Sql Sever语句 (续2)
    Sql sever 常用语句(续)
    SqlSever 查询基本
    Microsoft SqlSever 数据库--软谋1
    如何编写高质量的Javascript代码
    要当好JavaScript程序员:5个debug技巧
    深入理解js构造函数
    命名空间$.fn
  • 原文地址:https://www.cnblogs.com/jun-qi/p/12313495.html
Copyright © 2020-2023  润新知