精华内容
下载资源
问答
  • 商家存在未设置参数
    千次阅读
    2020-07-02 15:25:30

    很多人对接微信H5支付的时候有时候会提示一个“商家存在未配置的参数,请联系商家解决”的问题,明明按照文档上面的对接已经对接起来了,而且mweb_url参数也回来了,但是调起微信却报这个错误
    这个问题一般是因为域名与微信商户平台配置的域名不一致导致的,解决的办法也很简单
    1、登陆微信商户平台,查看自己配置的域名有没有问题(要备案且用https访问),不过一般能添加上去都是没有问题的
    2、检查网站提交支付的域名与微信商户平台的域名是否一致,如果不一致,一个是可以把域名添加到微信商户平台上面,第二个是网站域名换成和微信商户平台的域名一致
    3、上面的两个很多人都知道排查,也很容易排查出来,第三个特别要注意的是头部参数Referer(具体做什么的自行百度),这个的域名如果不一致也会导致出现这个问题,而且这个是隐形的,容易忽略,这个做聚合支付是最容易出现的,明明mweb_url已经回来了,就是调起出问题,很多人喜欢用redirect去直接调起,这样很容易导致下面提交上来的地址直接传给微信了,如果这个时候两个域名不一致就会出现这个问题了,这个问题的解决办法有两种
    一 : 前端到页面的时候直接跳转到,正确的域名下面在请求支付。
    二 : 是伪造referer(这种方法不建议)

    //伪造referer
    ASP:
     
    dim http
    set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以
    Http.open "GET",url,false
    Http.setRequestHeader "Referer","http://www.05809.cn/"
    Http.send()
     
    PHP(前提是装了curl):
     
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, "http://www.05809.cn/xxx.asp");
    curl_setopt ($ch, CURLOPT_REFERER, "http://www.05809.cn/");
    curl_exec ($ch);
    curl_close ($ch);
     
    PHP(不装curl用sock)
     
    $server = 'www.dc9.cn';
    $host = 'www.dc9.cn';
    $target = '/xxx.asp';
    $referer = 'http://www.dc9.cn/'; // Referer
    $port = 80;
    $fp = fsockopen($server, $port, $errno, $errstr, 30);
    if (!$fp)
    {
    echo "$errstr ($errno)<br />\n";
    }
    else
    {
    $out = "GET $target HTTP/1.1\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Cookie: ASPSESSIONIDSQTBQSDA=DFCAPKLBBFICDAFMHNKIGKEG\r\n";
    $out .= "Referer: $referer\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp))
    {
    echo fgets($fp, 128);
    }
    fclose($fp);
    }
     
    VB.NET/C#.NET
     
    Dim oXMLHttp As MSXML2.XMLHTTP30 = New MSXML2.XMLHTTP30()
    或者
    MSXML2.XMLHTTP30 oXMLHttp = new MSXML2.XMLHTTP30();
    oXMLHttp.open(....
    oXMLHttp.setRequestHeader(...
    oXMLHttp.send(..
     
    //js
    var url = "http://www.yourtarget.com";  
    var param = "name=david&age=30";  
    var obj = new ActiveXObject("WinHttp.WinHttpRequest.5.1");  
    obj.Open("POST", url, false);  
    obj.Option(4) = 13056;  
    obj.Option(6) = false; //false可以不自动跳转,截取服务端返回的302状态。  
    obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
    obj.setRequestHeader("Referer", "http://www.baidu.com");  
    obj.Send(param);  
    WScript.Echo(obj.responseText);
     
    //app
    app 解决if (("4.4.3".equals(android.os.Build.VERSION.RELEASE))
                    || ("4.4.4".equals(android.os.Build.VERSION.RELEASE))) {
         //兼容这两个版本设置referer无效的问题
         view.loadDataWithBaseURL("商户申请H5时提交的授权域名",
                        "<script>window.location.href=\"" + targetUrl + "\";</script>",
                        "textml", "utf-8", null);
     } else {
          Map<String, String> extraHeaders = new HashMap<>();
          extraHeaders.put("Referer", "商户申请H5时提交的授权域名");
          view.loadUrl(targetUrl, extraHeaders);
     }
    //java
    /**
     * 用httpClient 模拟修改referer属性,仅供用于WEB安全防范示例。
     * 
     * @author auth
     */
    public class EasyModifyHeader {
        public static void main(String[] args) throws Exception {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                String url = "http://www.wuranyubao.cn/wryb_rdcity.php";
                HttpPost httpPost = new HttpPost(url);
                //设置防外链头信息
                httpPost.setHeader("origin", "http://www.wuranyubao.cn");
                httpPost.setHeader("referer", "http://www.wuranyubao.cn/wryb_prev.php?movie=no");
                //建立HttpPost对象
                List<NameValuePair> params=new ArrayList<NameValuePair>();
                //建立一个NameValuePair数组,用于存储欲传送的参数
                params.add(new BasicNameValuePair("rdcity","Shandong,Jinan,20151121"));
                httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
                CloseableHttpResponse response = httpclient.execute(httpPost);
                try {
                    HttpEntity entity = response.getEntity();
                    //打印目标网站输出内容
                    System.out.println(EntityUtils.toString(entity));
                    EntityUtils.consume(entity);
                } finally {
                    response.close();
                }
            } finally {
                httpclient.close();
            }
        }
    }
    
    

    模拟点击提交,这个时候Referer就统一了

    微信支付是有些坑,但是只要耐心去解决,还是很容易的

    更多相关内容
  • 最近遇见了很多的朋友在做H5微信支付的,出现一个错误【商家存在未配置的参数,请联系商家解决】。 今天在这里给大家详细的分析一下: 1.先添加项目使用的域名-请登陆商户号对应的商户平台--"产品中心"--"开发...

    最近遇见了很多的朋友在做H5微信支付的,出现一个错误【商家存在未配置的参数,请联系商家解决】。

    今天在这里给大家详细的分析一下:

     

    1.先添加项目使用的域名-请登陆商户号对应的商户平台--"产品中心"--"开发配置"自行配置 

    2.查看http请求头中的Referer 是否跟你配置的支付域名一致,如果不一致就添加referer的域名到H5支付域名中

    3.还有种情况就是需要伪造referer:

    ASP:
     
    dim http
    set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以
    Http.open "GET",url,false
    Http.setRequestHeader "Referer","http://www.05809.cn/"
    Http.send()
     
    PHP(前提是装了curl):
     
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, "http://www.05809.cn/xxx.asp");
    curl_setopt ($ch, CURLOPT_REFERER, "http://www.05809.cn/");
    curl_exec ($ch);
    curl_close ($ch);
     
    PHP(不装curl用sock)
     
    $server = 'www.dc9.cn';
    $host = 'www.dc9.cn';
    $target = '/xxx.asp';
    $referer = 'http://www.dc9.cn/'; // Referer
    $port = 80;
    $fp = fsockopen($server, $port, $errno, $errstr, 30);
    if (!$fp)
    {
    echo "$errstr ($errno)<br />\n";
    }
    else
    {
    $out = "GET $target HTTP/1.1\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Cookie: ASPSESSIONIDSQTBQSDA=DFCAPKLBBFICDAFMHNKIGKEG\r\n";
    $out .= "Referer: $referer\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp))
    {
    echo fgets($fp, 128);
    }
    fclose($fp);
    }
     
    VB.NET/C#.NET
     
    Dim oXMLHttp As MSXML2.XMLHTTP30 = New MSXML2.XMLHTTP30()
    或者
    MSXML2.XMLHTTP30 oXMLHttp = new MSXML2.XMLHTTP30();
    oXMLHttp.open(....
    oXMLHttp.setRequestHeader(...
    oXMLHttp.send(..
    
    //js
    var url = "http://www.yourtarget.com";  
    var param = "name=david&age=30";  
    var obj = new ActiveXObject("WinHttp.WinHttpRequest.5.1");  
    obj.Open("POST", url, false);  
    obj.Option(4) = 13056;  
    obj.Option(6) = false; //false可以不自动跳转,截取服务端返回的302状态。  
    obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
    obj.setRequestHeader("Referer", "http://www.baidu.com");  
    obj.Send(param);  
    WScript.Echo(obj.responseText);
    
    //app
    app 解决if (("4.4.3".equals(android.os.Build.VERSION.RELEASE))
                    || ("4.4.4".equals(android.os.Build.VERSION.RELEASE))) {
         //兼容这两个版本设置referer无效的问题
         view.loadDataWithBaseURL("商户申请H5时提交的授权域名",
                        "<script>window.location.href=\"" + targetUrl + "\";</script>",
                        "textml", "utf-8", null);
     } else {
          Map<String, String> extraHeaders = new HashMap<>();
          extraHeaders.put("Referer", "商户申请H5时提交的授权域名");
          view.loadUrl(targetUrl, extraHeaders);
     }
    //java
    /**
     * 用httpClient 模拟修改referer属性,仅供用于WEB安全防范示例。
     * 
     * @author auth
     */
    public class EasyModifyHeader {
        public static void main(String[] args) throws Exception {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                String url = "http://www.wuranyubao.cn/wryb_rdcity.php";
                HttpPost httpPost = new HttpPost(url);
                //设置防外链头信息
                httpPost.setHeader("origin", "http://www.wuranyubao.cn");
                httpPost.setHeader("referer", "http://www.wuranyubao.cn/wryb_prev.php?movie=no");
                //建立HttpPost对象
                List<NameValuePair> params=new ArrayList<NameValuePair>();
                //建立一个NameValuePair数组,用于存储欲传送的参数
                params.add(new BasicNameValuePair("rdcity","Shandong,Jinan,20151121"));
                httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
                CloseableHttpResponse response = httpclient.execute(httpPost);
                try {
                    HttpEntity entity = response.getEntity();
                    //打印目标网站输出内容
                    System.out.println(EntityUtils.toString(entity));
                    EntityUtils.consume(entity);
                } finally {
                    response.close();
                }
            } finally {
                httpclient.close();
            }
        }
    }

     

    本人在这里并不建议大家用伪造的方式去做。

    如有需要可以加我Q群【308742428】大家一起讨论技术。

    后面会不定时为大家更新文章,敬请期待。

    喜欢的朋友可以关注下。

    如果对你有帮助,请打赏一下谢谢。

    展开全文
  • 但是转到浏览器中就出现问题 “商家存在未配置的参数,请联系商家解决” ,哎 好吧无奈的只能找问题了,先看一波官方文档 排错流程,搞起 检查域名配置,回调设置没毛病而且微信浏览器中可以正常支付,这就说明我们...

    问题的起因
    在微信环境下我们的支付流程都可以跑通,一点毛病都没有。但是转到浏览器中就出现问题 “商家存在未配置的参数,请联系商家解决” ,哎
    好吧无奈的只能找问题了,先看一波官方文档
    排错流程,搞起
    在这里插入图片描述
    检查域名配置,回调设置没毛病而且微信浏览器中可以正常支付,这就说明我们的配置一定是没有问题的,那么接下就是检查参数问题了;
    在看官方文档 常见问题有个比较显眼的标红文字 redirect_url,所以就特别的去检查了一下我们支付页面生成链接得到报错的前后链接,进行对比
    https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx211336120116977a40d7f7392478c30000&package=107746263&redirect_url=%2fyp%2fPlugins%2fRechargeClient%2fUserPayResult
    发现果然是传递的参数有问题,redirect_url我们这里使用的相对路径,在微信支付中间页就无法跳转回来。接下来补全地址测试,没有问题。开心。
    至于为什么在微信环境内可以支付,暂时还没有去找答案。知道的大神请指教!

    对于调用第三方的接口出问题,我的做法思路是先看官方文档–>配置项检查–>代码检查–>验证检查
    希望能帮到你~~

    展开全文
  • 大致流程1、用户在商户侧完成下单,使用微信支付进行支付2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名...

    前言

    考虑到网络上微信的h5支付都是讲解原生app的,ionic3的基本没有,我自己总结下。

    大致流程

    1、用户在商户侧完成下单,使用微信支付进行支付

    2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB

    3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起微信支付中间页

    4、中间页进行H5权限的校验,安全性检查(此处常见错误请见下文)

    5、如支付成功,商户后台会接收到微信侧的异步通知

    6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)

    7、商户在展示页面,引导用户主动发起支付结果的查询

    8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态

    10、展示最终的订单支付结果给用户

    大致的流程就和微信的文档一致。如果看不懂的话,那就通俗的来讲就是:你在下单时,要给后台发请求,后台通过拿到的参数请求微信后台去生成订单并同时返给你一个路径mweb_url,这个路径就是用来调起微信应用发起支付操作的。这里要说明的就是由于h5支付不能主动回调,所以需要个主动查询的操作,这时会需要你有一个确认界面来进行主动查询订单状态。调起支付界面之后进行支付操作,期间你什么都不用管,因为这都是微信的事。你需要的就是在你付完钱之后查看你的钱买你要的东西到底有没有成功。(在ionic中,支付完成后,我是跳转到首页)

    常见错误

    一、回调页面

    (有颜色的部分就是你要添加最后想要跳转进行别的操作的页面,一般就是确认订单状态的页面)

    注意:

    1.需对redirect_url进行urlencode处理

    2.由于设置redirect_url后,回跳指定页面的操作可能发生在:

    1,微信支付中间页调起微信收银台后超过5秒

    2,用户点击“取消支付“或支付完成后点“完成”按钮。因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。

    ionic3中解决方案

    需要在iframe中打开MWEB_URL,支付完成还是会返回到原来的界面,这里你可以在原来界面的生命周期里重新刷新一下支付状态;当然,如果需要回调跳转到指定页面也是可以的,在后面拼接上redirect_url参数就可以了(实际用的时候记得urlencode一下,我这里为了讲解方便直接贴出来了redirect_url=http://localhost:8100?name=WX)

    var loadUrl = "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096](https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096)`&redirect_url=http://localhost:8100?name=WX"

    this.navCtrl.push(BrowserPage, {

    browser: {

    title: "支付结果",

    url: loadUrl

    }

    });

    首页接收到传递过来的参数进行后续操作(想跳转到哪里都可以,我这里就弹出一个对话框,提示用户支付成功)

    56c8f1715bba

    image.png

    const urlParams = getURLSearchParamsByHref();

    console.log("urlParams===",urlParams);

    if(urlParams.get("name") == "WX"){//支付成功跳转过来

    //弹窗警告

    let alert = this.alertCtrl.create({

    title: '提示',

    subTitle: '支付成功!',

    buttons: [

    {

    text: '取消',

    handler: data => {

    console.log('Cancel clicked');

    }

    },

    {

    text: '确定',

    handler: data => {

    console.log('Saved clicked');

    }

    }

    ] });

    alert.present();

    }

    注意:你h5的app访问的域名和后台申请h5支付的时候填写的h5支付的域名必须一样,不然会报“商家存在未配置的参数,请联系商家解决“。

    展开全文
  • 微信H5支付其实也挺简单的,只要按照文档去接,一般问题不大,但是某些做支付的要处理的东西就多一点 微信支付有几个地方要配置,一个...明明微信商户平台的域名都配置正确了,为什么调起支付以后却提示“商家存...
  • 但是:当添加redirect_url,出现《微信支付报错 商家存在未配置的参数,请联系商家解决》问题 在微信商户中心已经配置完域名但是不生效 贴图为证 解决方案: 问题在于微信方面,安全中心提示为十分钟生效,但是这...
  • vue react 微信H5支付填坑 商家参数格式错误,存在配置的参数… ...1.商家存在未配置的参数,请联系商家解决 说起来,真是欲哭为泪,尤其是使用vue react等单页面应用开发项目的,多少一开始都很头大,我一开始
  • uni-app打包H5在普通浏览器调用微信H5支付,报错:商家参数格式有误,请联系商家解决 这个问题困扰我很多天,解决了,记录一下同时也希望能帮到别人 uni-app 打包H5的时候html文件头部meta是 <meta name=...
  • 微信H5 支付开发官方文档参考资料:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4 0. 场景描述:在APP 中使用webView 显示第三方H5, H5中涉及到微信支付流程,无法正常支付,提示 “商家参数格式有误,请...
  • 下面奉上大众点评中用参数拼接地址的真实操作案例: 进入商家列表页面后我们需要获取商家的地址,点击一个商家看看地址的格式。 回到列表页,查看页面源代码,可以发现商家的地址是不全的,因此我们需要借用源代码中...
  • 关于数码相机设置的一般参数设置[定义].pdf
  • 用友T6 5.1库存管理参数设置手册,用友学习
  • 并不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改HTTPREFERER。因此,_SERVER[&#x27;HTTP_REFERER&#x27;] 完全来源于浏览器。并不是所有的用户代理(浏览器)都会设...
  • 0. 场景描述:在APP 中使用webView 显示第三方H5, H5中涉及到微信支付流程,无法正常支付,提示 “商家参数格式有误,请联系商家解决”。 1. 线索分析:参照微信H5 支付开发官方文档,提及 “如果是APP里调起...
  • 市场上如此多种类的示波器,该选择哪一款呢?示波器的广告宣传中,往往会凸显带宽和采样率两个非常重要的参数。但是,还有哪些隐藏在说明书中的参数需要我们关注呢?
  • 支付宝接口实现参数

    2013-10-29 10:42:34
    使用支付宝接口时需要了解的所有实现参数的详细介绍
  • 创建订单 / 下单接口参数说明

    千次阅读 2021-06-15 10:26:22
    接口地址以及参数说明,请移步至上述链接查看详细的接口文档说明 接口文档的使用方法,接口如何调用,请参阅下面的入门教程: 《如何调用接口?》 如果你是进行微信小程序开发,可以使用已经封装好的SDK,...
  • Python pandas 的pivot_table可以实现与Excel透视表类似的效果,但是如果index参数列中存在Nan值,就会导致改行记录不被计入。 result=data.pivot_table(index=["商家名称","月份","活动类型","满减门槛","满减金额...
  • SQL SERVER存储过程,参数默认值设置

    万次阅读 2016-04-10 16:35:12
    业务背景:当我们要对存储过程设置一些传入参数时,如果存在传入参数允许不传入,那么为了保证参数的完整性,必须对存储过程的形参设置默认值,那么当执行存储过程,传入实参不完整时,SQL会自动检查是否有对应缺省...
  • 美团的appId:wx2c348cf579062e56 饿了么appId:wxece3a9a4c82f58c9 ... 在首页工具选项中,选择生成小程序码,跳转到如下页面 ...2 打开美团外码小程序(按照你刚才搜索的自行更改)微信小程序输入您要...
  • 解决uni-appH5微信支付iOS系统出现当前页面url注册问题 1.问题描述:安卓系统可以正常支付,然而苹果系统怎么支付都不能正常支付,debug显示当前页面url注册。 原理:单页应用,ios系统获取签名的url是首次进入...
  • JS逆向 | 拼多多anti_content参数

    千次阅读 2022-01-23 12:45:33
    anti_content存在多种扣法,今天讲一种较为简单的方法。 anti_content加密JS分析 网页端是个AJAX,搜索我的书《反爬虫AST原理与还原混淆实战》,当然不要在这个网站买,盗版太多了,请支持正版。 直接下拉在XHR页...
  • aop拦截指定参数

    千次阅读 2019-06-04 09:44:51
    //如果用户组织树下的存在该权限类的角色,且数据存在,和操作类型存在 if(u.getRoleId().equals(p.getPermRoleClass().getRoleId())&&prmClassCode.equals(p.getClsCode())) { ckstr= ...
  • 摄像头常见参数解释(转载)

    千次阅读 2020-05-06 22:48:28
    影响摄像头性能的参数主要有以下几种: 1. 分辨率:一般是说摄像头能支持到的最大图像大小,如640x480(普清), 800x600, 1280x720(高清), 1920x1080(全高清或超清)等。分辨率当然是越高越好,但也要考虑系统...
  • 支付宝接口实现_参数以及实现方式
  • 摄像头常见参数解释

    万次阅读 多人点赞 2017-01-01 13:09:26
    影响摄像头性能的参数主要有以下几种: 1. 分辨率:一般是说摄像头能支持到的最大图像大小,如640x480(普清), 800x600, 1280x720(高清), 1920x1080(全高清或超清)等。分辨率当然是越高越好,但也要考虑系统...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,328
精华内容 5,731
关键字:

商家存在未设置参数