支付宝外部商家接口中的return_url和notify_url

return_url:
1、同步返回接口,作为参数传递给支付宝
2、用户付款成功后,从支付宝跳转到这个页面
3、在这个页面中加入相关业务处理,比如更新记录,标记付款成功信息。
4、需要对支付宝传递过来的签名进行认证。
5、用来展现成功付款信息给前台付款用户。
6、支付宝那边只返回一次。
notify_url:
1、异步通知接口,作为参数传递给支付宝。
2、如果不传递,则不通知。
3、相关业务逻辑应该和return_url中相同。
4、返回字符串”success”或者”fail”,不能带有任何HTML信息。
5、付款成功后就通知一次,如果不成功,1分钟、3分钟、10分钟、半个小时。。。后再通知,直到返回success。
6、过期时间是48小时,如果48小时内都通知不成功,那么就不再通知。
掉单:支付宝付款成功,但是没有收到成功的返回信息。
如果不传递notify_url,掉单率在20-30%,准备和alipay对账吧。
notify_url可以保证99.99%的通知成功率。

Discuz! X Showmessage 函数参数详解

* 显示提示信息
* @param $message - 提示信息,可中文也可以是 lang_message.php 中的数组 key 值
* @param $url_forward - 提示后跳转的 url
* @param $values - 提示信息中可替换的变量值 array(key => value ...) 形式
* @param $extraparam - 扩展参数 array(key => value ...) 形式
*    跳转控制
       header        header跳转
       timeout        定时跳转
       refreshtime    自定义跳转时间
       closetime    自定义关闭时间,限于 msgtype = 2
       locationtime    自定义跳转时间,限于 msgtype = 2
   内容控制
       alert        alert 图标样式 right/info/error
       return        显示请返回
       redirectmsg    下载时用的提示信息,当跳转时显示的信息样式
                    0:如果您的浏览器没有自动跳转,请点击此链接
                    1:如果 n 秒后下载仍未开始,请点击此链接
       msgtype        信息样式
                    1:非 Ajax
                    2:Ajax 弹出框
                    3:Ajax 只显示信息文本
       showmsg        显示信息文本
       showdialog    关闭原弹出框显示 showDialog 信息,限于 msgtype = 2
       login        未登录时显示登录链接
   Ajax 控制
       handle        执行 js 回调函数

function showmessage($message, $url_forward = ”, $values = array(), $extraparam = array(), $custom = 0)

html常用转义符

html常用转义符:

    空格Nonbreaking space

! ! — 惊叹号Exclamation mark

” " " 双引号Quotation mark

# # — 数字标志Number sign

$ $ — 美元标志Dollar sign

% % — 百分号Percent sign

& & & Ampersand

‘ ' — 单引号Apostrophe

( ( — 小括号左边部分Left parenthesis

) ) — 小括号右边部分Right parenthesis

[ [ — 中括号左边部分Left square bracket

] ] — 中括号右边部分Right square bracket

{ { — 大括号左边部分Left curly brace

} } — 大括号右边部分Right curly brace

 

* * — 星号Asterisk

+ + — 加号Plus sign

, , — 逗号Comma

– - — 连字号Hyphen

. . — 句号Period (fullstop)

/ / — 斜杠Solidus (slash)

\ \ — 反斜杠Reverse solidus (backslash)

0 0 — 数字0 Digit 0

1 1 — 数字1 Digit 1

2 2 — 数字2 Digit 2

3 3 — 数字3 Digit 3

4 4 — 数字4 Digit 4

5 5 — 数字5 Digit 5

6 6 — 数字6 Digit 6

7 7 — 数字7 Digit 7

8 8 — 数字8 Digit 8

9 9 — 数字9 Digit 9

: : — 冒号Colon

; &#59; — 分号Semicolon

< &#60; &lt; 小于号Less than

= &#61; — 等于符号Equals sign

> &#62; &gt; 大于号Greater than

? &#63; — 问号Question mark

@ &#64; — Commercial at

| &#124; — 竖线Vertical bar

~ &#126; — Tilde

? &#161; &iexcl; Inverted exclamation

a &#97; — 小写a Small a

b &#98; — 小写b Small b

c &#99; — 小写c Small c

d &#100; — 小写d Small d

e &#101; — 小写e Small e

f &#102; — 小写f Small f

g &#103; — 小写g Small g

h &#104; — 小写h Small h

i &#105; — 小写i Small i

j &#106; — 小写j Small j

k &#107; — 小写k Small k

l &#108; — 小写l Small l

m &#109; — 小写m Small m

n &#110; — 小写n Small n

o &#111; — 小写o Small o

p &#112; — 小写p Small p

q &#113; — 小写q Small q

r &#114; — 小写r Small r

s &#115; — 小写s Small s

t &#116; — 小写t Small t

u &#117; — 小写u Small u

v &#118; — 小写v Small v

w &#119; — 小写w Small w

x &#120; — 小写x Small x

y &#121; — 小写y Small y

z &#122; — 小写z Small z

A &#65; — 大写A Capital A

B &#66; — 大写B Capital B

C &#67; — 大写C Capital C

D &#68; — 大写D Capital D

E &#69; — 大写E Capital E

F &#70; — 大写F Capital F

G &#71; — 大写G Capital G

H &#72; — 大写H Capital H

I &#73; — 大写J Capital I

J &#74; — 大写K Capital J

K &#75; — 大写L Capital K

L &#76; — 大写K Capital L

M &#77; — 大写M Capital M

N &#78; — 大写N Capital N

O &#79; — 大写O Capital O

P &#80; — 大写P Capital P

Q &#81; — 大写Q Capital Q

R &#82; — 大写R Capital R

S &#83; — 大写S Capital S

T &#84; — 大写T Capital T

U &#85; — 大写U Capital U

V &#86; — 大写V Capital V

W &#87; — 大写W Capital W

X &#88; — 大写X Capital X

Y &#89; — 大写Y Capital Y

Z &#90; — 大写Z Capital Z

 

localhost,127.0.0.1和本机ip三者的区别

 

localhost 127.0.0.1 本机IP
网络 不联网 不联网 联网
传输 不使用网卡,不受防火墙和网卡限制 网卡传输,受防火墙和网卡限制 网卡传输 ,受防火墙和网卡限制
访问 本机访问 本机访问 本机或外部访问

通过本机host文件,windows自动将localhost解析为127.0.0.1,可以修改。

 

Mac OS X中MacPorts安装和使用

Mac下面除了用dmg、pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样。MacPorts就像apt-get、yum一样,可以快速安装些软件。

下面将MacPorts的安装和使用方法记录在这里以备查。

访问官方网站http://www.macports.org/install.php,这里提供有dmg安装和源码安装两种方式,dmg就多说了,下载MacPorts-1.9.2-10.6-SnowLeopard.dmg,下一步下一步安装即可。

通过Source安装MacPorts

wget http://distfiles.macports.org/MacPorts/MacPorts-1.9.2.tar.gz
tar zxvf MacPorts-1.9.2.tar.gz
cd MacPorts-1.9.2
./configure && make && sudo make install
cd ../
rm -rf MacPorts-1.9.2*

然后将/opt/local/bin和/opt/local/sbin添加到$PATH搜索路径中
编辑/etc/profile文件中,加上
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH
MacPorts使用
更新ports tree和MacPorts版本,强烈推荐第一次运行的时候使用-v参数,显示详细的更新过程。
sudo port -v selfupdate

搜索索引中的软件
port search name

安装新软件
sudo port install name

卸载软件
sudo port uninstall name

查看有更新的软件以及版本
port outdated

升级可以更新的软件
sudo port upgrade outdated

Eclipse的插件需要subclipse需要JavaHL,下面通过MacPorts来安装
sudo port install subversion-javahlbindings

Mac OS X Shell 下的10条命令

使用Mac OS X系统必须了解的10条命令
1、ssh   这颗小小的“宝石”包含于 Mac OS X 的每个版本,其开发的最初目的只是为了取代 rsh/rlogin,现在却成为 Linux/Unix(包括 Mac OS X)社区不可缺少的一部分。openssh 的主要作用就是安全的远程管理。打开系统预置,点击“共享”,勾选“远程登录”,即可启动 Mac OS X 的内置 SSH 服务。现在假设你想连接你不在身边的电脑,可以借助类似 PuTTY(Windows 平台)的客户端,或者在 Mac OS X 的终端窗口中输入“ssh”连接你 Mac 的 IP 地址。以你的用户名和密码登录之后,你便获得了 Mac OS X 命令行的完整操作权。除此之外,openssh 还有许许多多应用,有些可是相当了不起的。我就很喜欢用 ssh 搭个 SOCKS 代理,这样我在公共地点也能安全上网冲浪。在Mac 上使用 ssh 的更多技巧,可以浏览本页!
2、top   top 是另一个长期为 Linux/Unix 社区使用的经典工具,使用它只需打开终端输入“top”。眨眼之间,你就会看见一个满是文字的窗口——每一个正在你的 Mac 上运行的进程都会被列出。如果我的 Mac 速度变慢,top 是让我知道什么正在发生的首选。点击 这里,查看 top 的完整概述。
3、lsbom   如果你偶然在某个 Mac 站点(比如 OS X Daily)发现一件够酷够新的软件,忍不住想安装,而你又犹豫不决,那么 lsbom 对你大有好处。通过它,你可以测试 Mac OS X 安装包(.pkg)的内容,并且清楚了解究竟会有什么被塞进你心爱的文件系统。要使用 lsbom,你需要启动终端,并进入 .pkg 文件所在的目录。如果你的安装包形式是 .dmg,可能需要把其中的 .pkg 文件拷贝到桌面上,然后进入 Desktop 目录。一旦确认 .pkg 文件的位置,输入“lsbom .pkg/Contents/Archive.bom> | more”。哇!你所看见的就是新程序将会安装的完整文件列表。
4、say   这个命令是 Mac OS X 独一无二的,比其他任何一个都更有趣。打开终端输入“say hello”试试吧!
5、softwareupdate   softwareupdate 命令提供了一种安装 Apple 软件更新方便快捷的方法。打开终端,输入“softwareupdate -i -a”,你的 Mac 就会安装所有可以获得的更新项。如果你只想安装“推荐”更新项,那么就输入“softwareupdate -i -r”。
6、ipconfig   要说获取你 Mac IP 地址最快、最简单的方法,绝对是“ipconfig”,只需打开终端输入“ipconfig”。你能看到许多信息,包括你网卡的 MAC 地址。我喜欢输入“ipconfig | grep inet”仅回馈我计算机的 IP 信息。你也可以通过输入“ifconfig en0 down”来禁止一个网络连接(这里举了“en0”的例子);如果希望恢复,那么就输入“ipconfig en0 up”。这比使用系统预置要快上不少哦!
7、lipo   lipo 是一个在 Mac OS X 中处理通用程序(Universal Binaries)的工具。现在发售或者提供下载的许多(几乎所有)程序都打上了“Universal”标志,意味着它们同时具有 PowerPC 和 Intel 芯片能够处理的代码。不过既然你可能不在意其中的一个,你就能够使用 lipo 来给你的程序“瘦身”。比如你想让“便笺”应用程序只包含 Intel(i386)的代码: cd /Applications lipo Stickies.app/Contents/MacOS/Stickies -thin i386 -output Stickies.app/Contents/MacOS/Stickies.i386 cd Stickies.app/Contents/MacOS/ rm Stickies mv Stickies.i386 Stickies
8、screencapture   screencapture 提供了较 command-shift-3 更高级的抓屏手段。要使用它,打开终端,试着输入“screencapture -iW ~/Desktop/screen.jpg”,鼠标会变成等待点击的相机图标,点击后就在你的桌面上创建一个名为“screen.jpg”的文件,内容就 是你点击的任何窗口的抓屏。当然你也能够通过输入“screencapture -S ~/Desktop/screen.jpg”来抓取整个屏幕。如果你还想与众不同,你还可以输入“screencapture -ic”来抓取屏幕的一部分。现在就抓上一些图片发给 osxdaily 吧,我们会喜欢它们的!
9 & 10、Fink 和 DarwinPorts   如果你已经习惯于 OS X 命令行工具的基本应用,现在就是让你的终端接触更大开源世界的时候了。借助于 DarwinPorts 或者 Fink,你能够在你的计算机上下载、安装成百上千的免费开源软件。我发现 Darwinports 开始注意到一些较少见的开源计划,而 Fink 似乎更为坚实。你可以同时安装两者,只要你的确知道你在干什么,但是一般我会建议你只选择其中一个。初学者应该试试 Fink,因为它会附带一个名为“Fink Commander”的程序,你只需从中选择一个程序来下载。看看它们各自的官方网站吧:DarwinPorts (已更名为 MacPorts)官方网站;Fink 的官方网站。

mac 上安装wget

mac上没有预装wget,为了使用方便,下面介绍如何在mac上安装wget

1 首先,从官方网站上下载wget,http://ftp.gnu.org/pub/gnu/wget/wget-1.9.1.tar.gz

2 解压之后 ./configure

3 sudo make install 完毕!

记得先安装xcode

Mac 下配置vi的语法高亮 显示行号 自动缩进

一、假如没有~/.vimrc ,先创建

二、切换到插入模式,把下面的设置直接拷贝进去:

set autoindent
set cindent
set modeline
set ruler
set showcmd
set nu
set showfulltag
set showmode
set smartcase
set smartindent
set imcmdline
set previewwindow
set hlsearch
syntax on

linux 性能分析常用命令汇总

CPU性能分析工具:

vmstat
ps
sar
time
strace
pstree
top

Memory(内存)性能分析工具:
vmstat
strace
top
ipcs
ipcrm
cat /proc/meminfo
cat /proc/slabinfo
cat /proc/ /maps

I/O性能分析工具:
vmstat
ipstat
repquota
quotacheck

Network性能分析工具:
ifconfig
ethereal
tethereal
iptraf
iwconfig
nfsstat
mrtg
ntop
netstat
cat /proc/sys/net

Linux 性能调优工具
当通过上述工具及命令,我们发现了应用的性能瓶颈以后,我们可以通过以下工具或者命令来进行性能的调整。
CPU性能调优工具:
nice / renic
sysctl
Memory性能调优工具:
swapon
ulimit
sysctl
I/O性能调优工具:
edquota
quoton
sysctl
boot line:
elevator=

Network性能调优工具:
ifconfig
iwconfig
sysctl

CPU性能调整
当一个系统的CPU空闲时间或者等待时间小于5%时,我们就可以认为系统的CPU资源耗尽,我们应该对CPU进行性能调整。
CPU性能调整方法:
编辑/proc/sys/kernel/中的文件,修改内核参数。

acct hotplug panic real-root-dev
cad_pid modprobe panic_on_oops sem
cap-bound msgmax pid_max shmall
core_pattern msgmnb powersave-nap shmmax
core_uses_pid msgmni print-fatal-signals shmmni
ctrl-alt-del ngroups_max printk suid_dumpable
domainname osrelease printk_ratelimit sysrq
exec-shield ostype printk_ratelimit_burst tainted
exec-shield-randomize overflowgid pty threads-max
hostname overflowuid random version

一般可能需要编辑的是pid_max和threads-max,如下:

# sysctl kernel.threads-max

kernel.threads-max = 8192

# sysctl kernel.threads-max=10000

kernel.threads-max = 10000

Memory性能调整

当一个应用系统的内存资源出现下面的情况时,我们认为需要进行Memory性能调整:

页面频繁换进换出;

缺少非活动页。

例如在使用vmstat命令时发现,memory的cache使用率非常低,而swap的si或者so则有比较高的数据值时,应该警惕内存的性能问题。

Memory性能调整方法:

1。关闭非核心的服务进程。

相关的方法请见CPU性能调整部分。

2。修改/proc/sys/vm/下的系统参数。

# ls /proc/sys/vm/

block_dump laptop_mode nr_pdflush_threads

dirty_background_ratio legacy_va_layout overcommit_memory

dirty_expire_centisecs lower_zone_protection overcommit_ratio

dirty_ratio max_map_count page-cluster

dirty_writeback_centisecs min_free_kbytes swappiness

hugetlb_shm_group nr_hugepages vfs_cache_pressure

# sysctl vm.min_free_kbytes

vm.min_free_kbytes = 1024

# sysctl -w vm.min_free_kbytes=2508

vm.min_free_kbytes = 2508

# cat /etc/sysctl.conf

vm.min_free_kbytes=2058

3。配置系统的swap交换分区等于或者2倍于物理内存。

# free

total used free shared buffers cached

Mem: 987656 970240 17416 0 63324 742400

-/+ buffers/cache: 164516 823140

Swap: 1998840 150272 1848568

I/O性能调整

系统出现以下情况时,我们认为该系统存在I/O性能问题:

系统等待I/O的时间超过50%;

一个设备的平均队列长度大于5。

我们可以通过诸如vmstat等命令,查看CPU的wa等待时间,以得到系统是否存在I/O性能问题的准确信息。

I/O性能调整方法:

1。修改I/O调度算法。

Linux已知的I/O调试算法有4种:

deadline – Deadline I/O scheduler

as – Anticipatory I/O scheduler

cfq – Complete Fair Queuing scheduler

noop – Noop I/O scheduler

可以编辑/etc/yaboot.conf文件修改参数elevator得到。

# vi /etc/yaboot.conf

image=/vmlinuz-2.6.9-11.EL

label=linux

read-only

initrd=/initrd-2.6.9-11.EL.img

root=/dev/VolGroup00/LogVol00

append=”elevator=cfq rhgb quiet”

2。文件系统调整。

对于文件系统的调整,有几个公认的准则:

将I/O负载相对平均的分配到所有可用的磁盘上;

选择合适的文件系统,Linux内核支持reiserfs、ext2、ext3、jfs、xfs等文件系统;

# mkfs -t reiserfs -j /dev/sdc1

文件系统即使在建立后,本身也可以通过命令调优;

tune2fs (ext2/ext3)

reiserfstune (reiserfs)

jfs_tune (jfs)

3。文件系统Mount时可加入选项noatime、nodiratime。

# vi /etc/fstab

/dev/sdb1 /backup reiserfs acl, user_xattr, noatime, nodiratime 1 1

4。调整块设备的READAHEAD,调大RA值。

[root@overflowuid ~]# blockdev –report

RO RA SSZ BSZ StartSec Size Device

rw 256 512 4096 0 71096640 /dev/sdb

rw 256 512 4096 32 71094240 /dev/sdb1

[root@overflowuid ~]# blockdev –setra 2048 /dev/sdb1

[root@overflowuid ~]# blockdev –report

RO RA SSZ BSZ StartSec Size Device

rw 2048 512 4096 0 71096640 /dev/sdb

rw 2048 512 4096 32 71094240 /dev/sdb1

Network性能调整

一个应用系统出现如下情况时,我们认为该系统存在网络性能问题:

网络接口的吞吐量小于期望值;

出现大量的丢包现象;

出现大量的冲突现象。

Network性能调整方法:

1。调整网卡的参数。

# ethtool eth0

Settings for eth0:

Supported ports: [ TP ]

Supported link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Supports auto-negotiation: Yes

Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

1000baseT/Full

Advertised auto-negotiation: Yes

Speed: 100Mb/s

Duplex: Half

Port: Twisted Pair

PHYAD: 0

Transceiver: internal

Auto-negotiation: on

Supports Wake-on: d

Wake-on: d

Current message level: 0×00000007 (7)

Link detected: yes

#ethtool -s eth0 duplex full

#ifconfig eth0 mtu 9000 up

2。增加网络缓冲区和包的队列。

# cat /proc/sys/net/ipv4/tcp_mem

196608 262144 393216

# cat /proc/sys/net/core/rmem_default

135168

# cat /proc/sys/net/core/rmem_max

131071

# cat /proc/sys/net/core/wmem_default

135168

# cat /proc/sys/net/core/wmem_max

131071

# cat /proc/sys/net/core/optmem_max

20480

# cat /proc/sys/net/core/netdev_max_backlog

300

# sysctl net.core.rmem_max

net.core.rmem_max = 131071

# sysctl -w net.core.rmem_max=135168

net.core.rmem_max = 135168

3。调整Webserving。

# sysctl net.ipv4.tcp_tw_reuse

net.ipv4.tcp_tw_reuse = 0

# sysctl -w net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_reuse = 1

# sysctl net.ipv4.tcp_tw_recycle

net.ipv4.tcp_tw_recycle = 0

# sysctl -w net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_tw_recycle = 1