民生支付开发
这里都是在测试环境下进行的,正式情况还需要调试,希望对大家有帮助,不足之处请指教:
这里先列出民生银行的支付流程(分本行卡和他行卡,这里只测试用本行卡):
1) 客户登录商户网站,选择商品进行支付。
2) 商户按照民生付网关支付接口标准组装订单,将订单数据加密签名,通过浏览器发送到民生付支付网关。
3) 民生付网关做解密验签,如果客户卡为他行卡,跳转第三方支付页面。
4) 客户在第三方支付页面选择支付方式,输入相关交易信息,进行支付操作。
5) 第三方收到支付请求后,完成该笔支付订单的交易处理。
6) 支付成功后,第三方将支付结果密文以后台方式异步通知民生付网关,民生付网关处理支付结果,同时将支付结果密文以后台异步通知方式转发商户系统。
7) 在第三方支付成功结果页面,客户可选择返回商户。
8) 如果客户选择返回商户,支付结果密文以URL重定向方式跳转回民生付网关,民生付网关处理支付结果,同时将支付结果密文以URL重定向方式跳转回商户页面。
一:商户登录购物网站后选择商品进行支付,订单信息post或者get方式传送到后台:
我这用的是yii框架,在对订单支付类型进行判断后,将数据处理传递给model层处理,
switch($payment){ case 'alipay': $pay = new WapPay(); //跳转支付页面 $pay->AlipayPost($result); break; case 'malipay': $pay = new WapPay(); //跳转支付页面 $pay->AlipayPost($result); break; case 'wxpay': $url = '/pay/payorder?order_id='.$result['order_id']; header("location:$url"); break; case 'chinapay': $pay = new WapPay(); //跳转支付页面 $pay->ChinaPayPost($result); break; default : break; }前段选择民生支付后调用这里判断为chinapay,进入model层;
二:对订单信息进行组装,加密并post给民生网关:
民生订单加密要求:
商户端按照支付接口的要求组装订单数据,订单数据如下:1.0.0|123456789110|10.01|rmb|20150425|152436|13015|商户名称|11313|http://tongzhi.com|http://tiaozhuan.com||交易详细内容|hh|1|01|豆子|备注(具体内容看民生给的文档,有详细介绍)
加密代码:
public function ChinaPayPost($orders){ //版本 $alipay_config= $this-><