pingxx付款流程
来源:互联网 发布:淘宝卖家好评回复 编辑:程序博客网 时间:2024/04/28 02:26
在themes/js/libs/questiondetails.js中,旁观者用户点击语音后进入identityService.saveUserToPayMent接口。首先声明一个charge对象,当price大于0时,拿到服务器IP地址,
定义一个map charge,在charge中放入order_no为orderid,orderid为一个随机字符串;amount为订单金额price(此处的amount单位为分,所以这里要乘100);channel为支付渠道(ping++文档中详细解释);currency中放的是支付币种(ping++文档中详细记载);client_ip放入ip(主机地址);subject和body中存放的是title和description(这两个可以根据需要改变);调用接口PPPPayMent.charge(onlineuser.getOpenid(),charge)
此处填写API key和应用id
Pingpp.apiKey=apiKey;(pingpp 管理平台对应的API key)
Charge resultCharge =null;
app.put("id",appId);(pingpp 管理平台对应的应用ID)
chargeMap.put("app",app);
判断付款方式(此处为扫码登录)
String channelType = chargeParam.getChannel();
if(UtilDataDic.PAY_CHANNEL_WX_PUB_QR.equals(channelType)){
Map<String, Object> extra = new HashMap<String, Object>();
extra.put("product_id",chargeParam.getObject());
chargeMap.put("extra",extra);
}
将以上数据作为参数,resultCharge = Charge.create(chargeMap);
当前端传入role为0时,说明该操作室偷听。若price大于零,则说明该用户身价或者偷听价格不为零,之后判断charges是否为空,则说明charges创建成功。payment表中插入一条支付数据。若price为0,则表明该问答为免费偷听。
若为2说明该操作为提问。则表明现在用户是提问者,若price大于零,则说明该用户身价或者偷听价格不为零,向live表中插入一条数据。若price为0,则表明被提问者身价为0,向payment和live表中添加数据。
处理完数据后接口返回charges以供前端使用。
前端调用框架时,会经过ping++平台请求通过web-xml进入WebHooksServlet
<servlet-mapping>
<servlet-name>pingxxCharge</servlet-name>
<url-pattern>/pingxxCharge</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>pingxxCharge</servlet-name>
<servlet-class>com.sas.pdg.mrr.servlet.WebHooksServlet</servlet-class>
</servlet>
用来检测支付状态。首先获取http请求中body中内容,再通过解析异步数据,获取event类型。
charge.succeeded为支付成功,判断eventData.get("paid").toString())是否为null,若不为null,根据orderid(eventData.get("id"))查询payment表中是否存在支付信息,若发现支付信息,则更改支付状态。之后判断该条支付信息的type是否为1,若为1说明该条支付信息是提问,更新用户提问数,并更改live表中对应提问的deleted值,表明支付成功,触发触发器,开启定时任务。
refund.succeeded为退款成功,判断eventData.get("succeed")是否为空,若不为空则读取gbtags.properties配置文件(为读取模板消息模板),调用is接口通过orderid(eventData.get("id"))在payment表中查询支付信息,若查到的支付信息不为空,则更改支付状态,更改成功后发送模板消息。
transfer.succeeded为转账成功,更改数据库信息,并发送模板消息。
注意:上述三种操作,若在response中放200信息码表示服务器正常处理了请求;若操作失败,则在response中放入500信息码,表示服务器出错。
- pingxx付款流程
- 付款流程的付款单
- Magento付款流程的简化【7】
- 【干货分享】流程DEMO-付款申请单
- 付款
- 支付宝即时到帐付款/退款流程
- 2017最新苹果开发者账号注册、付款流程图解【图文并茂】
- R12 AP 修正分配行错误的已经付款的发票的处理流程
- 修改zen-cart下单和付款流程以防止漏单
- ecshop 二次开发 订单模块流程分析和修改,修改确认后未付款可以取消订单
- 修改zen-cart下单和付款流程以防止漏单(2)
- 付款方式
- 付款方式
- 发票、付款
- 电脑付款
- 付款方式
- 付款问题
- 付款操作
- js判断移动端APP是否安装
- 【mysql】关于innodb中MVCC的一些理解
- java多线程四:Callable接口解析
- JDBC,JdbcTemplate,JPA,Hibernate之间的关系
- 潜入js
- pingxx付款流程
- MySQL 数据类型
- VAAI和VASA以及vVOL
- 二叉排序树的判断(hackerrank) java
- windows下mongodb安装与使用整理
- TCP/IP详解--数据链路层
- mvcc机制
- 集合问题汇总
- BZOJ3351 [ioi2009]Regions