收藏
回答

微信支付,进件一直返回参数异常?

 "code""PARAM_ERROR",

 "message""结算银行账户开户名称(bank_account_info/account_name)有误:选择“对公银行账户”时,开户名称必须与营业执照或登记证书上的“商户名称”一致"

看网上一些人说是 utf-8 编码问题,微信支付客服也说是我传过来的中文被编码了。可具体该怎么做呢。好难啊~~~~


回答关注问题邀请回答
收藏

2 个回答

  • 北望沣渭
    北望沣渭
    2021-12-28

    PHP代码上的164-165行不用加;

    postman截图上array,明显能看到 id_card_name 没有加密;加密代码在lib readme上有写,如:

    <?php
    use WeChatPay\Crypto\Rsa;
    // 做一个匿名方法,供后续方便使用,$platformPublicKeyInstance 见初始化章节
    $encryptor = static function(string $msg) use ($platformPublicKeyInstance): string {
        return Rsa::encrypt($msg, $platformPublicKeyInstance);
    };
    
    $resp = $instance
    ->chain('v3/applyment4sub/applyment/')
    ->post([
        'json' => [
            'business_code' => 'APL_98761234',
            'contact_info'  => [
                'contact_name'      => $encryptor('张三'),
                'contact_id_number' => $encryptor('110102YYMMDD888X'),
                'mobile_phone'      => $encryptor('13000000000'),
                'contact_email'     => $encryptor('abc123@example.com'),
            ],
            //...
        ],
        'headers' => [
            // $platformCertificateSerial 见初始化章节
            'Wechatpay-Serial' => $platformCertificateSerial,
        ],
    ]);
    
    
    2021-12-28
    有用 1
    回复 5
    • kandr.
      kandr.
      2021-12-28
      2021-12-28
      回复
    • kandr.
      kandr.
      2021-12-28
      我原先就是这样子的,的确有对参数惊醒加密处理的。但目前返回的结果,还是一样,说 “结算银行账户开户名称(bank_account_info/account_name)有误:选择“对公银行账户”时,开户名称必须与营业执照或登记证书上的“商户名称”一致”
      2021-12-28
      回复
    • kandr.
      kandr.
      2021-12-28
      2021-12-28
      回复
    • 北望沣渭
      北望沣渭
      发表于移动端
      2021-12-28回复kandr.
      你看一下你这个PHP文件的编码是不是utf8的
      2021-12-28
      回复
    • 北望沣渭
      北望沣渭
      发表于移动端
      2021-12-28回复kandr.
      PHP隐式会按照当前文件的编码格式来处理输入源,即你post上来的数据,如果当前文件编码是gbk,则按照gbk处理加密;简单粗暴的方法是,把文件另存一下,phpstorm有选择编码格式,试试看是不是这个问题造成的
      2021-12-28
      回复
  • Memory (私信不回复)
    Memory (私信不回复)
    2021-12-28

    这个就是utf-8 编码问题

    2021-12-28
    有用
    回复 4
    • kandr.
      kandr.
      2021-12-28
      我该怎么操呢,我这边传过去的就是中文呀
      2021-12-28
      回复
    • kandr.
      kandr.
      2021-12-28
      2021-12-28
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2021-12-28回复kandr.
      account_name需要加密的
      2021-12-28
      回复
    • kandr.
      kandr.
      2021-12-28
      我加密了的呀
      2021-12-28
      回复
登录 后发表内容