Payment:微信支付配置文件設(shè)置說(shuō)明

項(xiàng)目GitHub地址https://github.com/helei112g/payment

微信支付個(gè)人覺(jué)得在帳號(hào)設(shè)置上有些麻煩,帳號(hào)太多啦,支付寶目前就是一個(gè)應(yīng)用基本涵蓋了所有的接口開(kāi)發(fā)。

可能是由于微信支付的后端是財(cái)付通,反正咱們寫(xiě)代碼的,也別管那么多。理清楚各配置的關(guān)系,然后寫(xiě)出高質(zhì)量的代碼就好。

關(guān)于如何申請(qǐng)微信支付,只講兩個(gè)問(wèn)題,服務(wù)號(hào)支付能力的申請(qǐng)?jiān)诠娞?hào)后后臺(tái)申請(qǐng),app應(yīng)用的支付能力申請(qǐng)?jiān)陂_(kāi)發(fā)者中心申請(qǐng)。其他細(xì)節(jié)請(qǐng)自行查詢(xún)。


登陸微信商戶(hù)平臺(tái):https://pay.weixin.qq.com

拿到微信給的商戶(hù)號(hào)后,登陸商戶(hù)平臺(tái),點(diǎn)擊【賬戶(hù)中心】進(jìn)入【API安全】
會(huì)看到下面的截圖:

image

微信支付發(fā)起請(qǐng)求的數(shù)據(jù)需要進(jìn)行簽名,簽名的密鑰就是在這里設(shè)置,設(shè)置時(shí)候請(qǐng)記錄一下。等會(huì)配置中會(huì)需要。

下載微信的安全證書(shū),相關(guān)說(shuō)明看這里

配置文件

return [
    'app_id'            => '應(yīng)用ID',
    'mch_id'            => '商戶(hù)id',
    'md5_key'           => '剛剛設(shè)置的密鑰',
    'app_cert_pem'      => 'apiclient_cert.pem',
    'app_key_pem'       => 'apiclient_key.pem',
    'sign_type'         => 'MD5',// MD5  HMAC-SHA256
    'limit_pay'         => [
        //'no_credit',
    ],
    'fee_type'          => 'CNY',// 貨幣類(lèi)型  當(dāng)前僅支持該字段
    'notify_url'        => 'https://helei112g.github.io/',
    'redirect_url'      => 'https://helei112g.github.io/',
    'return_raw'        => false,
];

下面表格中 是否必須 列如果標(biāo)記為 ,則該項(xiàng)必須設(shè)置,否則sdk將無(wú)法得到結(jié)果。

參數(shù) 類(lèi)型 是否必須 說(shuō)明
app_id string 應(yīng)用id,下面會(huì)詳細(xì)解釋
mch_id string 微信支付分配的商戶(hù)號(hào)
md5_key string 用戶(hù)在商戶(hù)中心設(shè)置的api密鑰
sign_type string 簽名類(lèi)型,默認(rèn)為MD5,支持HMAC-SHA256和MD5。
app_cert_pem string 證書(shū)pem格式
app_key_pem string 證書(shū)密鑰pem格式
limit_pay array 上傳此參數(shù)no_credit--可限制用戶(hù)不能使用信用卡支付
fee_type string 默認(rèn)人民幣:CNY
notify_url string 異步通知的地址
redirect_url string 回調(diào)頁(yè)面地址
return_raw boolean 是否返回微信原始數(shù)據(jù)

app_id: 對(duì)于公眾號(hào)支付,是微信支付分配的公眾賬號(hào)ID,如果是app支付則是微信開(kāi)放平臺(tái)審核通過(guò)的應(yīng)用APPID

微信支付接口中,一定要注意區(qū)分不同的帳號(hào)類(lèi)別

  • 公眾號(hào)支付,需要對(duì)應(yīng)服務(wù)號(hào)在公眾號(hào)后臺(tái)申請(qǐng),該帳號(hào)無(wú)法用來(lái)進(jìn)行app支付
  • app支付,微信開(kāi)放平臺(tái)審核通過(guò)的應(yīng)用APPID,無(wú)法用來(lái)進(jìn)行公眾號(hào)支付
  • 小程序支付也是一個(gè)獨(dú)立的帳號(hào),微信分配的小程序ID
  • 掃碼支付,可以使用app支付的帳號(hào),也可使用公眾支付的帳號(hào)
  • 刷卡支付,兩個(gè)帳號(hào)也可以使用

由于我沒(méi)有小程序的帳號(hào),沒(méi)辦法測(cè)它是否可以用于掃碼支付與刷卡支付,有測(cè)過(guò)的朋友請(qǐng)告訴我一下(微信號(hào):helei543345

mch_id: 商戶(hù)號(hào),申請(qǐng)商戶(hù)號(hào)成功后,騰訊給你發(fā)的郵件里邊有

md5_key: 在商戶(hù)中心自己設(shè)置的api密鑰,主要用來(lái)簽名支付數(shù)據(jù)

sign_type: 簽名方式,當(dāng)前微信支持HMAC-SHA256和MD5,默認(rèn)使用 MD5

app_cert_pem: 從apiclient_cert.p12中導(dǎo)出證書(shū)部分的文件,為pem格式,請(qǐng)妥善保管不要泄漏和被他人復(fù)制

app_key_pem: 從apiclient_key.pem中導(dǎo)出密鑰部分的文件,為pem格式

關(guān)于 app_cert_pemapp_key_pem 的詳情請(qǐng)看這里 : https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=4_3

limit_pay no_credit--指定不能使用信用卡支付 ,當(dāng)前微信僅這一個(gè)參數(shù),設(shè)置了,支付時(shí),用戶(hù)無(wú)法使用信用卡

fee_type: 貨幣類(lèi)型,默認(rèn)是人民幣,其他可選值看這里:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=4_2

notify_url 異步接收微信支付結(jié)果通知的回調(diào)地址,通知url必須為外網(wǎng)可訪(fǎng)問(wèn)的url,不能攜帶參數(shù)。

redirect_url: 只有在使用h5支付時(shí),才需要設(shè)置,也可以選擇不設(shè)置。用來(lái)控制在h5中支付成功后,跳轉(zhuǎn)的頁(yè)面。

return_raw 是否返回微信的原始數(shù)據(jù),默認(rèn)為false,建議設(shè)置為true

  • 該參數(shù)如果設(shè)置為 false,sdk內(nèi)部會(huì)映射一些key,并且把微信的金額處理為元
  • 如果參數(shù)值為 true ,則只對(duì)異步數(shù)據(jù)進(jìn)行簽名檢查,檢查通過(guò),返回一個(gè)數(shù)據(jù)類(lèi)型的數(shù)據(jù)(微信原始為xml),其中包含的key是微信本身的,并且金額相關(guān)的單位都是分

微信的配置文件相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,只是它的帳號(hào)體系有點(diǎn)多,大家在使用時(shí),根據(jù)自己使用不同支付,讀取不同配置,來(lái)完成相互間的切換。

另外,如果還需要轉(zhuǎn)賬或者發(fā)紅包,請(qǐng)?jiān)O(shè)置以下圖中的信息。


image

今天晚上公司部署新項(xiàng)目,在等待過(guò)程中把微信的配置文檔搞定。

個(gè)人博客主頁(yè)

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

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

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