微信支付 服务商模式 签名错误

最近公司来了新需求需要增加微信服务商模式,看了看微信的文档感觉很简单很轻松,但是微信留下的坑真的深,比如sdk应该是不一样的,但是得到微信的答复是:普通商户版 和服务商版本的sdk是一样的 ,但是服务商版本的开发需要自己添加子商户号和子商户appid。下面是解决步骤

1 需要自己添加的配置 Wxpay.Data.php
    /**
     * 设置微信分配的子商户公众账号ID   这个是子账号公众号的appid
     * @param string $value
     **/
    public function SetSubAppid($value)
    {
        $this->values['sub_appid'] = $value;
    }
    /**
     * 获取微信分配的子公众账号ID的值
     * @return 值
     **/
    public function GetSubAppid()
    {
        return $this->values['sub_appid'];
    }

    /**
     * 设置微信支付分配的子商户号
     * @param string $value
     **/
    public function SetSubMch_id($value)
    {
        $this->values['sub_mch_id'] = $value;
    }

      /**
     * 获取微信支付分配的子商户号的值
     * @return 值
     **/
    public function GetSubMch_id()
    {
        return $this->values['sub_mch_id'];
    }

一共四个函数

2 在Wxpay.Api.php 添加两行代码
    $inputObj->SetSubAppid('xxxxxxx');//子账户的appid
    $inputObj->SetSubMch_id('xxxx');//子账户商户号

然后就可以测试了,如无意外的话到了支付页面会提示你签名错误。

3 现在该修改第三个文件了Wxpay.Config.php
    public function GetAppId()
    {
        return $this->APPID;   这个是应该填服务商对应的公众号的appid
    }

    public function GetMerchantId()
    {
        return $this->MCHID;   服务商的商户号
    }

    public function GetAppSecret()
    {
        return $this->APPSECRET;  //服务商appid对应的 appsecrest
      
    }

最终要的一个修改来了 这个应该填的是商户支付秘钥 在这里设置 https://pay.weixin.qq.com/index.php/account/api_cert

如下图,点击设置秘钥在这里插入图片描述

一般刚开通的服务商是没有设置这个的 ,如果不设置这个,肯定会提示您签名错误,把这个设置完了,填在这个位置

   public function GetKey()
    {
        return $this->KEY; //一串自己设置的key
       
    }

ok 现在应该大功告成

猜你喜欢

转载自blog.csdn.net/helloworld_dream/article/details/86153379