支付系统

支付系统

线上日志权限,携私钥登录

ssh -i /Users/qa/Desktop/jump/.ssh/id_rsa.pub [email protected]

分支:dev_buke_new

简要:支付系统,布克新品项目 主要涉及接口 live/pay-live和live/pay-verify两个接口

详细:服务端需要注意的几个点(涉及susuan_server_new项目, 支付项目,退款项目)

1.业务susuan_server_new项目,准备好product(ProductID不能重复),和product detail等数据信息

2.App在发起支付后,我们的Pay项目会调用业务方susuan_server_new问询product信息

具体接口为:http://xxxx.knowbox.cn/student/product/query-products

Post请求方式,参数有 token,channel,product_ids传输格式为json

3.然后,Pay项目会走支付流程,并完成支付,最后会回调业务方susuan_server_new的接口,通知业务方解锁商品更新用户状态

具体回调接口为:http://xxxx.knowbox.cn/common/payment/pay-callback

post请求方式,参数有token,user_id,type,product_ids,action,bill_id 传输格式为json

4, 退款的时候,对于布克新品需求,是业务方主动发起退款请求,调用我们的退款接口,

然后走退款流程,流程走完,我们会回调业务方susuan_server_new进行商品状态和用户状态的更新

#presell

PS_PRESELL_REDIS_AUTH                 = 1

PS_PRESELL_REDIS_HOST_0               = ip

PS_PRESELL_REDIS_PORT_0               = 6379

PS_PRESELL_REDIS_DATABASE_0           = 12

 

PS_PRESELL_REDIS_HOST_1               = ip

PS_PRESELL_REDIS_PORT_1               = 6379

PS_PRESELL_REDIS_DATABASE_1           = 12

 

 

redis-cli -h 10.9.106.44 -p 6379

布克新品删除列表缓存

del presell:productListCache

详情页缓存

del presell:productDetailCache_501

定时脚本

cd /data/beta/mall1&& /opt/php7/bin/php yii check-order/check-order

 

策略:当天第一次访问的时候生成缓存 存入redis的时候 设置的失效时间是 次日00:00:00据当天时间的秒数。也就是说 一过23:59:59缓存就失效了。类似于存一个失效的秒数,过了这个时间缓存就自动删了

布克新品预览环境

 

支付回调是支付API调用业务API,A写好接口供B调用

/purchase/pay-callback-student/pay-callback

/purchase/pay-callback-student/product-list

支付的环境 客户端  预览和线上是一个证书  测试是单独证书

 

预览环境

sudo vim /opt/openresty/nginx-prew/conf/knowbox-conf-prew/preshark.knowbox.cn.conf

测试环境Nginx

布克新项目Nginx配置地址

ip

/opt/openresty/nginx/conf/knowbox-conf-test/qa.knowbox.cn.conf

Nginx目录位置

/data/log/nginx/shark

 

后端测试环境和预览环境ng机器一致在ip

测试环境后端Nginx

/opt/openresty/nginx/conf/knowbox-conf-test

家长端betassapinew.knowbox.cn.conf

把https  443指向9001这样测试环境就不需要后端配置端口号了

支付系统

这样项目env配置时候后端不用端口号了

支付系统

前端测试环境个预览环境ng机器一致,在机器上ip

sudo vim /data/ngx.conf/pre.fe.knowbox.cn.7001

测试环境前端 Nginx

cd /data/ngx.conf

测试  sudo vim beta.wxweb.conf   把443指向前端域名,由于前端wxweb没有端口号,root只需要配置为FE代码路径

支付系统

预览 sudo vim beta.ssweb.conf

 

http://knowapp.b0.upaiyun.com/ss/images/activity/banner/180105_b_booknew.jpg

预览配置 https://xx.knowbox.cn:7001/kickstarter/dist/preview/product-list?hideTitleBar=true   改成production  

线上配置 https://xx.knowbox.cn/kickstarter/dist/production/product-list?hideTitleBar=true

ULB IP待DBA提供

支付回调的时候  orderid传值为0,knowbox_pay_charge 的description存值为空

支付成功后,发送短信待验证

注意:需要DBA手动拷贝线上shark根目录下psservice/libs/kmsclient的Config.php到线上patriarc根目录下的/psservice/libs/kmsclient,将最后一行修改为 public static $kmsSource = "patriarch";

在当前目录则为./

sudo cp /data/www/shark/shark1/psservice/libs/kmsclient/Config.php ./

支付系统

 

关于banner项目测试

API和FE代码都部到线上后,但线上没有配置banner。可以在后台把banner的链接地址改为线上https://xx.knowbox.cn/kickstarter/dist/production/product-list?hideTitleBar=true(切记不要申请上线)预览环境可以看到预览和线上的banner

然后去Charles里把线上包的域名指到预览环境,出现banner后,点击banner,把banner拉下来,再关闭Charles域名指向。再次点击banner请求后端API即为请求线上。这样就可以提前看线上还未配置的banner了,从页面测试

由于测试、预览环境机器均为单台,并未用负载均衡。线上为多台机器,故此使用负载均衡ULB,用户请求支付域名为https,支付回调业务API,走内网(因为走外网公网慢,跨机房慢),优先走内网,由于多台机器,走ULB转发,用http协议,走内网

sudo vim /opt/openresty/nginx/conf/knowbox-conf/susuan_nginx.conf

knowbox-conf是线上,这个是在测试机器不起作用,RD代码项目 knowbox-ngx-lua 分支 dev_parent_circle会部署到此目录下

prew是预览环境

Stress是压测环境

test是测试环境   测试环境修改ng要此目录下修改20套环境