ccszfdasr 2021-03-20 05:28 采纳率: 90.9%
浏览 106
已采纳

谁能看懂JS这个代码帮我实现下API POST

$(document).ready(function () {
    $('#rootwizard').bootstrapWizard({'tabClass': 'bwizard-steps clearfix',
        onTabShow: function(tab, navigation, index) {
            var $current = index+1;
            var $total = navigation.find('li').length;
            var $percent = ($current/$total) * 100;
            $('#rootwizard .progress-bar').css({width:$percent+'%'});
        },
        onTabClick: function(tab, navigation, index) {

        },
    });
    $('#rootwizard').bootstrapWizard('disable', 2);


    $('.buy_card_btn').click(function() {
        $('#rootwizard').find("a[href*='tab2']").trigger('click');
        window.open(key_url, "_blank", "height=600,width=800,scrollbars=yes,resizable=1,modal=false,alwaysRaised=yes");
    });

    $(".recharge-btn").click(function () {
        var _this = this
        $(".card_msg").hide()
        var cardno = $.trim($("input[name='cardno']").val())
        if (cardno === ''){
            $(".card_msg").show()
            return false;
        }
        $(_this).find("span").text("充值中...")
        $(_this).prop("disabled", true);
        $('#rootwizard').bootstrapWizard('enable', 2);
        $.get("/user_get_recharge_key?token=" + token, function (result) {
            var dataObj = result
            console.log(dataObj)
            var code = dataObj.code;
            if (code === 0) {
                var ticks = dataObj.data;
                console.log(ticks + token + cardno)
                var signature = $.md5(ticks + token + cardno);
                $.get("/user_recharge_wallet?token=" + token + "&cardno=" + cardno +
                    "&key=" + ticks + "&signature=" + signature, function (result) {
                    var dataObj = result
                    console.log(dataObj)
                    var code = dataObj.code;
                    if (code === 0) {
                        $('#rootwizard').find("a[href*='tab3']").trigger('click');
                        $("input[name='cardno']").val('')
                        refresh();
                        user_left_amount();
                        $('#rootwizard').bootstrapWizard('disable', 2);
                    } else {
                        $(".card_msg").show()
                    }
                })
            }
            $(_this).find("span").text("充值")
            $(_this).prop("disabled", false);
        });
    })


     function refresh() {
        $.get("/user_get_recharge_detail?token=" + token + "&page_index=1", function (result) {
            var dataObj = result;
            console.log(dataObj)
            if (dataObj.code === 403) {
                window.location = "/login.html";
                return false;
            } else if (dataObj.code !== 0) {
                alert(dataObj.msg)
                return false;
            }
            var data = dataObj.data.rows;
            var fragment = document.createDocumentFragment();
            data.forEach(function(el){
                var tr = document.createElement("tr");
                tr.innerHTML = "<td>"+ el.amount/100 +"</td><td>"+ el.createTime +"</td>";
                fragment.appendChild(tr);
            })
            $("#recharge-list").find("tbody").html(fragment)
        })
    }

    function user_left_amount(){
        $.get("/user_get_user_info?token=" + token, function (result) {
            var dataObj = result;
            var data = dataObj.data
            let left_amount = data.month_amount-data.month_cost_amount-data.mobile_cost-data.res_static_cost

            $(".left_amount").text(left_amount/100)
        })
    }


})
 

 

 

 

谁能看懂,我有token,卡密,想通过API   post  GET等方式进行充值

该怎么写PHP代码来写

  • 写回答

4条回答 默认 最新

  • Go 旅城通票 2021-03-20 15:25
    关注

    第一步要先调用/user_get_recharge_key?token=。。。获取ticks

    第二步才是调用user_recharge_wallet接口,并且调用接口还少了个signature参数,最好能发对方网站出来,里面有个js方法$.md5,不知道是否和php的md5加密一致,如果是的用md5计算签名后附加上才行

     

    你的key不知道从哪里来的,这个key是调用第一个接口后返回的,不知道是否会变,最好是通过接口重新获取key,代码大概如下,就差$.md5加密后的值是否和php的md5一致,一致应该就没什么问题了

     

    如果你确认key没有问题可以去掉第一步接口调用

    <?php error_reporting(0);
    $token=$_GET['token'];
    $cardno=$_GET['cardno'];
    
    
    $ticks=file_get_contents("http://adm.fxtcvip.com/user_get_recharge_key?token=$token");//先获取ticks
    $o=json_decode($ticks);
    if($o->code!==0)die("ticks获取出错<br>".$ticks);
    
    $ticks=$o->data;
    $signature =$ticks . $token . $cardno;
    
    $signature =md5($signature);//计算签名
    
    
    $contents =file_get_contents("http://adm.fxtcvip.com/user_recharge_wallet?token=$token&cardno=$cardno&key=$ticks&signature=$signature");
     
    echo $contents;
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程