8Kpay稳定支付接口2

8Kpay稳定支付接口2_第1张图片

请点击此处输入图片描述

​作为开放式的B/S架构程序,无论所属电商,金融,机械制造,企业OA,ERP,CRM,CMS等等行业或系统中,第三方支付以及银联支付的业务一定是客户关心所在,也是保证客户系统盈利运营的一个重要保障。通常这种B2C或者C2C系统的开发,商户用户所关注的支付平台大多离不开“阿里支付宝,快钱,腾讯财付通,易宝支付这种第三方支付平台以及中国银联UnionPay....等等”这些方式。

最近某项目中涉及到支付的模块与涉及流程,在此和大家分享一下。

1,名词释义

商户网站:比如淘宝,聚美,唯品会这种B2C/C2C的网站及后台的管理系统,统称为商户网站;主要负责对买家订单数据的封装,加密,

及支付平台回调的订单处理。

支付平台:我们需要开发的支付平台,支付接口,支付模拟的Servlet,暴露出来的WebService接口url等;主要负责对买家请求来的

加密后的订单数据进行解密,构造请求的URL,拼接参数,对Sign进行加密,对支付机构异步(或同步)请求回调的数据

进行封装,解密回传给商户网站。

支付机构:比如阿里支付宝,快钱,腾讯财付通,易宝支付这种第三方支付平台等支付机构。

Sign:支付机构为商户分配的一把“密钥”与”合作者ID“同时分配,用做调用Base64,MD5等加密算法在加密解密时的一种私钥,通常

与此相关联的还有signType,就是加密方式。

回调:对上次请求端request中的url或指定的url进行http请求,或https请求

支付平台请求,响应,及回调流程图:

8Kpay稳定支付接口2_第2张图片

请点击此处输入图片描述

2,业务流设计(本文只介绍alipay的即时到账接口:"create_direct_pay_by_user")

2.1  商户网站对数据封装加密,调用支付接口:

2.1.1)商户网站后台对买家的订单进行封装,插入商户网站db中的订单表(比如:xxx_order);

PayReturnVovo = new PayReturnVo();

vo.setOrderId("kuaiqian00232");

vo.setOrderAmount("20");

vo.setOrderTime("20140504121020");

vo.setProductName("3M网线,送水晶头");

vo.setProductId("2213229319378");

vo.setProductNum("2");

vo.setPayType("00");*/

//   把模拟的表单数据转成Json

StringorderJson= PaymentJsonUtil.beanToJson(vo);

//   通过db获取商家key密钥

Stringkey = dao.getKeyByUserId(userId);

//   根据key使用base64加密算法对订单信息进行加密

StringSignedJson = CryptUtil.encryptBase64Des(orderJson, key);

2.1.2)于此同时调用dao层查询买家用户平台账户余额,并进行锁表:在SQL的select后加入 forupdate wait n(最好

为1-5秒,此处的 数值为httpclient请求超时时长)为防止订单被多用户修改。

你可能感兴趣的:(8Kpay稳定支付接口2)