微信支付PHP開發(fā)問題總結(jié)

微信支付PHP開發(fā)問題總結(jié)

  1. wechatpay-php 報錯 Cannot load privateKey from

     //  從本地文件中加載「商戶API私鑰」,「商戶API私鑰」會用來生成請求的簽名
     $privateKeyFilePath =  '/app/conf/apiclient_key.pem';
     $privateKeyInstance = Rsa::from($privateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
    

    處理方法是帶 file 協(xié)議,例如:

     $privateKeyInstance = Rsa::from("file://".$privateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
    
  1. 輸入源“/appid”映射到字段“公眾號ID”必填性規(guī)則校驗失敗,此字段為必填項

    使用官方推薦的 wechatpay-php 開發(fā)庫,按照微信支付文檔中心APP支付接入前準備 內(nèi)容確認APPID 、mchid (商戶號)、商戶API證書序列號、APIv3密鑰這幾個參數(shù)。

  1. 如何獲取微信支付平臺證書

    /usr/local/php/bin/php  /data/html/api_kumayi/vendor/bin/CertificateDownloader.php -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath} -c ${wechatpayCertificateFilePath}
    

    參數(shù)說明:

    -k 是API v3 密鑰;

    -m 是商戶號;

    -f 是商戶的私鑰文件

    -s 是商戶證書的序列號

    -o 是下載成功后保存證書的路徑,可選參數(shù)

    -c 是微信支付證書,用于驗簽; 非必需參數(shù)

    注意:

    第一次下載證書對于微信支付平臺的應(yīng)答,需要使用平臺證書來進行驗簽;但平臺證書只能通過 獲取平臺證書接口 下載,所以當?shù)谝淮稳カ@取證書時,會出現(xiàn)個“死循環(huán)”。

    為解決這個“死循環(huán)”,可以臨時跳過驗簽,來獲得證書。也就是說可以不提供微信支付證書參數(shù)(-c 參數(shù))來下載,在下載得到證書后,工具會使用證書對報文的簽名進行驗證如果通過則說明證書正確。

參考文檔:

wechatpay-php 開發(fā)者庫: https://github.com/wechatpay-apiv3/wechatpay-php

APP支付官方文檔:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_5_1.shtml

微信支付接口規(guī)則 :https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_1.shtml

API證書及密鑰: https://kf.qq.com/faq/161222NneAJf161222U7fARv.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容