• 微信支付


    WxPay.pub.config.php文件

    $web_u = "http://".$_SERVER['HTTP_HOST'];
    //获取access_token过程中的跳转uri,通过跳转将code传入jsapi支付页面
    defined("JS_API_CALL_URL_A") or define(JS_API_CALL_URL_A , urlencode($web_u."/index.php"));

    //证书路径,注意应该填写绝对路径
    defined("SSLCERT_PATH_A") or define(SSLCERT_PATH_A , dirname(__FILE__)."/cacert/apiclient_cert.pem");
    defined("SSLKEY_PATH_A") or define(SSLKEY_PATH_A , dirname(__FILE__)."/cacert/apiclient_key.pem");

    //异步通知url,商户根据实际开发过程设定
    defined("NOTIFY_URL_A") or define(NOTIFY_URL_A , $web_u."/pay/api/wx_notify_url.php");
    //=======【异步通知url设置】===================================
    //异步通知url,商户根据实际开发过程设定
    const NOTIFY_URL = NOTIFY_URL_A;


    同步
    /**
    *
    * 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
    * 成功调起支付需要三个步骤:
    * 步骤1:网页授权获取用户openid
    * 步骤2:使用统一支付接口,获取prepay_id
    * 步骤3:使用jsapi调起支付
    */
    include_once("./module/payment/lib/WxPayPubHelper/WxPayPubHelper.php");
    //使用jsapi接口
    $jsApi = new JsApi_pub();
    //=========步骤1:通过code获得openid============
    $openid = $_SESSION['openid'];
    //=========步骤2:使用统一支付接口,获取prepay_id============
    $unifiedOrder = new UnifiedOrder_pub();

    $unifiedOrder->setParameter("openid",$openid);//商品描述
    $unifiedOrder->setParameter("body","test");//商品描述
    //自定义订单号,此处仅作举例

    $timeStamp = time();
    $out_trade_no = $order_id;
    $unifiedOrder->setParameter("out_trade_no",$out_trade_no);//商户订单号
    $unifiedOrder->setParameter("total_fee",100);//总金额
    $unifiedOrder->setParameter("notify_url",WxPayConf_pub::NOTIFY_URL);//通知地址
    $unifiedOrder->setParameter("trade_type","JSAPI");//交易类型
    //非必填参数,商户可根据实际情况选填
    //$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号
    //$unifiedOrder->setParameter("device_info","XXXX");//设备号
    $unifiedOrder->setParameter("attach",$re_wx['id']."|".$order_id);//附加数据

    $prepay_id = $unifiedOrder->getPrepayId();
    //=========步骤3:使用jsapi调起支付============
    $jsApi->setPrepayId($prepay_id);
    $jsApiParameters = $jsApi->getParameters();
    $tpl->assign("jsApiParameters",json_decode($jsApiParameters,true));


    <script type="text/javascript">
    //调用微信JS api 支付
    function jsApiCall()
    {
    WeixinJSBridge.invoke('getBrandWCPayRequest',{
    'appId':"<{$jsApiParameters.appId}>",
    'timeStamp':"<{$jsApiParameters.timeStamp}>",
    'nonceStr':"<{$jsApiParameters.nonceStr}>",
    'package':"<{$jsApiParameters.package}>",
    'signType':"<{$jsApiParameters.signType}>",
    'paySign':"<{$jsApiParameters.paySign}>"
    },function(res){
    // WeixinJSBridge.log(res.err_msg);
    if(res.err_msg == "get_brand_wcpay_request:ok")// 支付成功
    {
    alert("付款成功,请几分钟后更新页面查看");
    var order_id="<{$smarty.get.tradeNo}>";
    }
    });
    }
    function callpay()
    {
    if (typeof WeixinJSBridge == "undefined"){
    if( document.addEventListener ){
    document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
    }else if (document.attachEvent){
    document.attachEvent('WeixinJSBridgeReady', jsApiCall);
    document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
    }
    }else{
    jsApiCall();
    }
    }
    </script>
  • 相关阅读:
    easyui-lang-zh_CN.js导入后还是英文提示
    MongoDB的备份(mongodump)与恢复(mongorestore)
    mongodb windows下服务安装与卸载
    MongoDB 权限管理 用户名和密码的操作
    Super Hide IP 3.4.7.8允许您以匿名方式进行网上冲浪、 保持隐藏您的 IP 地址
    Delphi IDE下载全地址
    Delphi IDE下载全地址
    Delphi XE2及以后的版本编译后的程序大小问题
    Delphi XE2及以后的版本编译后的程序大小问题
    DevExpress VCL 一键安装工具
  • 原文地址:https://www.cnblogs.com/godLike7/p/6322206.html
Copyright © 2020-2023  润新知