ThinkPHP3.2 微信发起通联支付失败,报错errMsg:config:fail, Error:invalid signature

这两天和工程师攻克了一个看起来很简单,但花了两周时间的小问题,不多说,总结一下:

 

 

环境:

框架:TP3.2

支付:通联支付

------------------------------------测试-----------------------------------------------------------

1、必须在手机微信测试

2、去参数刷新也是吊不起支付

3、调试工具测试支付也是吊不起支付

调试工具测试会出如下错误:

------------------------------------支付目录配置-----------------------------------------------------------------------

支付目录需要配置最后/

https://xxx.com/Active/Certificate/

如:有带参,需配置到参数后面

https://xxx.com/Active/Certificate/certificate_detail/id/2

需配置:

https://xxx.com/Active/Certificate/certificate_detail/id/

-------------------------------------------------PHP-------------------------------------------------------

public functionpay($price,$openid){

       $str= "urj28fhjkhkqwcuiasdlklkvbnmzvmnbxcvsjkdafhasjkdhfqwiouyerwqioeufskahdfjkasdhfwqiouerhfjkashfjkdashfuiweyrkjhakjncaskdl";

       $randomstr= substr($str,rand(0,strlen($str)-6),5).substr($str,rand(0,strlen($str)-6),5).substr($str,rand(0,strlen($str)-11),10);

       $dingdanhao=date("YmdHis".rand(9));

       $params= array();

   $params["cusid"] = AppConfig::CUSID;

    $params["appid"] = AppConfig::APPID;

    $params["version"] = AppConfig::APIVERSION;

    $params["trxamt"] =$price*100;  //交易金额 //单位为分

    $params["reqsn"] = $dingdanhao;//订单号,自行生成//商户的交易订单号//保证商户平台唯一

    $params["paytype"] = "W02";  //交易方式//W05:微信H5,W06小程序//A05:支付宝H5//暂只支持微信H5

    $params["randomstr"] = $randomstr;//随机字符串//随机生成的字符串

    $params["body"] = "XXXX"; //商品名称//订单标题//订单商品名称,为空则以商户名作为商品名称

    $params["remark"] = "备注信息"; //备注信息

    $params["acct"] = $openid;    //关联微信公众号openid,应是用户的openID//支付平台用户标识

    //$params["limit_pay"] = ""; //支付限制//no_credit--指定不能使用信用卡支付

       $params["notify_url"] = C('HOST')."/Tonglian_h5/notify/notify";  //交易结果通知地址//接收异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。

    $params["sign"] = AppUtil::SignArray($params,AppConfig::APPKEY);//签名

    $paramsStr= AppUtil::ToUrlParams($params);

    $url= AppConfig::APIURL. "/pay";

    $rsp= $this->request($url, $paramsStr);

    $rspArray= json_decode($rsp, true);

       return$rspArray;

}

--------------------------------------------js-----------------------------------------------------------------------

    functionbuyCertificate() {

        $.ajax({

            url: '/active/certificate/buyCertificate',

            type: 'post',

            enctype:"multipart/form-data",

            data: {

            },

            error:function(jqXHR,textStatus,errorThrown){

                // console.log(jqXHR);

                // console.log(textStatus);

                // console.log(errorThrown);

            },

            dataType: 'json',

            success: function(data) {

                if(data.code==100){

                    window.location.href="/active/member/register";

                }else if(data.code==200){

                    console.log(data.pay);

                    varpayinfo=data.pay.payinfo;

                    varpayinfo2= JSON.parse(payinfo);

                    callpay(payinfo2);

                }

            }

        });

    }

//调用微信JS api支付

functionjsApiCall(data)

{

    WeixinJSBridge.invoke(

        'getBrandWCPayRequest',

        {

            "appId":data.appId,     //公众号名称,由商户传入

            "timeStamp":data.timeStamp,         //时间戳,自1970年以来的秒数

            "nonceStr":data.nonceStr, //随机串

            "package":data.package,

            "signType":data.signType,         //微信签名方式:

            "paySign":data.paySign//微信签名

        },

        function(res){

            WeixinJSBridge.log(res);

            if(res.err_msg == "get_brand_wcpay_request:ok"){

                alert('支付成功!');

            }else{

                alert('支付失败!');

            }

        }

    );

}

functioncallpay(data)

{

    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(data);

    }

}


版权声明:本文为jary4pm原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。