w7corp / easywechat

📦 一个 PHP 微信 SDK
https://easywechat.com
MIT License
10.28k stars 2.4k forks source link

V2付款暂不支持xml请求签名和证书及证书密钥参数 #2394

Closed pengxuxu closed 2 years ago

pengxuxu commented 2 years ago

我用的环境

问题及现象

微信支付付款V2接口,请求格式为xml,目前easywechat暂不支持xml请求的格式和证书及证书密钥参数

调用接口示例可否为:

$response = $api->post('/mmpaymkttransfers/promotion/transfers', [
            'xml' => [
                'mch_appid' => $app->getConfig()['app_id'], //注意在配置文件中加上app_id
            'mchid' => $app->getConfig()['mch_id'], //商户号
        'partner_trade_no' => '202203081646729819743', // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
        'openid' => 'ogn1H45HCRxVRiEMLbLLuABbxxxx', //用户openid
        'check_name' => 'FORCE_CHECK',// NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
        're_user_name'=> '彭旭', // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
        'amount' => 100, //金额。单位:分
        'desc' => '理赔', // 企业付款操作说明信息。必填
            ],
            'local_cert' => $app->getConfig()['certificate'], //证书
            'local_pk' => $app->getConfig()['private_key'], //证书密钥
        ]);
TheNorthMemory commented 2 years ago
LeePillar commented 2 years ago
  • local_cert & local_pk 是来自 Symfony\Contracts\HttpClient\HttpClientInterface::OPTIONS_DEFAULTS,这俩参数会给 HTTP 增加 SSL 请求所需的证书及私钥,这个需要备注一下,建议在文档上注明。
  • 请求参数,XML 下的所有数据类型,建议都用 string,尤其金额,避免 float(120) 在编码过程中,丢失精度问题。

专业~~