php後台開發民生支付

2021-07-22 08:26:35 字數 2577 閱讀 4961

民生支付開發

這裡先列出民生銀行的支付流程(分本行卡和他行卡,這裡只測試用本行卡):

1) 客戶登入商戶**,選擇商品進行支付。

2) 商戶按照民生付閘道器支付介面標準組裝訂單,將訂單資料加密簽名,通過瀏覽器傳送到民生付支付閘道器。

3) 民生付閘道器做解密驗籤,如果客戶卡為他行卡,跳轉第三方支付頁面。

4) 客戶在第三方支付頁面選擇支付方式,輸入相關交易資訊,進行支付操作。

5) 第三方收到支付請求後,完成該筆支付訂單的交易處理。

6) 支付成功後,第三方將支付結果密文以後臺方式非同步通知民生付閘道器,民生付閘道器處理支付結果,同時將支付結果密文以後臺非同步通知方式**商戶系統。

7) 在第三方支付成功結果頁面,客戶可選擇返回商戶。

8) 如果客戶選擇返回商戶,支付結果密文以url重定向方式跳轉回民生付閘道器,民生付閘道器處理支付結果,同時將支付結果密文以url重定向方式跳轉回商戶頁面。

我這用的是yii框架,在對訂單支付型別進行判斷後,將資料處理傳遞給model層處理,

switch($payment)
前段選**生支付後呼叫這裡判斷為chinapay,進入model層;

二:對訂單資訊進行組裝,加密並post給民生閘道器:

民生訂單加密要求:

商戶端按照支付介面的要求組裝訂單資料,訂單資料如下:1.0.0|123456789110|10.01|rmb|20150425|152436|13015|商戶名稱|11313|交易詳細內容|hh|1|01|豆子|備註(具體內容看民生給的文件,有詳細介紹)

加密**:

public function 

chinapaypost($orders)else

//將訂單資訊post給民生

$html_text

= $this

->

chinapaysubmit($orderinfo,'post','確定');

echo

$html_text;

}

關於裡面初始化和加密方法呼叫(詳細民生給的文件有,我這邊做大概說明):

在初始化lajp之前,我們先要在自己的測試環境中配置lajp(這裡就不解釋了,兄弟們):

初始化:$this->init();

public function 

init()

catch(exception $e)

"; }

}

釋義:在配置檔案config/demo.properties中的格式

privatefile=testdata/sm2/09025.sm2

privatefilepassword=123123

peercertfile=testdata/sm2/bank.cer

這裡面的是安全證書,密碼(和自己配置的lajp檔案一致,並保證是最新的),可能報錯原因:我自己遇到了證書過期的情況,會導致後面無法對資料加密

2.對訂單加密:

$orderinfo 

= $this

->

signandencryptmessage($orderinfo);

加密方法:

public function 

signandencryptmessage($orderinfo)

catch(exception $e)

"; }

}

注意:在對訂單資訊加密前一定要走這一步base64_encode($orderinfo),將訂單資訊轉化成base64位的;

3.將訂單資訊post給民生付閘道器(get方式也可以,但是要先對訂單資訊urlencode);

//將訂單訊息以post方式傳遞給民生付閘道器

public function

chinapaysubmit($orderinfo,$method,$button_name)

我上面的$payurl就是民生付閘道器位址,文件內有。。

注意:加密後的資料,通過url方式傳送到民生支付閘道器。

傳送方式同時支援get方式和post方式,推薦使用post方式。

post方式:商戶可將加密資料資訊包含在form中,以post方式傳送,form表單名為「orderinfo」。

get方式:首先必須將加密資料做一下urlencode,然後將urlencode後的密文資料跟在url後面,以「?orderinfo=密文」get方式傳送。

例如:其中requestscope.decrydata為商戶上送的訂單資料加密後的密文。

如果到這裡都順利的話,就能跳轉民生支付了

再就是簡訊驗證,照文件上面的做吧。

四:支付成功後,民生付會以get方式將支付結果推送到指定的url,這個url是包含在先前的訂單裡的($notifyurl),接下來就是對訂單的狀態判斷,資料庫寫入之類的,我就不再贅述了,

希望對大家有幫助,不足之處請指教。

PHP後台 接入支付寶

我使用php主要是為客戶端做後台使用,並不會做前端網頁。這兩天因為公司專案需要,必須接入支付功能,而支付寶當然首當其衝,考慮迭代版本的需要,首先接入支付寶功能,其他的支付功能以後迭代版本的時候加入。但是就是這麼乙個支付功能幾乎把我整的欲仙欲死 首先理一下邏輯 1.服務端生成訂單簽名 2.客戶端 io...

php後台開發(一)hello world

開發環境為ubuntu 12.04,選擇linux apache php的開發環境 安裝 apache2 sudo apt get install apache2安裝php sudo apt get install php5安裝mysql 注意安裝過程中,需要輸入root密碼 sudo apt ge...

php後台開發(一)hello world

開發環境為ubuntu 12.04,選擇linux apache php的開發環境 安裝 apache2 sudo apt get install apache2安裝php sudo apt get install php5安裝mysql 注意安裝過程中,需要輸入root密碼 sudo apt ge...