Fecshop 支付方式

2018-05-25 14:20 更新

Fecshop 支付方式

對(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',

                
                ],
            ],
        ],

        
    ]
];

設(shè)置paypal

默認(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)境的證書:

1. 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即可

2. 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的賬戶密碼,證書,簽名等。

開(kāi)發(fā)新支付 - 配置

當(dāng)您想要開(kāi)發(fā)一個(gè)新的支付方式的時(shí)候,您需要做一個(gè)跳轉(zhuǎn)到第三方支付平臺(tái)的準(zhǔn)備頁(yè)面(payment start url) 和一個(gè)支付成功返回的頁(yè)面url。

1.1 支付跳轉(zhuǎn)前的工作

在支付頁(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)。

1.2 支付成功跳轉(zhuǎn)后的工作

支付成功后,用戶通過(guò)點(diǎn)擊,或者由第三方支付平臺(tái)自動(dòng),跳轉(zhuǎn)到網(wǎng)站中,也就是上面配置的 success_redirect_url,該url對(duì)應(yīng)的內(nèi)容顯示用戶支付成功后的信息

1.3 在第三方支付平臺(tái)取消訂單

如果用戶在支付平臺(tái)點(diǎn)擊取消訂單,那么就會(huì)跳轉(zhuǎn)到fecshop的取消訂單的鏈接, 也就是cancel_url對(duì)應(yīng)的鏈接

1.4 IPN消息url

當(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

開(kāi)發(fā)新支付 - 功能實(shí)現(xiàn)

上面填寫的4個(gè)url,您可以擴(kuò)展一個(gè)新模塊實(shí)現(xiàn)url對(duì)應(yīng)的功能即可。 二開(kāi)支付,知道原理后,還是蠻容易的。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)