支付系统
线上日志权限,携私钥登录
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套环境