Amp

退货业务京东快递上门收件业务接口-在线下单

∥☆過路亽.° 提交于 2020-10-22 19:40:16
近几年来,我国电子商务交易规模越来越大,线上订单越来越多,退换货的情况也越来越常见。退换货环节是线上购物过程中的重要一环,也是体现电商平台与商家服务水平的重要方面。同时,退换货也是电商平台、商家与消费者之间最容易产生纠纷的环节。为了保障这个环节的服务,电商平台推出了退换货上门取件业务。退换货上门取件是为买家在退货时,提供的一种省心,便捷的物流服务,当买家购买的商品在申请换货或者发起维权投诉时需要退货,不需要自己邮寄商品,由物流公司安排快递员上门取件的一项服务。 目录 1.接口功能说明 2.完成前期准备工作 3.API接口 4.请求参数(Headers) 5.请求参数(Body) 6.请求参数(示例) 7.返回参数(Return) 8.返回报文(示例) 9.完整请求的报文(URL编码) 10.解码后的报文 11.分步讲解(C#版本) 12.关于签名 1. 接口功能说明 此接口用于通知快递公司快递员上门揽件。 2.完成前期准备工作 去快递鸟官网免费注册一个账号 免费获得一个apiKey(接口权限验证需要) 完成实名认证流程 订购一个免费套餐 3.API接口 测试调用地址: http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json 正式调用地址: http://api.kdniao.com

PHP获取用户真实IP的正确姿势

﹥>﹥吖頭↗ 提交于 2020-10-22 17:46:18
目录 1.前言 2.打印服务器在不同状态下的捕捉情况 2.1百度CDN打印结果 2.2阿里CDN打印结果 2.3七云牛CDN打印结果 3.根据不同需求选择不同方案 1.前言 PHP如何获取用户的真实IP地址?如果看过一些入门教科书的朋友可能会记得,书上告诉我们使用如下方法获取: $_SERVER["REMOTE_ADDR"] ; 但是现实真的是如此吗?并不是,因为随着互联网的发展,我们访问的途径变得多种多样,用户可以使用代理IP代理访问、也可能通过CDN加速访问,那么你所获取的IP可能只是代理或者最近一个节点的IP,而不是真实用户的IP。 2.打印服务器在不同状态下的捕捉情况 根据下面的代码,我们可以得到各个CDN加速后的IP结果: <?php print_r($_SERVER); ?> 2.1百度CDN打印结果 Array ( [HTTP_X_FORWARDED_FOR] => 119.164.27.53,123.234.0.103,27.221.124.94 [HTTP_X_REAL_IP] => 119.164.27.53 [REMOTE_ADDR] => 150.138.138.169 ......... ) 2.2阿里CDN打印结果 Array ( [HTTP_ALI_CDN_REAL_IP] => 119.164.27.53 [HTTP_X_FORWARDED_FOR]

使用代码片段的正确姿势,打造高效的vscode开发环境

跟風遠走 提交于 2020-10-22 15:56:16
全文3928字,阅读时间 10分钟,未来节约时间 15分钟/每天 代码片段(code snippet) 相信大家都或多或少有接触过。 在完成一个项目以后,往往都会写出许多有价值的代码,或是绞尽脑汁解决的难题,或是灵光一现的小技巧,又或是需要给组里的人分享经验,分享代码。 对于我而言,我有时确实会把足够酷炫或者自豪的项目封装成一个包(例如npm或者是nuget等等),但面对粒度再小一点的一个function甚至是一行代码就不太合适了。 我自己遇到困难的几个场景 electron-builder 打包后,为了修改electron国内镜像下载地址,往往会配置vue.config.js。这个地址很长一段时间都不会变,包括这个配置的结构等主要内容其实都不太会变,每次要写的时候都会忘记,在找了好一会之前写的代码后,终于找到了之前的配置文件,复制-粘贴 我的vue项目中会使用vuetify,而vuetify的各种配置都会写在一起,说复杂也不复杂,但我没有记,每次都是用到的时候打开官网然后,复制-粘贴 还有一些其他配置文件,例如 axios,echart,signalr等配置文件,大部分情况下都不需要修改,直接,复制-粘贴 .... 为了能够减少以上重复工作,提高效率,我也尝试过不少办法 制作项目模板,使用vue init 来初始化项目 使用 github gist 在vscode 中使用code

Nccloud1909集成方案说明

限于喜欢 提交于 2020-10-22 01:42:16
Nccloud单点手册 wangmo 2020年07月01日 本方案适用于version:Nccloud1909+,不支持1903,1903有其他实现方案; 功能支持:单点登陆,单点审批,单点联查 单点登陆 1:业务系统向Nccloud注册accesstoken 请求参数 : usercode = wangmo 模拟地址 : http : //localhost/service/registAccessToken?usercode=wangmo 成功响应 :{ "status" : "1" , "result" :{ "accesstoken" : "20011b791553a8338e4b9a7c8936111c" }} 失败响应 :{ "status" : "0" , "result" : "nccloud系统中没有usercode对应的用户,请联系管理员同步人员并生成用户!" } 2:业务系统携带Token访问Nccloud登陆页面 请求地址 : http : //localhost/nccloud/resources/uap/rbac/thirdpartylogin/main/index.html?accesstoken=20011b791553a8338e4b9a7c8936111c 成功响应 : 将直接转到首页http : //localhost/nccloud

迅睿CMS DIY字段:选择多个用户组

生来就可爱ヽ(ⅴ<●) 提交于 2020-10-21 21:05:23
用于选择用户组使用的需求示例 1、新建程序文件,用来显示图中的用户组:/config/myfield/group.php <?php /** * 示例文件 * 变量介绍 * $name 字段英文名称 * $field 字段信息(数组) * $value 当前字段的值 * \Phpcmf\Service::C() 表示控制器方法 * \Phpcmf\Service::M() 表示模型方法 * 表单的name值格式是:data[$name] */ $code = ''; // 最终输出的代码 $data = \Phpcmf\Service::C()->member_cache['group']; $data[0] = [ 'name' => '游客' ]; $value = dr_string2array($value); foreach ($data as $v => $n) { $s = is_array($value) && in_array($v, $value) ? ' checked' : ''; $kj = '<input type="checkbox" name="data['.$name.'][]" value="'.$v.'" '.$s.' '.$attr.' />'; $code.= '<label class="mt-checkbox mt-checkbox

玩转云上数据湖,解析Serverless 技术落地

折月煮酒 提交于 2020-10-21 20:11:28
导读: 本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地。Serverless是DLI将计算能力服务化和产品化关键技术,与传统IAAS和PAAS技术不同,DLI运用Serverless技术向客户提供了一种高效易用易扩展的计算框架,使得客户更能聚焦业务,避免牵扯集群运维的细枝末节。本文将从以下几点解读Serverless技术: 1. serverless计算简介 2. 云计算架构演进—从IaaS到Serverless 3. Serverless计算应用场景与潜力 4. DLI Serverless 计算 serverless计算简介 图 Serverless与传统云计算比较 无服务器计算(Serverless)是一种新型的云计算范式,在业界也被称为FaaS(函数即服务),它有别于传统的IaaS(基础设施即服务)和PaaS(平台即服务)技术,旨在帮助开发者摆脱减少甚至免去底层基础架构管理上的诸多烦扰。Serverless计算服务允许客户在不构建一个复杂的基础设施的情况下开发,运行和管理应用程序。在2014年10月先由 http:// hook.io 提供给业界,接着AWS推出Lambda,2016年Google Cloud Functions,Microsoft Azure Functions对外提供服务

消息队列01-Rabbitmq安装和管理界面简介

ぃ、小莉子 提交于 2020-10-21 17:23:33
消息队列教程目录链接 https://my.oschina.net/u/4039389?tab=newest&catalogId=7011524 docker 安装Rabbitmq docker pull rabbitmq:3-management docker run -d --hostname my-rabbit --name rabbit15672 -v /home/rabbitmq/15672:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:3-management 进入管理界面 http://127.0.0.1:15672 username:admin password:admin Overview Name:broker名称 File descriptors:broker打开的文件描述符和限制。 Socket descriptors:broker管理的网络套接字数量和限制。当限制被耗尽时,RabbitMQ将停止接受新的网络连接。 Erlang processes:erlang启动的进程数。 Memory:当前broker占用的内存。 Disk space:当前broker占用的硬盘。

什么是mixin,为什么它们有用?

こ雲淡風輕ζ 提交于 2020-10-21 06:30:42
问题: In " Programming Python ", Mark Lutz mentions "mixins". 在“ Python编程 ”中,Mark Lutz提到了“ mixins”。 I'm from a C/C++/C# background and I have not heard the term before. 我来自C / C ++ / C#背景,以前没有听说过这个词。 What is a mixin? 什么是mixin? Reading between the lines of this example (which I've linked to because it's quite long), I'm presuming it's a case of using multiple inheritance to extend a class as opposed to 'proper' subclassing. 在 本示例 的两行之间进行阅读(我已经链接到它,因为它很长),我认为这是使用多重继承来扩展类而不是“适当的”子类的一种情况。 Is this right? 这是正确的吗? Why would I want to do that rather than put the new functionality into a subclass?

程序员的聚会

时间秒杀一切 提交于 2020-10-17 19:55:45
下车后,第一个来迎接我的,是祢豆车站前的小花园,大片的彩菊在晨风中摇曳生姿,像是爵士酒吧里微醺的优雅舞者。 祢豆是我出生的城市,大学毕业后,每年只有过年才会回家,这次也不例外。 在车站对面的街口有一条横幅,上书“欢迎回家”四个红底白字。横幅下,是一家米粉铺,店外的露天桌椅上,坐满了吃饭的年轻人,各色的行李箱就立在身旁,想必他们也是从远方归乡的务工者。米粉铺的老板我不认识,只见他一只手煮粉调码,另一只手托着手机刷短视频,动作娴熟且精确。他是个很年轻的小伙子,外表看起来与店外食客别无二致。 走出车站时手机震了几下,是大苏打来了电话。 “我来接你了,你在哪呢?” “刚到站,我现在在车站对面的街口,这里有家米粉店。” “好,我马上到。” 大苏是我高中时最好的朋友,现在更成为了同行,我俩都是程序员。高中毕业后,大家都分散到全国,乃至全世界去求学,毕业后也鲜有人留在老家。只有大苏是例外,他没有像其他人一样奔向北上广深纽约东京,而是在完成学业后回到了老家。 几分钟后,一辆崭新的白色雅阁停在我面前,透过降下的车窗,我看到大苏坐在驾驶室嘻嘻地笑着。“兄弟!快上来,这里不能久停的!”他说。我迅速拉开车门坐入副驾,把公务包丢在后座上,嘴里说着好久不见。 车子缓缓地开出了这个街区,向着我家进发。大苏显得很兴奋,他表示我们兄弟两人这么久不见,今晚上要好好地喝一顿,说着递给我一支烟,自己也点上了一支。他说

用Nginx实现接口慢查询并可示化展示TOP 20

北战南征 提交于 2020-10-17 00:03:18
相信很多小伙伴都见过一些商业产品中的url接口响应时间,实时汇总显示功能。可以理解为web接口的慢查询,与sql的慢查询有异曲同工之妙,但是想做却无从入手不知道怎么实现此功能,所以今天就教大家如何实现用grafana+nginx+mysql来实现此功能。 0x0 其实nginx本身就带有接口响应时间的功能,只不过还需要改造下,比如说单独记录超过1000ms(1秒)的响应,并写入数据库中。要注意的是并不建议大家将记录直接写入数据库中,因为数据库有时会成为nginx的负担,间接写入即可。需要简单修改下log模块,涉及文件ngx_http_log_module.c 通常位于nginx-1.17.9/src/http/modules/ngx_http_log_module.c 大约838行, 找到ngx_http_log_request_time函数并修改如下: static u_char * ngx_http_log_request_time(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) { ngx_time_t *tp; ngx_msec_int_t ms; time_t t = time(NULL); struct tm *loc_time = localtime(&t); tp = ngx_timeofday(