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'] )
    {

    //支付成功






  • 相关阅读:
    每日日报2020.12.1
    每日日报2020.11.30
    981. Time Based Key-Value Store
    1146. Snapshot Array
    565. Array Nesting
    79. Word Search
    43. Multiply Strings
    Largest value of the expression
    1014. Best Sightseeing Pair
    562. Longest Line of Consecutive One in Matrix
  • 原文地址:https://www.cnblogs.com/bj-tony/p/5783251.html
Copyright © 2011-2022 走看看