對(duì)支付平臺(tái)的配置信息。
Payment支付配置文件:@common/config/fecshop_local_services/Payment.php
配置代碼如下:
return [
'payment' => [
'noRelasePaymentMethod' => 'check_money', # 不需要釋放庫(kù)存的支付方式。譬如貨到付款,在系統(tǒng)中
# pending訂單,如果一段時(shí)間未付款,會(huì)釋放產(chǎn)品庫(kù)存,但是貨到付款類型的訂單不會(huì)釋放,
# 如果需要釋放產(chǎn)品庫(kù)存,客服在后臺(tái)取消訂單即可釋放產(chǎn)品庫(kù)存。
'paymentConfig' => [ # 支付方式配置
'standard' => [ # 標(biāo)準(zhǔn)支付類型:在購(gòu)物車頁(yè)面進(jìn)入下單頁(yè)面,填寫支付信息,然后跳轉(zhuǎn)到第三方支付網(wǎng)站的支付類型。
'check_money' => [ # 貨到付款類型。
'label' => 'Check / Money Order',
//'image' => ['images/mastercard.png','common'] ,# 支付頁(yè)面顯示的圖片。
'supplement' => 'Off-line Money Payments', # 補(bǔ)充信息
'style' => '<style></style>', # 補(bǔ)充css,您可以在這里填寫一些css
'start_url' => '@homeUrl/payment/checkmoney/start', # 點(diǎn)擊按鈕后,跳轉(zhuǎn)的url,在這個(gè)url里面寫支付跳轉(zhuǎn)前的提交信息。
'success_redirect_url' => '@homeUrl/payment/success', # 在支付平臺(tái)支付成功后,返回的頁(yè)面
],
'paypal_standard' => [ # paypal標(biāo)準(zhǔn)支付類型
'label' => 'PayPal Website Payments Standard',
'image' => ['images/paypal_standard.png','common'], # 支付頁(yè)面顯示的圖片。
'supplement' => 'You will be redirected to the PayPal website when you place an order. ', # 補(bǔ)充
# 選擇支付后,進(jìn)入到相應(yīng)支付頁(yè)面的start頁(yè)面。
'start_url' => '@homeUrl/payment/paypal/standard/start',
# 接收IPN消息的頁(yè)面。
'IPN_url' => '@homeUrl/payment/paypal/standard/ipn',
# 在第三方支付成功后,跳轉(zhuǎn)到網(wǎng)站的頁(yè)面
'success_redirect_url' => '@homeUrl/payment/success',
# 進(jìn)入paypal支付頁(yè)面,點(diǎn)擊取消進(jìn)入網(wǎng)站的頁(yè)面。
'cancel_url' => '@homeUrl/payment/paypal/standard/cancel',
# 第三方支付網(wǎng)站的url
'payment_url'=>'https://www.sandbox.paypal.com/cgi-bin/webscr',
# 賬號(hào)
'account'=> 'zqy234api1-facilitator@126.com',
# 密碼
'password'=>'HF4TNTTXUD6YQREH',
# 簽名
'signature'=>'An5ns1Kso7MWUdW4ErQKJJJ4qi4-ANB-xrkMmTHpTszFaUx2v4EHqknV',
],
],
'express' => [ # 在購(gòu)物車頁(yè)面直接跳轉(zhuǎn)到支付平臺(tái),譬如paypal快捷支付方式。
'paypal_express' =>[
'nvp_url' => 'https://api-3t.sandbox.paypal.com/nvp',
'api_url' => 'https://www.sandbox.paypal.com/cgi-bin/webscr',
'account'=> 'zqy234api1-facilitator_api1.126.com',
'password'=>'HF4TNTTXUD6YQREH',
'signature'=>'An5ns1Kso7MWUdW4ErQKJJJ4qi4-ANB-xrkMmTHpTszFaUx2v4EHqknV',
'enable'=> 1,
'label'=>'PayPal Express Payments',
],
],
],
'childService' => [
'paypal' => [
'express_payment_method' => 'paypal_express',
'version' => '109.0',
# 是否使用證書的方式進(jìn)行paypal api對(duì)接(https ssl)
# 如果配置為true,那么必須在crt_file中配置證書地址。
# 默認(rèn)不使用證書驗(yàn)證
'use_local_certs' => false,
'crt_file' => [
'www.paypal.com' =>'@fecshop/services/payment/cert/paypal.crt',
'api-3t.paypal.com' =>'@fecshop/services/payment/cert/api-3tsandboxpaypalcom.crt',
],
],
],
]
];
默認(rèn)是不需要使用證書的,也就是 use_local_certs 設(shè)置為false
如果您為了更加安全,想使用證書的方式,那么設(shè)置 use_local_certs 為true, 下面是詳細(xì)步驟(如果您use_local_certs 設(shè)置為false,則不需要操作下面的步驟):
首先需要下載證書,我本地是沙盒環(huán)境,下載的是沙盒環(huán)境的證書:首先需要下載證書,我本地是沙盒環(huán)境,下載的是沙盒環(huán)境的證書:首先需要下載證書,我本地是沙盒環(huán)境,下載的是沙盒環(huán)境的證書:首先需要下載證書,我本地是沙盒環(huán)境,下載的是沙盒環(huán)境的證書:
www.sandbox.paypal.com
,打開(kāi)火狐瀏覽器訪問(wèn)地址:https://www.sandbox.paypal.com/cgi-bin/webscr, 在火狐瀏覽器下,下載證書的步驟如圖:
將下載的證書,ftp上傳到fecshop,然后修改配置中 crt_file
下面 www.sandbox.paypal.com
對(duì)應(yīng)的值
,譬如下載的證書為wwwsandboxpaypalcom.crt
,ftp上傳到@common/config/wwwsandboxpaypalcom.crt
,
那么將配置中,crt_file
下面 www.sandbox.paypal.com
對(duì)應(yīng)的值改成@common/config/wwwsandboxpaypalcom.crt
即可
api-3t.sandbox.paypal.com
,打開(kāi)火狐瀏覽器訪問(wèn)地址:https://api-3t.sandbox.paypal.com/nvp 后面的步驟參看第一步。
另外注意,沙盒地址和線上paypal地址是不一樣的,您需要去線上地址下載證書
,并上傳,
另外,需要把上面的沙盒地址改成正式地址,也就是去掉地址中的sandbox,
譬如沙盒地址https://api-3t.sandbox.paypal.com/nvp
對(duì)應(yīng)的線上地址為:
https://api-3t.paypal.com/nvp
,然后設(shè)置paypal的賬戶密碼,證書,簽名等。
當(dāng)您想要開(kāi)發(fā)一個(gè)新的支付方式的時(shí)候,您需要做一個(gè)跳轉(zhuǎn)到第三方支付平臺(tái)的準(zhǔn)備頁(yè)面(payment start url) 和一個(gè)支付成功返回的頁(yè)面url。
在支付頁(yè)面,填寫好支付信息后,點(diǎn)擊支付按鈕,fecshop會(huì)先進(jìn)行一系列的處理,
最終生成訂單,將訂單編號(hào)保存到session中,然后跳轉(zhuǎn)到當(dāng)前支付配置對(duì)應(yīng)的
start_url
,譬如上面paypal的start_url
為@homeUrl/payment/paypal/standard/start
(@homeUrl是首頁(yè)url),在這個(gè)url中,需要將訂單中的字段值取出,組合成支付平臺(tái)想要的
數(shù)據(jù)格式,發(fā)送給第三方支付平臺(tái),并進(jìn)行跳轉(zhuǎn)到第三方支付平臺(tái)。
支付成功后,用戶通過(guò)點(diǎn)擊,或者由第三方支付平臺(tái)自動(dòng),跳轉(zhuǎn)到網(wǎng)站中,也就是上面配置的
success_redirect_url
,該url對(duì)應(yīng)的內(nèi)容顯示用戶支付成功后的信息
如果用戶在支付平臺(tái)點(diǎn)擊取消訂單,那么就會(huì)跳轉(zhuǎn)到fecshop的取消訂單的鏈接,
也就是cancel_url
對(duì)應(yīng)的鏈接
當(dāng)用戶支付成功后,支付平臺(tái)會(huì)給fecshop發(fā)送一個(gè)支付成功的消息,fecshop接收到消息
后會(huì)把接收到的參數(shù)傳遞給paypal并進(jìn)行詢問(wèn)是否是paypal發(fā)送的,當(dāng)paypal反饋是,
fecshop會(huì)把訂單支付狀態(tài)改成processing
上面填寫的4個(gè)url,您可以擴(kuò)展一個(gè)新模塊實(shí)現(xiàn)url對(duì)應(yīng)的功能即可。 二開(kāi)支付,知道原理后,還是蠻容易的。
更多建議: