zoukankan      html  css  js  c++  java
  • html中的js监听付款按钮--触发ajax调用php后台--得到的json数据---交给安卓原生处理

    //01
      var pay_status = new Object();
    $(".sure_pay").on("touchstart",function(){

    var order_id = $('#order_id').val();


    payLinkShape("showShape");
    var payType=1;//默认是微信支付,用来储存支付象征标识
    /*点击获取支付方式start*/
    $('.payBox input').on('ifChecked', function(event){
    if(event.type == "ifChecked"){
    clsName=$(this).attr("class");
    }
    })
    /*点击获取支付方式end*/
    switch (clsName)
    {
    case "weix":
    payType=1;
    break;
    case "zfb":
    payType=2;
    break;
    case "company":
    payType=0;
    break;
    }

    //console.log('clsName ==');
    //console.log(clsName);
    //console.log('order_id ='+order_id);
    $.ajax({
    url:"/order/pay_order_wx?order_id="+order_id,
    type:'GET',
    data:"{}",
    dataType:"json",
    success: function(jsonPayinfo){
    console.log('success ==');
    console.log(jsonPayinfo);
    if(jsonPayinfo.return_code == 'SUCCESS' && jsonPayinfo.result_code == 'SUCCESS')
    {
    jsonPayinfo=JSON.stringify(jsonPayinfo);
    //console.log(jsonPayinfo);
    payLinkShape();
    var u = navigator.userAgent;
    //TripMobile.tripPay(payType,jsonPayinfo);
    if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {
    //安卓手机
    TripMobile.tripPay(payType,jsonPayinfo);
    //console.log(payType);
    //console.log(jsonPayinfo);
    } else if (u.indexOf('iPhone') > -1) {
    //苹果手机
    //jakilllog(payType,jsonPayinfo);
    }
    }else{
    console.log('进来这里了');
    return false;
    }
    }, error: function (XMLHttpRequest, textStatus, errorThrown) {
    //console.log('error +++');
    //console.log(XMLHttpRequest);
    //console.log(textStatus);
    //console.log(errorThrown);


    }
    });

    })






    ////////////02调用微信支付
    public function pay_order_wx($order_id)
    {

    $orderModel = M("order");
    $get_data = I('get.');

    $where['order_id'] = $get_data['order_id'];
    $orderinfo = $orderModel->where($where)->find();

    require_once( APP_PATH."../thinkphp/ThinkPHP/Library/Vendor/WxPay/lib/WxPay.Api.php");
    require_once( APP_PATH."../thinkphp/ThinkPHP/Library/Vendor/WxPay/lib/WxPay.Config.php");
    require_once( APP_PATH."../thinkphp/ThinkPHP/Library/Vendor/WxPay/lib/WxPay.Data.php");
    require_once( APP_PATH."../thinkphp/ThinkPHP/Library/Vendor/WxPay/lib/WxPay.Exception.php");
    require_once( APP_PATH."../thinkphp/ThinkPHP/Library/Vendor/WxPay/JsApiPay.php");

    //$tools = new JsApiPay();
    //$openId = $tools->GetOpenid();
    //②、统一下单

    $input = new WxPayUnifiedOrder();
    $input->SetBody( '差旅费用');
    $input->SetAttach("test");
    $input->SetOut_trade_no( $orderinfo['order_num'].date("YmdHis") );//8位订单号,加上14位时间

    if( TRIP_MODE == 'DEV' || TRIP_MODE == 'TEST' ){
    $input->SetTotal_fee("1");//开发环境,和测试环境.默认付款0.01元
    }else{
    $input->SetTotal_fee( $orderinfo['order_true_total_money'] * 100 ); //微信支付以分为单位。
    }
    //我们数据库100.16元.会被转成 100.16分

    $input->SetTime_start(date("YmdHis"));
    $input->SetTime_expire(date("YmdHis", time() + 600));
    $input->SetGoods_tag("test");

    $input->SetNotify_url( "http://{$_SERVER['HTTP_HOST']}/api/wxpay/on_wxpay_complete.html");
    $input->SetTrade_type("APP");
    $order = WxPayApi::unifiedOrder($input);

    $timeStamp = time();
    $returnorder['appid'] = "wx9xxxxxx4f7dde7";
    $returnorder['partnerid'] = "13999999991";
    $returnorder['noncestr'] = md5($order['nonce_str']);
    $returnorder['timestamp'] = $timeStamp;
    $returnorder['prepayid'] = $order['prepay_id'];
    $returnorder['package'] = "Sign=WXPay";

    //签名步骤一:
    ksort($returnorder);
    $sign = "";
    foreach ($returnorder as $k => $v)
    {
    if($k != "sign"){
    $sign .= $k . "=" . $v . "&";
    }
    }
    $sign = trim($sign, "&");

    //签名步骤二:在string后加入KEY
    $sign = $sign . "&key=".WxPayConfig::KEY;
    //$sign = $sign . "&key=".'xxxxxxxxxxx';

    //签名步骤三:MD5加密
    $sign = md5($sign);
    //签名步骤四:所有字符转为大写
    $sign = strtoupper($sign);
    $returnorder['sign'] = $sign;

    $returnorder['return_code'] = $order['return_code'];
    $returnorder['return_msg'] = 'OK';
    $returnorder['result_code'] = $order['result_code'];
    D('Tlog')->log( "微信支付订单 orderid=".$order_id. ' result'.json_encode_ex($order) );
    $this->ajaxReturn($returnorder,'json');

    }


    ////////03接收微信回调
    public function on_wxpay_complete(  )
    {
    // $info = $_REQUEST;

    if( APP_DEBUG ) ThinkLog::write('WxNotify: RAW_POST: '.$GLOBALS["HTTP_RAW_POST_DATA"], 'DEBUG' );

    $rowpost = $GLOBALS["HTTP_RAW_POST_DATA"];

    vendor('XmlParser.XML','','.class.php');

    $qr = XML_unserialize( $rowpost );

    mylog1('$qr =='.json_encode_ex($qr));

    //记录日志,将所有的第三方通知消息都记录日志
    $curtime = date('Ymd H:i:s');
    $ordernumber = $qr['xml']['out_trade_no'];
    $ordernumber = substr( $qr['xml']['out_trade_no'], 0, 12 );
    file_put_contents( C('LOGPATH_ORDER_NITIFY')."/Wxpay_{$ordernumber}.txt", " $curtime ".json_encode_ex($qr),FILE_APPEND );

    /*
    array(1) {
    ["xml"] => array(17) {
    ["appid"] => string(18) "wx9999999dde7"
    ["attach"] => string(4) "test"
    ["bank_type"] => string(3) "CFT"
    ["cash_fee"] => string(1) "1"
    ["fee_type"] => string(3) "CNY"
    ["is_subscribe"] => string(1) "N"
    ["mch_id"] => string(10) "1346077501"
    ["nonce_str"] => string(32) "ermeg0d01gv7k4aqppwrmtqfn1yohgy0"
    ["openid"] => string(28) "ok4np999999b7X90JmwDc"
    ["out_trade_no"] => string(26) "20160524010520160526193042"
    ["result_code"] => string(7) "SUCCESS"
    ["return_code"] => string(7) "SUCCESS"
    ["sign"] => string(32) "0ECB9999999DF9B859C45"
    ["time_end"] => string(14) "20160526193052"
    ["total_fee"] => string(1) "1"
    ["trade_type"] => string(3) "APP"
    ["transaction_id"] => string(28) "4099999999993752"
    }
    }
    */

    if( 'SUCCESS' == $qr['xml']['result_code'] && 'SUCCESS' == $qr['xml']['return_code'] )
    {

    //支付成功






  • 相关阅读:
    案例3:歌舞娱乐放映游艺建筑防火案例分析(一)
    案例2:丙类仓库建筑防火案例分析
    第三篇 第八章泡沫灭火系统(二)
    第三篇 第七章气体灭火系统(三)
    FreeMarker 语法 null 的处理
    FreeMarker 语法 date 类型处理
    FreeMarker 语法 list
    FreeMarker 语法 访问 pojo 的属性
    mysql 去重
    FreeMarker hello
  • 原文地址:https://www.cnblogs.com/bj-tony/p/5783251.html
Copyright © 2011-2022 走看看