文档章节

根据订单号来将URL长链接生成短链接

wenjin312
 wenjin312
发布于 2017/07/04 19:04
字数 258
阅读 6
收藏 0
点赞 0
评论 0
PHP
/**
   * 根据订单号,业务标识进行跳转
   * 该方法只做跳转,不做具体业务处理
   */
  public function redirectOrder(){
      $data = I('get.data');
      if(!preg_match('/[A-Za-z0-9]{10}/i',$data)) {
          //TODO 这里应该显示错误页面
          $this->response(createResult(403,"非法单号"),'json');
          return;
      }

      // 截取业务类型
      $businessType = substr($data, 0, 1);
$order_s = make_bit10(substr("$data",3,7));
      // 还原单号
      $orderId = substr($data,1,2);
if(strlen($order_s) == 12){
   $orderId = 'B' . substr($orderId,0,2) . make_bit10(substr("$data",3,7)) . 'd';
}else{
   $orderId = 'B' . substr($orderId,0,2) .'0'.make_bit10(substr("$data",3,7)) . 'd';
}
$order = M('order');
$map['order_id'] = $orderId;
$company_id = $order->where($map)->getField('company_id');
$company = M('company');
$C_map['company_id'] = $company_id;
$company_name = $company->where($C_map)->getField('company_name');

      // 校验订单是否存在
      $count = M('order')->where(['order_id' => $orderId])->count();

      if (!$count) {
          //TODO 这里应该显示错误页面
          $this->response(createResult(404,"订单不存在"),'json');
          return;
      }

      // 根据不同的业务类型跳转到不同的页面
      switch ($businessType){
   case R:
      header("location: http://fb.cube-y.com/wx/index.php?pages=login&act=login&Idcard=courier&company_name=$company_name&order_id=$orderId");
      break;
      }
  }
在thinkphp的.htacess文件加上这段,限制订单号为10位
#RewriteRule ^[A-Za-z0-9]{10}$ /index.php/RestAPI/Common/redirectOrder/data/$1 [L]

© 著作权归作者所有

共有 人打赏支持
wenjin312
粉丝 1
博文 13
码字总数 596
作品 0
广州
短网址(short URL)系统的原理及其实现

背景 提供一个短址服务 你有没有发现,我们的任务中出现长 URL 就会比较麻烦?如果有一个短址生成器就好了。虽然市面上有很多,但是我们可以重复发明一个轮子,利用这个机会尝试一下简单的 ...

琯琯
01/20
0
0
微博短链接的生成算法(Java版本)

微博短链接的生成算法(Java 版本) 最近看到微博的短链接真是很火啊,新浪、腾讯、搜狐等微博网站都加入了短链接的功能。之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太...

java-苦苦甜甜
2012/11/22
0
3
URL短链接服务--Shortme

使用Golang编写的URL短链接服务。当前版本1.2.0。 Shortme的特点 相同的URL对应成不同的短链接 提供了short和expand的api。expand的api通过HTTP的307状态码进行重定向 黑名单。避免一些不是特...

linuxfs
2016/04/21
1K
1
微博URL短网址生成算法原理及(java版、php版实现实例)

短网址(Short URL),顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代...

小老傅
2014/08/20
0
5
微博短链接解析ShortUrl【PHP代码实现】

一、背景简介 短网址应用已经在各大微博上开始流行了起来。例如QQ微博的url.cn,新浪的sinaurl.cn等。我们在QQ微博上发布网址的时候,微博会自动判别网址,并将其转换,例如:http://url.cn...

幸福的猫猫
2013/03/07
0
1
微信支付-微信红包Java版本

扫描可以关注查看其它接口的demo效果 https://zb.oschina.net/market/opus/1325c0ab3ac1f4b6 代码链接,可根据需求出方案与代码。 需要有认证的公众号,且开通了微信支付,商户平台且开通了现...

小帅帅丶
2016/08/22
6.7K
16
微信开发__入门

0.作者前言 本文针对人群是有一定开发基础的人员,可以比较快的帮助你了解和学习微信开发. 其次是本文作者本次书写,全部采用的是个人的订阅号,假如是正常的开发流程,可能会存在不同,请读者注意...

mr_lp
2016/05/31
0
0
支付宝python接口

支付宝 alipay python接口,支持担保交易,即时到帐和自动发货接口 介绍 alipay_python 是支付宝接口的python版本,提供了担保交易,即时到帐和自动发货的接口。 fork自这个版本 alipay. 增加...

okidogi
2012/07/03
7.3K
0
支付宝快捷支付模型

其实题目有点大,主要讨论的是手机客户端怎么接入支付宝的快捷支付呢。 支付宝的快捷支付的相关文档可以看这个帖子:支付宝接口资料下载(2012.11.23更新) 三方主要是客户端,业务服务端,支...

王二狗子11
01/07
0
0
ArcGIS Online Web制图之总体流程

第一手信息,来自ArcGIS云计算新浪微博http://weibo.com/arcgiscloud Web制图是免费的,每一个人都可以使用,而且没有任何时间和数量的限制。从这点看来,ArcGIS Online是一个大众性质的网站...

长平狐
2012/11/28
132
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
45分钟前
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部