数学英语词汇表

一般词汇

数学 mathematics, maths(BrE), math(AmE)

公理 axiom

定理 theorem

计算 calculation

运算 operation

证明 prove

假设 hypothesis, hypotheses(pl.)

命题 proposition

算术 arithmetic

加 plus(prep.), add(v.), addition(n.)

被加数 augend, summand

加数 addend

和 sum

减 minus(prep.), subtract(v.), subtraction(n.)

被减数 minuend

减数 subtrahend

差 remainder

乘 times(prep.), multiply(v.), multiplication(n.)

被乘数 multiplicand, faciend

乘数 multiplicator

积 product

除 divided by(prep.), divide(v.), division(n.)

被除数 dividend

除数 divisor

商 quotient

等于 equals, isequal to, is equivalent to

大于 is greater than

小于 is lesser than

大于等于 is equal or greater than

小于等于 is equal or lesser than

运算符 operator

数字 digit

数 number

自然数 natural number

整数 integer

小数 decimal

小数点 decimal point

分数 fraction

分子 numerator

分母 denominator

比 ratio

正 positive

负 negative

零 null, zero, nought, nil

十进制 decimal system

二进制 binary system

十六进制 hexadecimal system

权 weight, significance

进位 carry

截尾 truncation

四舍五入 round

下舍入 round down

上舍入 round up

有效数字 significant digit

无效数字 insignificant digit

代数 algebra

公式 formula, formulae(pl.)

单项式 monomial

多项式 polynomial, multinomial

系数 coefficient

未知数 unknown, x-factor, y-factor, z-factor

等式,方程式 equation

一次方程 simple equation

二次方程 quadratic equation

三次方程 cubic equation

四次方程 quartic equation

不等式 inequation

阶乘 factorial

对数 logarithm

指数,幂 exponent

乘方 power

二次方,平方 square

三次方,立方 cube

四次方 the power of four, the fourth power

n次方 the power of n, the nth power

开方 evolution, extraction

二次方根,平方根 square root

三次方根,立方根 cube root

四次方根 the root of four, the fourth root

n次方根 the root of n, the nth root

集合 aggregate

元素 element

空集 void

子集 subset

交集 intersection

并集 union

补集 complement

映射 mapping

函数 function

 

数学英语词汇表[翻译必看]

  • 一般词汇

  • 算术 arithmetic

  • 代数 algebra

  • 几何 geometry

  • 三角 trigonometry

  • 统计 statistics



  • 数学 mathematics, maths(BrE), math(AmE)

  • 公理 axiom

  • 定理 theorem

  • 计算 calculation

  • 运算 operation

  • 证明 prove

  • 假设 hypothesis, hypotheses(pl.)

  • 命题 proposition



  • 加 plus(prep.), add(v.), addition(n.)

  • 被加数 augend, summand

  • 加数 addend

  • 和 sum

  • 减 minus(prep.), subtract(v.), subtraction(n.)

  • 被减数 minuend

  • 减数 subtrahend

  • 差 remainder

  • 乘 times(prep.), multiply(v.), multiplication(n.)

  • 被乘数 multiplicand, faciend

  • 乘数 multiplicator

  • 积 product

  • 除 divided by(prep.), divide(v.), division(n.)

  • 被除数 dividend

  • 除数 divisor

  • 商 quotient

  • 等于 equals, is equal to, is equivalent to

  • 大于 is greater than

  • 小于 is lesser than

  • 大于等于 is equal or greater than

  • 小于等于 is equal or lesser than

  • 运算符 operator

  • 数字 digit

  • 数 number

  • 自然数 natural number

  • 整数 integer

  • 小数 decimal

  • 小数点 decimal point

  • 分数 fraction

  • 分子 numerator

  • 分母 denominator

  • 比 ratio

  • 正 positive

  • 负 negative

  • 零 null, zero, nought, nil

  • 十进制 decimal system

  • 二进制 binary system

  • 十六进制 hexadecimal system

  • 权 weight, significance

  • 进位 carry

  • 截尾 truncation

  • 四舍五入 round

  • 下舍入 round down

  • 上舍入 round up

  • 有效数字 significant digit

  • 无效数字 insignificant digit



  • 公式 formula, formulae(pl.)

  • 单项式 monomial

  • 多项式 polynomial, multinomial

  • 系数 coefficient

  • 未知数 unknown, x-factor, y-factor, z-factor

  • 等式,方程式 equation

  • 一次方程 simple equation

  • 二次方程 quadratic equation

  • 三次方程 cubic equation

  • 四次方程 quartic equation

  • 不等式 inequation

  • 阶乘 factorial

  • 对数 logarithm

  • 指数,幂 exponent

  • 乘方 power

  • 二次方,平方 square

  • 三次方,立方 cube

  • 四次方 the power of four, the fourth power

  • n次方 the power of n, the nth power

  • 开方 evolution, extraction

  • 二次方根,平方根 square root

  • 三次方根,立方根 cube root

  • 四次方根 the root of four, the fourth root

  • n次方根 the root of n, the nth root

  • 集合 aggregate

  • 元素 element

  • 空集 void

  • 子集 subset

  • 交集 intersection

  • 并集 union

  • 补集 complement

  • 映射 mapping

  • 函数 function

  • 定义域 domain, field of definition

  • 值域 range

  • 常量 constant

  • 变量 variable

  • 单调性 monotonicity

  • 奇偶性 parity

  • 周期性 periodicity

  • 图象 image

  • 数列,级数 series

  • 微积分 calculus

  • 微分 differential

  • 导数 derivative

  • 极限 limit

  • 无穷大 infinite(a.) infinity(n.)

  • 无穷小 infinitesimal

  • 积分 integral

  • 定积分 definite integral

  • 不定积分 indefinite integral

  • 有理数 rational number

  • 无理数 irrational number

  • 实数 real number

  • 虚数 imaginary number

  • 复数 complex number

  • 矩阵 matrix

  • 行列式 determinant



  • 点 point

  • 线 line

  • 面 plane

  • 体 solid

  • 线段 segment

  • 射线 radial

  • 平行 parallel

  • 相交 intersect

  • 角 angle

  • 角度 degree

  • 弧度 radian

  • 锐角 acute angle

  • 直角 right angle

  • 钝角 obtuse angle

  • 平角 straight angle

  • 周角 perigon

  • 底 base

  • 边 side

  • 高 height

  • 三角形 triangle

  • 锐角三角形 acute triangle

  • 直角三角形 right triangle

  • 直角边 leg

  • 斜边 hypotenuse

  • 勾股定理 Pythagorean theorem

  • 钝角三角形 obtuse triangle

  • 不等边三角形 scalene triangle

  • 等腰三角形 isosceles triangle

  • 等边三角形 equilateral triangle

  • 四边形 quadrilateral

  • 平行四边形 parallelogram

  • 矩形 rectangle

  • 长 length

  • 宽 width

  • 菱形 rhomb, rhombus, rhombi(pl.), diamond

  • 正方形 square

  • 梯形 trapezoid

  • 直角梯形 right trapezoid

  • 等腰梯形 isosceles trapezoid

  • 五边形 pentagon

  • 六边形 hexagon

  • 七边形 heptagon

  • 八边形 octagon

  • 九边形 enneagon

  • 十边形 decagon

  • 十一边形 hendecagon

  • 十二边形 dodecagon

  • 多边形 polygon

  • 正多边形 equilateral polygon

  • 圆 circle

  • 圆心 centre(BrE), center(AmE)

  • 半径 radius

  • 直径 diameter

  • 圆周率 pi

  • 弧 arc

  • 半圆 semicircle

  • 扇形 sector

  • 环 ring

  • 椭圆 ellipse

  • 圆周 circumference

  • 周长 perimeter

  • 面积 area

  • 轨迹 locus, loca(pl.)

  • 相似 similar

  • 全等 congruent

  • 四面体 tetrahedron

  • 五面体 pentahedron

  • 六面体 hexahedron

  • 平行六面体 parallelepiped

  • 立方体 cube

  • 七面体 heptahedron

  • 八面体 octahedron

  • 九面体 enneahedron

  • 十面体 decahedron

  • 十一面体 hendecahedron

  • 十二面体 dodecahedron

  • 二十面体 icosahedron

  • 多面体 polyhedron

  • 棱锥 pyramid

  • 棱柱 prism

  • 棱台 frustum of a prism

  • 旋转 rotation

  • 轴 axis

  • 圆锥 cone

  • 圆柱 cylinder

  • 圆台 frustum of a cone

  • 球 sphere

  • 半球 hemisphere

  • 底面 undersurface

  • 表面积 surface area

  • 体积 volume

  • 空间 space

  • 坐标系 coordinates

  • 坐标轴 x-axis, y-axis, z-axis

  • 横坐标 x-coordinate

  • 纵坐标 y-coordinate

  • 原点 origin

  • 双曲线 hyperbola

  • 抛物线 parabola



  • 正弦 sine

  • 余弦 cosine

  • 正切 tangent

  • 余切 cotangent

  • 正割 secant

  • 余割 cosecant

  • 反正弦 arc sine

  • 反余弦 arc cosine

  • 反正切 arc tangent

  • 反余切 arc cotangent

  • 反正割 arc secant

  • 反余割 arc cosecant

  • 相位 phase

  • 周期 period

  • 振幅 amplitude

  • 内心 incentre(BrE), incenter(AmE)

  • 外心 excentre(BrE), excenter(AmE)

  • 旁心 escentre(BrE), escenter(AmE)

  • 垂心 orthocentre(BrE), orthocenter(AmE)

  • 重心 barycentre(BrE), barycenter(AmE)

  • 内切圆 inscribed circle

  • 外切圆 circumcircle



  • 平均数 average

  • 加权平均数 weighted average

  • 方差 variance

  • 标准差 root-mean-square deviation, standard deviation

  • 比例 propotion

  • 百分比 percent

  • 百分点 percentage

  • 百分位数 percentile

  • 排列 permutation

  • 组合 combination

  • 概率,或然率 probability

  • 分布 distribution

  • 正态分布 normal distribution

  • 非正态分布 abnormal distribution

  • 图表 graph

  • 条形统计图 bar graph

  • 柱形统计图 histogram

  • 折线统计图 broken line graph

  • 曲线统计图 curve diagram

  • 扇形统计图 pie diagram



wave equation

波动方程

tangental equation

切线方程

quartic equation

四次方程式

quadratic equation

二次方程式

magnitude equation

【天】星等差

linear equation

一次方程式

irreducible equation

不可约方程

integral equation

积分方程

indicial equation

【数】指数方程

indeterminate equation

不定方程

数学专业英语

Lesson 2
Mathematics as a Language of Science

assert vt. 断言;坚持 主张;维护 表明

qualitative adj. 性质的;定性的

quantitative adj. 量的;数量的;定量的;与数量有关的

astronomy n. 天文学

postulate  n. 假定, 基本条件, 基本原理 vt. 要求, 假定 vi. 要求

hypothetical  adj. 假设的, 假定的,爱猜想的

deduction  n.减除, 扣除, 减除额, 推论, 演绎

induction n. 归纳;归纳法;归纳所得之结论

verification n. 验证;证实

correlate   vt. 使相互关联 vi. 和…相关

discard  vt. 丢弃, 抛弃 v. 放弃

discredit  n. 不信任;失信

consistent  adj. 一致的, 调和的, 坚固的, [数、统]相容的

inadequacy  n. 不充分 ,不适当,不适合,不足额

conic, conical  adj 圆锥的;圆锥形的

ellipse n. 椭圆, 椭圆形 ellipt (n.)

hyperbolic adj. 双曲线的 hyperbola (n.)

parabolic adj. 用寓言表达的: 抛物线的,像抛物线的 parabola (n.)

algebraic adj. 代数的, 关于代数学的

mineralogy n. 矿物学

refraction  n. 折光, 折射

stimulus  n. 刺激物, 促进因素, 刺激, 刺激

impetus  n. 冲力 推动力;刺激



Lesson 3

Axioms, definitions and Theorems

axiom   n. [数]公理

definition  n. 阐明;确定 定义;界说

extravagant   adj. 奢侈的, 浪费的, 过分的, 放纵的

collinear   adj. 在同一直线上的, 同线的

convex  adj. 凸出的;凸面的

segment  n. 部分;片段;节, 弓形;圆缺;弧形, 线段

conswquently   adv. 从而, 因此

in terms of   adv. 根据, 按照, 用…的话, 在…方面

pretense   n. 主张, 要求, 伪称, 借口, 自称



Lesson 4

Geometry and Geometrical terms



term  n. 学期, 期限, 期间, 条款, 条件, 术语

triangle  n. [数]三角形, 三人一组, 三角关系

parallelogram  n. 平行四边形

straight angle   n. [数]平角

right angle  n. 直角

acute angle   n. 锐角

obtuse angle  n.  钝角

reflex angle  n. 优角

rectilinear  adj 直线的;由直线组成的;循直线进行的

isosceles triangle  n.  等腰三角形

equilateral triangle  n.  等边三角形

right triangle  n. 直角三角形

obtuse triangle  n. 钝角三角形

acute triangle   n. 锐角三角形

equiangular triangle   n.  正三角形,等角三角形

hypotenuse  n. (直角三角形的)斜边

circle   圆

center  中心;中央;圆心

diameter   n. 直径

radius  n.  半径, 范围, 辐射光线, 有效航程, 范围, 界限

circumference   n.  圆周, 周围



Lesson 5

The Method of Limits



limit   n. 限度,极限,极点

infinite  adj. 无限的;无穷的

infinitesimal   adj. 无穷小的, 极小的, 无限小的

calculus   n. 微积分学, 结石

exemplify   vt. 例证, 例示, 作为…例子

inscribe   v. 记下

polygon  n. [数]多角形, 多边形

diminish   v. (使)减少, (使)变小

curvilinear  adj 曲线的, 由曲线组成的

intuition  n. 直觉, 直觉的知识

integral  n. [数学] 积分, 完整, 部分

defective   adj. 有缺陷的, (智商或行为有)欠缺的

differential coefficient    微分系数

arithmetical  adj. 算术的, 算术上的

convergence   n. 集中, 收敛

criterion   n. (批评判断的)标准, 准据, 规范

sequence    n. 次序, 顺序, 序列

irrational numbers  n. [数]无理数

domain  ,定义域

contradiction  矛盾

reversal   n. 颠倒, 反转, 反向, 逆转, 撤销



Lesson 6

Function



continuous variable  连续变量;[连续变数]

variation  变分, 变化

interval  区间

independent variable  自变量

dependent variable   应变量

rectangular coordinate   直角坐标

abscissa  n. 〈数〉横坐标

ordinate   n. [数]纵线, 纵座标

gradient   adj. 倾斜的  n. 梯度, 倾斜度, 坡度

slope    n. 斜坡, 斜面, 倾斜 v. (使)顺斜



Lesson 7

Differential and Integral calculus

differential   adj. 微分的  n. 微分 (differentiation)

Integral   n. [数学] 积分, 完整, 部分 (integration)

calculus   n. 微积分学, 结石

interrelation   n.  相互关系

trigonometry  n. 三角法

exponential   adj. 指数的, 幂数的

logarithm  n. [数] 对数

derivative  n. 导数;微商

tangent  n. 切线, [数]正切

counterclockwise   adj. 反时针方向的  adv. 反时针方向 (clockwise)

definite integral  定积分

approximation  n. 接近, 走近, [数]近似值

culminate   v. 达到顶点

mean  n. 平均数, 中间, 中庸

differential  equation   微分方程

extreme value   n. 极值

multiple integral  多重积分

double integral

line integral

functional analysis  泛函分析



Lesson 8 The Concept of Cardinal Number (I)

cardinal number  n. 基数(如: 1, 2, 3, … 有别于序数)

denumerable  adj. 可数的

aggregate   n. 合计, 总计, 集合体

adj. 合计的, 集合的, 聚合的

v. 聚集, 集合, 合计

purport   n. 主旨 v. 声称

fancier   n. 空想家, 培育动物(或植物)的行家, 爱好者

sniff    v. 用力吸, 嗅, 闻到, 发觉, 轻视, 用力吸气

n. 吸, 闻, 吸气声, 嗤之以鼻

scheme   n. 安排, 配置, 计划, 阴谋, 方案, 图解, 摘要

v. 计划, 设计, 图谋, 策划, * n.(计算数学) 方法,格式



superior   n. 长者, 高手, 上级

adj. 较高的, 上级的, 上好的, 出众的, 高傲的

cumbersome   adj. 讨厌的, 麻烦的, 笨重的

instruction   n. 指示, 用法说明(书), 教育, 指导, 指令

drastically  adv. 激烈地, 彻底地

conservation   守衡律

quadrature   n. 求积, 求积分

interpolation  n. 插值

extrapolation   n. [数]外推法, 推断

internal point    内点

identical  adj. 同一的, 同样的

generalized solution   广义解

functional   泛函

hydrodynamics  流体力学,水动力学

divergence  发散(性),梯度,发散量

play an important (fundamental … ) role   起着重要的(…)作用

integro-interpolation method  积分插值法

Variational method  变分方法

comparatively   adv. 比较地, 相当地

deficiency   n. 缺乏, 不足

fictive   adj. 虚构的, 想象上的, 虚伪的

self-adjoint (nonself-adjoint)   自治的,自伴的,自共轭的

finite element method   有限元法

spline approximation  样条逼近

Particles-in-the-Cell  网格质点法

herald   n. 使者, 传令官, 通报者, 先驱, 预兆

vt. 预报, 宣布, 传达, 欢呼

advection  n. 水平对流

phenomenological   adj. 现象学的, 现象的

fluctuation   n. 波动, 起伏

optimism   n. 乐观, 乐观主义

pessimism   n. 悲观, 悲观主义

unjustified  adj 未被证明其正确的

mean-square   均方

dispersion   n. [数] 离差, 差量

Polynomial   n adj. [数]多项式的

interpolation  插值

arithmetic   n. 算术, 算法

rounding errors  舍入误差

multiple   n. 倍数, 若干

subjective   adj. 主观的, 个人的

objective  adj. 客观的,

outcome   n. 结果, 成果

pattern   n. 样品

toss   v. 投, 掷

exhaust   vt. 用尽, 耗尽, 抽完, 使精疲力尽

divisible   adj. 可分的

dice, die   n. 骰子

assign  vt. 分配, 指派

attach   vt. 缚上, 系上, 贴上

v. 配属, 隶属于

pitfall    n. 缺陷

chairperson  主席



mechanics  n. (用作单数)机械学、力学, (用作复数)技巧, 结构



statics   n. [物]静力学

dynamics   n. 动力学

adequately  adv. 充分地

celestial   adj. 天上的

macroscopic   adj. 肉眼可见的, 巨观的

classical field theory  经典场理论

rigit  adj. 刚硬的, 刚性的, 严格的

elastic  adj. 弹性的

plastic  n. 可塑的,塑性的,塑料的

quantum   n. 量, 额, [物] 量子, 量子论

inception   n. 起初, 获得学位

pertain   v. 适合, 属于

gravitation  n. 地心吸力, 引力作用

tide   n. 潮, 潮汐, 潮流, 趋势

monumental   adj. 纪念碑的, 纪念物的, 不朽的, 非常的

encompass  v. 包围, 环绕, 包含或包括某事物

ingredient   n. 成分, 因素

acquainted      adj. 有知识的, 知晓的



synonymous  adj. 同义的

configuration  n. 构造, 结构, 配置, 外形

reference   n. 提及, 涉及, 参考, 参考书目

inertia   n. 惯性, 惯量

attribute  特性

momentum   n. 动量

proportional   adj. 比例的, 成比例的, 相称的, 均衡的

designate  指明

negligible   adj. 可以忽略的, 不予重视的

projectile  n. 射弹 adj. 发射的

ballistics   n. 弹道学, 发射学

intractable   adj. 难处理的

{Mechanics of a Particle

in consequence of   adv. 由于的…缘故

exert   vt. 尽(力), 施加(压力等), 努力

v. 发挥, 竭尽全力, 尽

galaxy   n. 星系, 银河, 一群显赫的人, 一系列光彩夺目的东

furnish    vt. 供应, 提供, 装备, 布置

v. 供给

torque    n. 扭矩, 转矩

moment   力矩的

friction  摩擦

dissipation   n. 消散, 分散, 挥霍, 浪费, 消遣, 放荡, 狂饮

infer   v. 推断





Hooke s Law and Its Consequences



elasticity   n. 弹力, 弹性

constitutive   adj. 构成的, 制定的

atomistic   adj. 原子论的

crack   n. 裂缝, 噼啪声

v. (使)破裂, 裂纹, (使)爆裂

continuum mechanics  n. 连续介质力学

superposition   n. 重叠, 重合, 叠合

strain   n. 过度的疲劳, 紧张, 张力, 应变

vt. 扭伤, 损伤

v. 拉紧, 扯紧, (使)紧张, 尽力

thermodynamics   n. [物] 热力学

reckon   vt. 计算, 总计, 估计, 猜想

vi. 数, 计算, 估计, 依赖, 料想



lesson 20



strength 强度

load 载荷

empirical 以经验为依据的

member 构件

isolated 孤立的

segment 部分、段、节

stress 应力

strain 应变

tension 拉伸

shear 剪切

bend 弯曲

torsion 扭转、扭力

insofar 在……范围

cohesive 内聚性的

tensile 拉力、张力

stiffness 硬度

furnish 供给



Lesson 23 Fluid Mechanics



eruption 喷发、爆发

turbulent 湍流

laminar 层流

isothermal 等温

isotropic 各向同性

prevalent 普遍的、流行的

tornado 旋风、飓风

eddy 旋涡

viscosity 粘性、粘度

nonviscous 无粘性的

rotation 旋转



adiabatic  绝热的

reversible 可逆的

isentropic 等熵的

instant   瞬时的

streamline 流线

stream tube 流管

tangential 切线的

incompressible 不可压缩的

resultant 合成的,组合的

downstream 下游的,顺流的

elbow 弯管,肘

similitude 相似性

hydraulic 水力的,水力学的

predominante 占主导地位

spillway (河或水坝的)放水道,泄洪道

prototype 原型,样板



Lesson 24 Mechanical Vibration

repetitive 重复的,反复的

periodic 周期的,定期的

tidal 潮的,像潮的

stationary 固定的,不动的

vibratory 振动的,摆动的

propagation 传播

couple  v .连接,连合

acoustic 听觉的,声学的

annoyance 烦恼,困惑

adjacent 接近的,邻近的

damp 阻尼,衰减

restore 复职,归还

neutral 平衡

exciting force 激励力

resonant adj. 共振的,谐振的

stiffness 刚度,刚性

proportionality 成比例地

inclusion 包含,包括

magnitude 数值,大小

substantially adv. 实质上的

perturb 干扰,扰乱

resonance n. 共振

vibratory adj. 振动的, 可知的

perceptible 可见的,可知的

adudible 听得见的,可闻的

foregoing 前述的

impulsive 冲击的

shock 冲击

Fourier series 傅里叶级数

excitation 激发,激励

discrete 分离,离散的

contend with 向…作斗争

compressor 压气机

fatigue 疲劳

perceptible 可见的,可知觉的

shredder 切菜器

disposal 处理

urban 都市的

metropolitan 大都市的

at-grade 在同一水平面上

elevated 高架的

guideway 导轨



Lesson 25 A prefect to the Continuum Mechanics

preface 序言

continuum连续 pl. continuua

rigid body 刚体

contemporary 当代的,同时期的

widespread 分布广的, 普及的

accommodate 容纳,使适应

medium 介质

plasticity 塑性

residual 剩余的,残留的

creep 蠕变,爬行,塑性变形

aging 老化

polymeric聚合(物)的

sandy 沙的,沙质的

aubterranean 地下的,隐藏的

essence 精髓,本质

thermodynamics 热力学

self-similar 自相似

expedient 方便的

sonsolidate 把…联合为一体,统一

justify 证明…有理

radically 根本地,本质上

deliberate 从容不迫的,深思熟虑



Lesson 33 what is a computer

Attribute v. 赋予

medieval 中世纪的

astronomer 天文学家

Mars 火星

resemble vt. 像,相似

tedious adj. 冗长乏味的

pulp 浆状物,果肉

filter vt.过滤

underlying adj. 潜在的, 基本的

ore n. 矿沙,矿石

perceive v. 察觉,看见

intervention n. 干涉,插入

intelligent adj. 有智力的,聪明的



Lesson 34 A computer system

manipulate vt. 操纵,使用

chip n.  芯片

etch vt. 蚀刻,蚀镂

fingernail 指甲

mount vt. 安装,安置

assemble vt. 集合,聚集

cabinet 橱柜

execute vt. 执行,实现

paycheck n.支付薪金的支票

bar chart 直方图

joystick 游戏杆

encounter vt. 遇到,遇上













Mathematical Modeling

industry   n. 工业, 产业, 行业, 勤奋

commerce   n. 商业

complexity   n. 复杂(性), 复杂的事物, 复杂性

career   n. (原意:道路, 轨道)事业, 生涯, 速度

outset   n. 开端, 开始

essence   n. 基本, [哲]本质, 香精

advocation   n. (=advocacy)拥护 支持

provision   n. 供应, (一批)供应品, 预备, 防备, 规定

publicize   v. 宣扬

roundabout   adj. 迂回的, 转弯抹角的

n. 道路交叉处的环形路, 迂回路线, 兜圈子的话

trial-error   vt. n. 试制, 试生产

maneuverability  n. 可操作性, 机动性

vehicle  n. 交通工具, 车辆, 媒介物, 传达手段

junction   n. 连接, 接合, 交叉点, 汇合处

ponder     v. 沉思, 考虑

contrive   v. 发明, 设计, 图谋

snooker   n. (=snooker pool)彩色台球, 桌球

context    n. 上下文, 文章的前后关系

deviation   n. 背离

notoriously   adj. 声名狼籍的



















































































































































































































PHP提交表单发送邮件

加载这个类就好了
<?
set_time_limit(120);

class smtp
{

/* Public Variables */

var $smtp_port;

var $time_out;

var $host_name;

var $log_file;

var $relay_host;

var $debug;

var $auth;

var $user;

var $pass;

var $sender;

/* Private Variables */
var $sock;

/* Constractor */

function smtp($relay_host = “”, $smtp_port = 25,$auth = false,$user,$pass,$sender)
{
$this->debug = FALSE;

$this->smtp_port = $smtp_port;

$this->relay_host = $relay_host;

$this->time_out = 30; //is used in fsockopen()

$this->auth = $auth;//auth

$this->user = $user;

$this->pass = $pass;

$this->sender = $sender;

$this->host_name = “localhost”; //is used in HELO command

$this->log_file = “”;

$this->logs = “”; //记录跟服务器的交互过程

$this->sock = FALSE;
}

/* Main Function */

function sendmail($to, $from, $subject = “”, $body = “”, $mailtype, $cc = “”, $bcc = “”, $additional_headers = “”)
{
$sent = TRUE;

$mail_from = $this->get_address($this->strip_comment($from));

$body = ereg_replace(“(^|(rn))(.)”, “1.3”, $body);

$header .= “MIME-Version:1.0rn”;

if($mailtype==”HTML”){

$header .= “Content-Type:text/htmlrn”;
}

$header .= “To: “.$to.”rn”;

if ($cc != “”) {

$header .= “Cc: “.$cc.”rn”;

}

//$header .= “From: $from<“.$from.”>rn”;

$header .= “From: “.$from.”rn”;

$header .= “Subject: “.$subject.”rn”;

$header .= $additional_headers;

$header .= “Date: “.date(“r”).”rn”;

$header .= “X-Mailer: 72e.net (PHP/”.phpversion().”)rn”;

list($msec, $sec) = explode(” “, microtime());

$header .= “Message-ID: <“.date(“YmdHis”, $sec).”.”.($msec*1000000).”.”.$mail_from.”>rn”;

$TO = explode(“,”, $this->strip_comment($to));

if ($cc != “”) {

$TO = array_merge($TO, explode(“,”, $this->strip_comment($cc)));

}

if ($bcc != “”) {

$TO = array_merge($TO, explode(“,”, $this->strip_comment($bcc)));

}
foreach ($TO as $rcpt_to) {

$rcpt_to = $this->get_address($rcpt_to);

if (!$this->smtp_sockopen($rcpt_to)) {

$this->log_write(“Error: Cannot send email to “.$rcpt_to.”n”);

$sent = FALSE;

continue;

}

if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body)) {

$this->log_write(“E-mail has been sent to <“.$rcpt_to.”>n”);

} else {

$this->log_write(“Error: Cannot send email to <“.$rcpt_to.”>n”);

$sent = FALSE;

}

fclose($this->sock);

$this->log_write(“Disconnected from remote hostn”);

}

return $sent;

}
/* Private Functions */
function smtp_send($helo, $from, $to, $header, $body = “”)
{

if (!$this->smtp_putcmd(“HELO”, $helo)) {

return $this->smtp_error(“sending HELO command”);

}

#auth

if($this->auth){

if (!$this->smtp_putcmd(“AUTH LOGIN”, base64_encode($this->user))) {

return $this->smtp_error(“sending AUTH command”);

}

if (!$this->smtp_putcmd(“”, base64_encode($this->pass))) {

return $this->smtp_error(“sending AUTH command”);

}

}

#

//if (!$this->smtp_putcmd(“MAIL”, “FROM:”.$from.””)) {
if (!$this->smtp_putcmd(“MAIL”, “FROM:<“.$this->sender.”>”)) {

return $this->smtp_error(“sending MAIL FROM command”);

}

if (!$this->smtp_putcmd(“RCPT”, “TO:<“.$to.”>”)) {

return $this->smtp_error(“sending RCPT TO command”);

}

if (!$this->smtp_putcmd(“DATA”)) {

return $this->smtp_error(“sending DATA command”);

}

if (!$this->smtp_message($header, $body)) {

return $this->smtp_error(“sending message”);

}

if (!$this->smtp_eom()) {

return $this->smtp_error(“sending <CR><LF>.<CR><LF> [EOM]”);

}

if (!$this->smtp_putcmd(“QUIT”)) {

return $this->smtp_error(“sending QUIT command”);

}

return TRUE;

}

function smtp_sockopen($address)
{

if ($this->relay_host == “”) {

return $this->smtp_sockopen_mx($address);

} else {

return $this->smtp_sockopen_relay();

}
}

function smtp_sockopen_relay()
{
$this->log_write(“Trying to “.$this->relay_host.”:”.$this->smtp_port.”n”);

$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);

if (!($this->sock && $this->smtp_ok())) {

$this->log_write(“Error: Cannot connenct to relay host “.$this->relay_host.”n”);

$this->log_write(“Error: “.$errstr.” (“.$errno.”)n”);

return FALSE;

}

$this->log_write(“Connected to relay host “.$this->relay_host.”n”);

return TRUE;
}

function smtp_sockopen_mx($address)
{

$domain = ereg_replace(“^[email protected]([^@]+)$”, “1”, $address);

if ([email protected]($domain, $MXHOSTS)) {

$this->log_write(“Error: Cannot resolve MX “”.$domain.””n”);

return FALSE;

}

foreach ($MXHOSTS as $host) {

$this->log_write(“Trying to “.$host.”:”.$this->smtp_port.”n”);

$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);

if (!($this->sock && $this->smtp_ok())) {

$this->log_write(“Warning: Cannot connect to mx host “.$host.”n”);

$this->log_write(“Error: “.$errstr.” (“.$errno.”)n”);

continue;

}

$this->log_write(“Connected to mx host “.$host.”n”);

return TRUE;

}

$this->log_write(“Error: Cannot connect to any mx hosts (“.implode(“, “, $MXHOSTS).”)n”);

return FALSE;

}
function smtp_message($header, $body)
{
fputs($this->sock, $header.”rn”.$body);

$this->smtp_debug(“> “.str_replace(“rn”, “n”.”> “, $header.”n> “.$body.”n> “));

return TRUE;
}
function smtp_eom()
{
fputs($this->sock, “rn.rn”);

$this->smtp_debug(“. [EOM]n”);

return $this->smtp_ok();
}
function smtp_ok()
{
$response = str_replace(“rn”, “”, fgets($this->sock, 512));

//echo “response=”.$response.”rn”;

$this->smtp_debug($response.”n”);

//echo “ereg 23 ==”.ereg(“^[23]”, $response).”n”;

if (!ereg(“^[23]”, $response)) {

//echo “@@@@@”;

fputs($this->sock, “QUITrn”);

fgets($this->sock, 512);

$this->log_write(“Error: Remote host returned “”.$response.””n”);

return FALSE;

}

return TRUE;
}

function smtp_putcmd($cmd, $arg = “”)
{
if ($arg != “”) {

if($cmd==””) $cmd = $arg;

else $cmd = $cmd.” “.$arg;

}

fputs($this->sock, $cmd.”rn”);

$this->smtp_debug(“> “.$cmd.”n”);

//echo “cmd=”.$cmd.”rn”;

return $this->smtp_ok();
}

function smtp_error($string)
{
$this->log_write(“Error: Error occurred while “.$string.”.n”);

return FALSE;
}

function log_write($message)
{
$this->logs .= $message;

$this->smtp_debug($message);

if ($this->log_file == “”) {

return TRUE;
}

$message = date(“M d H:i:s “).get_current_user().”[“.getmypid().”]: “.$message;

if (log_file”>[email protected]_exists($this->log_file) || !($fp = @fopen($this->log_file, “a”))) {

$this->smtp_debug(“Warning: Cannot open log file “”.$this->log_file.””n”);

return FALSE;
}

flock($fp, LOCK_EX);

fputs($fp, $message);

fclose($fp);

return TRUE;
}
function strip_comment($address)
{
$comment = “([^()]*)”;

while (ereg($comment, $address)) {

$address = ereg_replace($comment, “”, $address);

}

return $address;
}
function get_address($address)
{
$address = ereg_replace(“([ trn])+”, “”, $address);

$address = ereg_replace(“^.*<(.+)>.*$”, “1”, $address);

return $address;
}

function smtp_debug($message)

{

if ($this->debug) {

echo $message;

}

}

} // end class
?>

<?

$smtpserver = “smtp.126.com”; //smpt服务器,百度可以搜索到
$prot=25; //端口一般都是25,除极个别的除外
$smtpuser = “您的邮箱地址”; //您登录smtp服务器的用户名
$smtppwd = “您的密码”; //您登录smtp服务器的密码
$mailtype = “HTML”; //邮件的类型,可选值是 TXT 或 HTML ,TXT 表示是纯文本的邮件,HTML 表示是 html格式的邮件
$sender = “发件人地址”; //发件人,一般要与您登录smtp服务器的用户名($smtpuser)相同,否则可能会因为smtp服务器的设置导致发送失败
$smtp =   new smtp($smtpserver,$prot,true,$smtpuser,$smtppwd,$sender);
//$smtp->debug = true; //是否开启调试,只在测试程序时使用,正式使用时请将此行注释
$to = “[email protected]”;//收件人
$subject = “你好”;
$body = “<h1>这是一个用 <font color=’red’><b> php socket </b></font> 发邮件的测试。
支持SMTP认证!</h1>
“;
$send=$smtp->sendmail($to,$sender,$subject,$body,$mailtype);
if($send==1){
echo “邮件发送成功”;
}else{
echo “邮件发送失败<br>”;
echo “原因:”.$this->smtp->logs;
}
?>


































































































































































































































































































































































































































































php简单实现多语言

1.主程序代码:
<?php
include “lib/function.php”;
?>
<script src=”js/language.js”></script>
<?php
if(isset($_GET[“language”])){
$_SESSION[“language”] = $_GET[“language”];
}else{
$_SESSION[“language”] = getDefalutlanguage();
}
$language_name = getLanguageName($_SESSION[“language”]);
include “lang/”.$language_name.”.inc”;
?>
<SELECT NAME=”language” id=”language” onchange=”changeLanguage(this)”>
<?php
$language_array = array_language();
foreach($language_array as $key => $value){
if($_SESSION[“language”] == $value){
$selected = “selected = ‘selected’ “;
}else{
$selected = “”;
}

?>
<OPTION VALUE=”<?php echo $value;?>” <?php echo $selected;?>><?php echo getLanguageName($value);?></OPTION>;
<?
}
?>

</SELECT>
<?php
if($_GET[“language”] == $value){
//$selected = “selected = ‘selected’ “;
}
echo “语言:”.$_SESSION[“language”];
echo “测试:”.$name;
?>

2. 所包含的语言包:English.inc
<?php
$name = “name”;
?>
Chinese.inc
<?php
$name = “名字”;
?>
3. 所包含的function.php
<?php
function getVailableLanguage() {

$language = array(
‘af’          => ‘Afrikaans’,
‘az’          => ‘Azerbaijani’,
‘eu’          => ‘Basque’,
‘be’          => ‘Belarusian’,
‘be-lat’      => ‘Belarusian latin’,
‘bg’          => ‘Bulgarian’,
‘bs’          => ‘Bosnian’,
‘ca’          => ‘Catalan’,
‘zh’          => ‘Chinese’,
//’zh-TW’         => ‘Chinese traditional’,
//’zh-CN’         => ‘Chinese simplified’,
‘cs’          => ‘Czech’,
‘da’          => ‘Danish’,
‘de’          => ‘German’,
‘el’          => ‘Greek’,
‘en’          => ‘English’,
‘es’          => ‘Spanish’,
‘et’          => ‘Estonian’,
‘fa’          => ‘Persian’,
‘fi’          => ‘Finnish’,
‘fr’          => ‘French’,
‘gl’          => ‘Galician’,
‘he’          => ‘Hebrew’,
‘hi’          => ‘Hindi’,
‘hr’          => ‘Croatian’,
‘hu’          => ‘Hungarian’,
‘id’          => ‘Indonesian’,
‘it’          => ‘Italian’,
‘ja’          => ‘Japanese’,
‘ko’          => ‘Korean’,
‘ka’          => ‘Georgian’,
‘lt’          => ‘Lithuanian’,
‘lv’          => ‘Latvian’,
‘mk’          => ‘Macedonian’,
‘mn’          => ‘Mongolian’,
‘ms’          => ‘Malay’,
‘nl’          => ‘Dutch’,
‘no’          => ‘Norwegian’,
‘pl’          => ‘Polish’,
‘pt-BR’       => ‘Brazilian portuguese’,
‘pt’          => ‘Portuguese’,
‘ro’          => ‘Romanian’,
‘ru’          => ‘Russian’,
‘si’          => ‘Sinhala’,
‘sk’          => ‘Slovak’,
‘sl’          => ‘Slovenian’,
‘sq’          => ‘Albanian’,
‘sr-lat’      => ‘Serbian latin’,
‘sr’          => ‘Serbian’,
‘sv’          => ‘Swedish’,
‘th’          => ‘Thai’,
‘tr’          => ‘Turkish’,
‘tt’          => ‘Tatarish’,
‘uk’          => ‘Ukrainian’,
);
return $language;
}
function getLanguageName($language) {
$languages = getVailableLanguage();
return $languages[$language];
}
function array_language(){
$array_language = array(“en”,”zh”);
return $array_language;
}
function getDefalutlanguage(){
return “zh”;
}

?>
4.所包含的language.js
function changeLanguage(obj) {
var url = document.URL;
var re = re = /[?&]language=[^&]*/;
url = url.replace(re, “”);
if (url.indexOf(“?”) > -1) {
url += “&language=” + obj.value;
} else {
url += “?language=” + obj.value;
}
location.href = url;
}




































































































































paypal API

一、HTML

<form action=”https://www.sandbox.paypal.com/cgi-bin/webscr” method=”post” name=”frm_paypal”>
<input type=”hidden” name=”cmd” value=”_xclick”/>
<input type=”hidden” name=”business” value=”[email protected]”/><!–PayPal账户上的电子邮件地址–>
<input type=”hidden” name=”item_name” value=”my card”/><!–物品名称(或购物车名称)。必须是字母数字字符,最多为 127 个字符–>
<input type=”hidden” name=”amount” value=”12″/><!–单价–>
<input type=”hidden” name=”quantity” value=”2″/><!–件數–>
<input type=”hidden” name=”no_shipping” value=”0″/><!–送货地址。如果设为 “1”,则不会要求您的客户提供送货地址。该变量为可选项;如果省略或设为 “0”,将提示您的客户输入送货地址–>
<input type=”hidden” name=”return” value=”http://wyg517.gicp.net//mvtest/paysuccess.php”/><!–您的客户完成付款后将返回的互联网 URL–>
<input type=”hidden” name=”notify_url” value=”http://wyg517.gicp.net/mvtest/paysuccess.php”/><!–仅与 IPN 一起使用。发送 IPN Form Post 的互联网 URL–>
<input type=”hidden” name=”cancel_return” value=”http://wyg517.gicp.net/mvtest/payfailed.php”/><!–您的客户取消付款后将返回的互联网 URL–>
<input type=”hidden” name=”no_note” value=”1″/><!–为付款加入提示。如果设为 “1”,则不会提示您的客户输入提示。该变量为可选项;如果省略或设为 “0”,将提示您的客户输入提示–>
<input type=”hidden” name=”custom” value=”60″/><!–决不会向您的客户显示的可选转递变量。可用于跟踪存货–>
<input type=”hidden” name=”currency_code” value=”USD”/><!–定义币种以标示货币变量 值可以–>
<input type=”hidden” name=”lc” value=”123″/>
<input type=”hidden” name=”bn” value=”PP-BuyNowBF”/>
<input type=”image” src=”http://www.paypal.com/zh_XC/i/btn/x-click-but01.gif” name=”submit” alt=”请使用PayPal付款 —— 快捷、免费和安全的付款方式!”>
</form>

 

二、paysuccess.php

<?php
//$res    = ‘succeess’.date(“Y-m-d H:i:s”).print_r($_REQUEST, true);
//file_put_contents(“paypalsuccess.txt”, $res);
//echo $_POST[‘item_name’];
print_r($_POST);
//echo $_POST[‘item_name’];
?>

 

三、payfailed.php

<?php
$res    = ‘failed’.date(“Y-m-d H:i:s”).print_r($_REQUEST, true);
file_put_contents(“paypalfailed.txt”, $res);
?>






































PayPal PHP接口 测试php-paypal-sandbox

1,到developer.paypal.com注册EMail激活,登录后创建一个business和一个personal帐号(要记住密码,最好弄个简单容易记的,测试而已)

2,php环境问题
好不容易成功启动了php的curl和openssl,我用的是php的msi安装程序,开始会出现“访问拒绝”的提示,后来将curl和openssl取消后,然后重新选择安装,OK

3,研读paypal的文档 PP_OrderManagement_IntegrationGuide.pdf
通过business帐号登录,在激活IPN,步骤是:
在Profile的Selling Preferences一栏,进入“Instant Payment Notification Preferences”,然后Edit,选中checkbox,填入notify_url地网址
走了很多弯路,才知道AutoReturn,可是设置return的网址,步骤是:
同样在Profile的Selling Preferences一栏,进入“Web Payment Preferences”,第一项是AutoReturn,设置为On,并填入自己要return到的网址;

第二项是PDT,设置为On,否则return的网址得不到相应数据。

弄清楚了notify_url,return这两个网址的作用,POST FORM代码:

<form action=”https://www.sandbox.paypal.com/cgi-bin/webscr” method=”post”>
<input type=”hidden” name=”notify_url” value=”http://wyg517.gicp.net/py/validate.php” />
<input type=”hidden” name=”return” value=”http://wyg517.gicp.net/py/success.php” />
<input name=”cmd” value=”_cart” type=”hidden”>
<input name=”add” value=”1″ type=”hidden”>
<input name=”business” value=”[email protected]” type=”hidden”>
<!–商品名称–>
<input name=”item_name” value=”Stuff Test” type=”text”>
<!–商品单价–>
<input name=”amount” value=”3.00″ type=”text”>
<!–商品数量–>
<input name=”quantity” value=”2″ type=”text”>
<input name=”currency_code” value=”USD” type=”hidden”>
<input name=”lc” value=”US” type=”hidden”>
<input type=”submit” value=”Add Cart”/>
</form>
其 实在Payment Complete的时候,notify_url会被后台运行,用来核对交易数据(数据通过POST传递),return则是用来给用户交易完成后显示(可 以不使用AutoReturn,那样的话就是用户点击”return mytest’s test Store”按钮后转向的页面,打开PDT的话,就会把交易数据通过GET传至此页面)
notify_url: 需要激活,后台运行,POST传入数据,提交给curl处理,获取交易信息验证(在Profile统一设置,也可在提交的Form里用notify_url参数指定特殊指向,最好附带一个自定义的秘密参数,参与最后的验证);
return: 前台显示,用户点击转至或者设置AutoReturn自动转至,GET传入数据,用于显示交易信息(可在Profile统一设置,也可在提交的Form里用return参数指定特殊指向)。
附validate.php代码
<?php
// read the post from PayPal system and add ‘cmd’
$req = ‘cmd=_notify-validate’;
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= “&$key=$value”;
// post back to PayPal system to validate
$ppCurl = curl_init(); // initialize curl handle
curl_setopt($ppCurl, CURLOPT_POST, true); // set POST method
curl_setopt($ppCurl, CURLOPT_URL, “http://www.sandbox.paypal.com/cgi-bin/webscr”); // set url
curl_setopt($ppCurl, CURLOPT_POSTFIELDS, $req); // fields to POST
curl_setopt($ppCurl, CURLOPT_RETURNTRANSFER, true); // return var
curl_setopt($ppCurl, CURLOPT_TIMEOUT, 4); // time out after 5 secs
curl_setopt($ppCurl, CURLOPT_FAILONERROR, true);
curl_setopt($ppCurl, CURLOPT_FOLLOWLOCATION, true); // allow redirects
curl_setopt($ppCurl, CURLOPT_FRESH_CONNECT, true); // no caching
$result = curl_exec($ppCurl); // engage!

$curlErrorNum = curl_errno($ppCurl); // save error code; 0=none
$curlErrorText = curl_error($ppCurl); // save error message; “”=none
curl_close($ppCurl);

// assign posted variables to local variables
$item_name = $_POST[‘item_name’];
$item_number = $_POST[‘item_number’];
$payment_status = $_POST[‘payment_status’];
$payment_amount = $_POST[‘mc_gross’];
$payment_currency = $_POST[‘mc_currency’];
$txn_id = $_POST[‘txn_id’];
$receiver_email = $_POST[‘receiver_email’];
$payer_email = $_POST[‘payer_email’];

if ($curlErrorNum != 0) {
// CURL error

} else if ($result == “VERIFIED”) {
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
} else if ($result == “INVALID”) {
// handle false claim
}
}

附success.php代码:

<?php
$token = “2UYwGN41Dmb9KvjJHmcRIsHs2NQTZ0lG4BXoFrQaocxGMXhfRO_wtcQEbte”;
$req = ‘cmd=_notify-synch&tx=’.$_GET[“tx”].”&at=”.$token;
foreach ($_GET as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= “&$key=$value”;
}

// post back to PayPal system to validate
$ppCurl = curl_init(); // initialize curl handle
curl_setopt($ppCurl, CURLOPT_POST, true); // set POST method
curl_setopt($ppCurl, CURLOPT_URL, “http://www.sandbox.paypal.com/cgi-bin/webscr”); // set url
curl_setopt($ppCurl, CURLOPT_POSTFIELDS, $req); // fields to POST
curl_setopt($ppCurl, CURLOPT_RETURNTRANSFER, true); // return var
curl_setopt($ppCurl, CURLOPT_TIMEOUT, 4); // time out after 5 secs
curl_setopt($ppCurl, CURLOPT_FAILONERROR, true);
curl_setopt($ppCurl, CURLOPT_FOLLOWLOCATION, true); // allow redirects
curl_setopt($ppCurl, CURLOPT_FRESH_CONNECT, true); // no caching
$result = curl_exec($ppCurl); // engage!

$curlErrorNum = curl_errno($ppCurl); // save error code; 0=none
$curlErrorText = curl_error($ppCurl); // save error message; “”=none
curl_close($ppCurl);

// assign posted variables to local variables
$item_name = $_POST[‘item_name’];
$item_number = $_POST[‘item_number’];
$payment_status = $_POST[‘payment_status’];
$payment_amount = $_POST[‘mc_gross’];
$payment_currency = $_POST[‘mc_currency’];
$txn_id = $_POST[‘txn_id’];
$receiver_email = $_POST[‘receiver_email’];
$payer_email = $_POST[‘payer_email’];

// parse the data
$lines = explode(“\n”, $result);

if (strcmp (substr($lines[0],0,7), “SUCCESS”) == 0) {
/*通过截取获取参数start*/
$fig = explode(“payment_status=”, $result);
echo substr($fig[1],0,strpos($fig[1],”n”));
/*通过截取获取参数end*/

echo (“<p><h3>Thank you for your purchase!</h3></p>”);

echo (“<b>Payment Details</b><br>\n”);
foreach ($keyarray as $key => $value) {
$value = urlencode(stripslashes($value));
echo “<li>$key: $value</li>\n”;

echo (“”);
}
} else if (strcmp ($lines[0], “FAIL”) == 0) {
// log for manual investigation
echo (“<p><h3>FAIL…</h3></p>”);
}

?>











































































































































Paypal-IPN&PDT变量列表

本页包含了所有可能出现在IPN或者PDT中的变量。变量“notify_version”是指IPN的版本号,在您的程序中可以不用存储该变量; 变量verify_sign是一个加密串,用于验证交易的真实性。另外,在Sandbox测试环境下,IPN还增加了一个变量test_ipn(其值为 1),用于区分测试环境和真实环境。

IPN和PDT变量:买家信息

变量名

可能的值

描述

长度

address_city

 

客户地址中的市/县。

40

address_country

 

客户地址中的国家或地区。

64

address_country_code

 

两位ISO 3166国家或地区代码。

2

address_name

 

用于地址的名称(在客户提供礼品地址时包含在内)。

128

address_state

 

客户地址中的省/直辖市/自治区。

40

address_status

Confirmed
Unconfirmed

客户提供的是已确认的地址。
客户提供的是未确认的地址。

 

address_street

 

客户的街道地址。

200

address_zip

 

客户地址中的邮政编码。

20

first_name

 

客户的名。

64

last_name

 

客户的姓。

64

payer_business_name

 

客户的公司名称,如果客户代表企业。

127

payer_email

 

客户的主要邮件地址。
使用该电子邮件提供所有信用记录。

127

payer_id

 

唯一客户号。

13

payer_status

verified
unverified

客户有已认证的PayPal账户。
客户有未认证的PayPal账户。

 

residence_country

 

两位ISO 3166国家或地区代码。

2

 

IPN和PDT变量:基本信息

变量名

描述

长度

business

收款人(即商家)的电子邮件地址或账户号。
如果付款发送至主账户,则等于receiver_email,尤其指“网站付款”按钮HTML代码中传递的business变量的返回值。

127

item_name

由您(商家)传递的物品名称。
如果不是由您传递,则由您的客户输入。

如果是购物车交易,PayPal 将附加物品号(例如, item_name1 、 item_name2 )。

127

item_number

您用于跟踪购买的传递变量。在付款完成时,它会传回给您。如果省略,则将没有变量传回给您。

127

quantity

由您的客户输入或由您(商家)传递的数量。
如果是购物车交易,PayPal将附加物品号(例如,quantity1、quantity2)。

 

receiver_email

收款人(即商家)的主要邮件地址。
如果付款不是发送到PayPal账户上的主要邮件地址,则receiver_email依旧是主要邮件地址。

127

receiver_id

收款人(即商家)的唯一账户号。这与收款人的推荐号相同。

13

 

IPN和PDT变量:高级及自定义信息

变量名

描述

长度

custom

由您(商家)传递的自定义值。在任何情形下,都不会向您的客户显示这些传递变量。

255

invoice

可供您用来识别此次购物的帐单号码的转递变量。
如果省略,则没有变量传回。

127

memo

您的客户在PayPal网站付款提示栏中输入的备忘信息。

255

option_name1

选项1名称(由您申请)。

64

option_name2

选项2名称(由您申请)。

 

option_selection1

选项1选择(由客户输入)。

200

option_selection2

选项2选择(由客户输入)。

 

tax

对付款收取的税费金额。

2

IPN和PDT变量:购物车信息

变量名

可能的值

描述

auth_id

Transaction-specific

授权识别号。

auth_exp

Transaction-specific

授权失效日期和时间。

auth_status

Completed
Pending

Voided

授权状态。

mc_gross_x

Transaction-specific for multiple currencies

所示金额所用币种为mc_currency ,其中x为购物车明细物品号。mc_gross_x总和应等于mc_gross。

mc_handling_x

Transaction-specific for multiple currencies

x代表购物车明细物品号。由于mc_handling变量中还包含handling_cart整个购物车范围内的网站付款变量,因此mc_handling_x总和不一定等于mc_handling。

num_cart_items

 

如果此交易是PayPal购物车交易,则为购物车中的物品数。

option_name1

 

PayPal将附加物品号,其中x代表购物车明细物品号(例如,option_name1、option_name2)。

option_name2

 

PayPal将附加物品号,其中x代表购物车明细物品号(例如,option_name2、option_name2)。

option_selection1_x

 

PayPal将附加物品号(例如,option_selection1 、 option_selection2),其中x代表购物车明细物品号。

option_selection2_x

 

PayPal将附加物品号,其中x代表购物车明细物品号(例如,option_selection1、option_selection2)。

parent_txn_id

 

在退款、撤销或取消撤销的情况下,该变量包含原定交易的txn_id,而txn_id包含新交易的新识别号。
字符长度和限制:17。

payment_date

 

PayPal生成的时间/日期戳记。
格式:“ 18:30:30 Jan 1, 2000 PST ”。

payment_status

Canceled-Reversal Completed
Denied

Expired

Failed

In-Progress

Partially-Refunded

Pending

Processed

Refunded

Reversed

Voided

Canceled-Reversal:这意味着已经取消了撤销。例如,您在与客户的争议中获胜,先前撤销的交易资金已退回给您。
Completed:付款已完成,资金已成功增加到您的账户余额中。

Denied:您拒绝了付款。只有该款项此前因。PendingReason元素说明的可能原因而待付时,才会发生此类情况。

Expired:这个授权已经过期,无法捕获。

Failed:付款失败。只有当付款来自于客户的银行账户时,才会发生此类情况。

In-Progress:这笔交易处于授权认证中。

Partially-Refunded:这笔交易被部分退款。

Pending:款项待付。请查看PendingReason了解更多信息。

Refunded:您退还了付款。

Reversed:付款由于扣款索偿或其他撤销类型而撤销。资金已从您的账户余额中扣除,并已退还给买家。reason_code变量指明了撤销原因。

Processed:付款已被接受。

Voided:此授权无效。

payment_type

echeck
instant

echeck:该款项通过电子支票支付。
instant:该项付款通过PayPal余额、信用卡或即时转帐支付。

pending_reason

address
authorization

echeck

intl

multi-currency

unilateral

upgrade

verify

other

 

只有在payment_status=Pending时,才会设置此变量。
address:款项待付,原因是客户未提供已确认的送货地址,而您的收款习惯设定设为允许手动接受或拒绝每笔此类付款。若要更改习惯设定,请前往您的用户信息中的习惯设定部分。

authorization:您在SetExpressCheckoutRequest上设置了<PaymentAction> Authorization</PaymentAction> ,而尚未获取资金。

echeck:款项待付,原因是其通过电子支票付款,而电子支票尚未结清。

intl:款项待付,原因是您持有非美国账户,且没有提现机制。您必须在账户信息中手动接受或拒绝该笔付款。

multi-currency:您在发送的货币中没有余额,并且未将收款习惯设定设为自动兑换和接受付款。您必须手动接受或拒绝该笔付款。

unilateral:款项待付,原因是付款的接收电子邮件地址尚未注册或确认。

upgrade:款项待付,原因是其通过信用卡付款,因此您必须将账户升级为企业账户或高级账户状态,方可接收资金。upgrade也可能表示您已达到账户的月交易限额。

verify:款项待付,原因是您尚未经过认证。您必须先认证您的账户,才能接受该笔付款。

other:款项待付,原因非以上所列各项。若要了解更多信息,请与贝宝客户服务联系。

reason_code

chargeback
guarantee

buyer-complaint

refund

other

只有在payment_status = Reversed 或Refunded时,才会设置此变量。
chargeback:由于客户提出扣款索偿,因此撤销这笔交易。

guarantee:由于客户触发退款担保,因此撤销这笔交易。

buyer-complaint:由于客户就交易提出投诉,因此撤销这笔交易。

refund:由于您向客户退款,因此撤销这笔交易。

other:由于上述原因以外的其他原因,撤销这笔交易。

remaining_settle

Transaction-specific

可以捕获的剩余金额。

tax

 

PayPal将附加物品号(例如,item_name1、item_name2 )。只有对个别购物车物品收取特定税费时,才会在其中包含tax_x变量。由于可能对购物车中其他物品收取用户信息税费,因此tax_x的总和不一定等于tax。

transaction_entity

auth
reauth

order

payment

授权。

txn_id

 

PayPal系统生成的唯一交易号。
字符长度和限制:17。

txn_type

cart
express_ checkout

merch_pmt

send_money

virtual_ terminal

web-accept

cart:交易由客户通过“PayPal购物车”功能创建。
send-money:交易由客户从PayPal网站上的付款选项卡中创建。

web-accept:交易由客户通过“立即购买”、“捐赠”或“竞拍”智能标识创建。

auth_amount

Transaction-specific

授权金额。

IPN和PDT变量:货币及货币兑换信息

变量名

可能的值

描述

exchange_rate

 

进行货币兑换时所用的汇率。

mc_currency

See table of supported currencies

对于付款IPN,这是付款货币。对于非付款租费IPN,这是租费货币。

mc_fee

 

与付款关联的交易费。mc_gross减去mc_fee等于存入 receiver_email账户的金额。等于美元付款payment_fee。
如果该金额为负,则表示退款或撤销,原定交易费的全部或部分金额都可以是这两种付款状态之一。

mc_gross

 

扣除交易费之前的客户付款全部金额。等于美元付款payment_gross。
如果该金额为负,则表示退款或撤销,原定交易费的全部或部分金额都可以是这两种付款状态之一。

mc_handling

 

这是与交易相关的手续费总额。

mc_shipping

 

这是与交易相关的运费总额。

payment_fee

Transaction-specific for USD payments only

与付款相关的美元交易费。payment_gross减去payment_fee等于存入收款人电子邮件账户的金额。对于非美元付款为空。这个旧字段已由mc_fee取代。
如果该金额为负,则表示退款或撤销,原定交易费的全部或部分金额都可以是这两种付款状态之一。

payment_gross

Transaction-specific for USD payments only

扣除交易费之前的客户付款全部美元金额。对于非美元付款将为空。这个旧字段已由mc_gross取代。
如果该金额为负,则表示退款或撤销,原定交易费的全部或部分金额都可以是这两种付款状态之一。

settle_amount

 

通过您的收款习惯设定进行自动货币兑换,或通过手动接受付款进行手动货币兑换后,存入账户主要余额的金额。

settle_currency

 

settle_amount的币种。

 

IPN 和PDT变量:竞拍

变量名

可能的值

描述

长度

auction_buyer_id

 

这是客户的竞拍ID。

64

auction_closing_date

 

这是竞拍的结束日期。

 

auction_multi_item

 

这是以多物品竞拍付款购买的物品的数目。由于竞拍的每个物品都会产生一个即时付款通知,其中显示整个竞拍的金额,因此您可以计算您从多物品竞拍(auction_multi_item)收到的第一个IPN的mc_gross或payment_gross。

 

for_auction

true

这是竞拍付款(使用“为易趣物品付款”或“智能标识”付款,以及使用易趣物品或竞拍物品(非易趣物品)类型“付款”/“款项要求”付款)。

IPN和PDT变量:集中付款

变量名

可能的值

描述

masspay_txn_id_x

 

对于集中付款,这是PayPal系统生成的唯一交易号,其中x是集中付款物品记录号。

mc_currency_x

Transaction-specific for multiple currencies

对于集中付款,为金额和费用所用币种,其中x是集中付款物品记录号。

mc_fee_x

Transaction-specific for multiple currencies

对于集中付款,为与付款关联的交易费,其中x是集中付款物品记录号。

mc_gross_x

Transaction-specific for multiple currencies

这是金额的总额,其中x是集中付款物品记录号。

payment_date

 

对于集中付款,表示第一个IPN是记录集被处理的日期/时间,第二个IPN是所有付款结束/退回的日期/时间。

payment_fee_x

Transaction-specific for USD payments only

如果用美元付款,则该值与mc_fee_x的值相同,其中x是记录号;
如果币种不是美元,即为空字符串。

payment_gross_x

Transaction-specific for USD payments only

如果用美元付款,则该值与mc_gross_x的值相同,其中x是集中付款物品记录号。
如果币种不是美元,则为空字符串。

payment_status

Completed
Denied

Processed

Completed:对于集中付款,表示您的所有付款已认领,或在30天后,无主付款已退回给您。
Denied:对于集中付款,表示您的资金未发送,而集中付款未开始,可能是由于资金不足所致。

Processed:您的集中付款已处理,所有付款已发送。

reason_code

1001
1003

1004

此变量只有当status=Failed时才有效。
1001Invalid UserID。

1003Country of Residence check failure。

1004Country of Funding Source check failure。

receiver_email_x

 

对于集中付款,这是收款人的主要邮件地址,其中x是集中付款物品记录号。

status_x

Completed
Failed

Reversed

Unclaimed

对于集中付款,这是付款状态,其中x是记录号。
Completed:付款已处理,不论其原来是否为单方付款。Failed:由于余额中资金不足,付款失败。

Reversed:用于超过30天未认领并已被退回发送方的单方付款,或由于收款人账户已锁定,资金被退回。

Unclaimed:用于无主单方付款。

txn_type

masspay

该付款已通过集中付款发送。

unique_id_x

 

对于集中付款,这是来自输入的唯一标识符,其中x是记录号。这样,商家可以交叉参考付款。













































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































PayPal PHP接口

PayPal 快速、安全而又方便,是跨国交易的首选在线付款方式。现在PayPal可以和国内大部分信用卡关联,可以实现国人的跨国交易收支。
申请PayPal注册网址:https://www.paypal.com/

paypal接口与其它接口有些不同,稍微复杂一点。 其实银行接口也算是一个站点的插件。

所谓paypal ipn(Instant Payment Notification),就是Paypal开发的一种能主动通知第三方卖家系统交易状态的一种机制。IPN的原理很简单,就是当产生了一个交易之后, 交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的某个页面(称之为IPN Handler),当这个页面接受到请求时候,将这些数据原封不动加上一个指示验证的cmd=_notify-validate,POST回Paypal 的接口地址,如果数据正确,那么Paypal返回字符串VERIFIED,否则为INVALID,如果结果为VERIFIED,那么你的程序就可以使用这 些数据进行操作。
开设Sandbox帐号
但代码的调试是一件很痛苦的事情,因为作为第三方开发人员,不可能开两个帐号,每次测试还要之间交易一些钱,所以Paypal专门开发了Sandbox给开发人员进行开发,首先到https://developer.paypal.com/ 注册一个开发帐号,好了之后再进入Sandbox建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的),这 种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实Paypal Sandbox会自动生成一些随机的号码)。接下来需要激活Paypal Sandbox的虚拟帐号,注意,这里不管你在Paypal Sanbox注册时填什么邮件地址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中。登录 Sandbox的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过Add Funds来给账户充值(想填多少填多少 920-203 920-533 )。然后,还需要激活IPN的选项,在Business的那个账户的Profile设置页面中,点击,然后点击Edit按钮,打开IPN,这里如果你使用 的是固定的IPN Handle,可以直接将地址填入。

接下来,我们测试的时候,应该将Paypal接口的地址设置为https://www.sandbox.paypal.com/cgi-bin/webscr
基本的流程
当客户向您付款时,PayPal将向位于指定 URL (type=”hidden” name=”notify_url” value=” “)的 服务器发送一个通知。此通知中将包括您的客户的所有付款信息(例如,客户名称、金额),以及一段加密代码。当服务器收到通知时,它随后会将该信息(包括加 密代码)发送回安全的PayPal URL。PayPal将通过检查加密字符串对交易进行身份验证。这种将 IPN 数据传回PayPal的操作防止了“欺骗”,因此您可以确保 IPN 来自PayPal。在进行验证时,PayPal会将其合法性的确认信息发送回您的服务器。

提示:要启用即时付款通知,您将需要输入一个 URL,通过它您可以接收到来自您的用户信息的通知。

启用了即时付款通知后,每次当您接收付款时您的服务器都会收到一个通知,此通知将以隐藏的“FORM POST”的方式发送到指定的 URL,并将包括所有付款信息。此页面的底部列出了通知的 FORM 变量。

每次收到来自PayPal的 IPN 时,您必须在实施订单之前完成如下所述的通知确认过程。确认列出的信息将可确保交易合法。
通知确认IPN
为了确保付款已进入您的PayPal账户,您必须验证用作“receiver_email”的电子邮件地址是否已在您的PayPal账户中注册并得到确认。

服务器收到即时付款通知后,您将需要通过构建一个发送到PayPal的 HTTP POST 对其进行确认。您的 POST 应发送到 https://www.paypal.com/cgi-bin/webscr

您必须完全按照收到表单变量时的原样发送所有收到的表单变量。您还需要将一个值为“_notify-validate”的名为“cmd”变量(例如,cmd=_notify-validate)附加到 POST 字符串。

PayPal将回复该 POST,并在回复的正文中包含一个单词“VERIFIED”或“INVALID”。当您收到 VERIFIED 回复时,您需要在实施订单之前执行若干检查:
确认“payment_status”为“Completed”,因为系统也会为其他结果(如“Pending”或“Failed”)发送 IPN。
检查“txn_id”是否未重复,以防止欺诈者重复使用旧的已完成的交易。
验证“receiver_email”是已在您的PayPal账户中注册的电子邮件地址,以防止将付款发送到欺诈者的账户 。
检查其他交易详情(如物品号和价格),以确认价格未改变完成了以上检查后,您可以使用 IPN 数据更新您的数据库,并处理购物。
如果收到“无效”通知,则应将其视为可疑通知,并应对其进行调查。
主要参数:
向PayPal提交粘贴代码时,应包括以下 4 个隐藏变量及一张图片,这就是说,您粘贴到PayPal的最短必需代码应如下:

<form action="https://www.paypal.com/row/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_xclick"> // "_xclick" 立即购买 <input type="hidden" name="business" value="[email protected]"> //PayPal账户上的电子邮件地址 <input type="hidden" name="item_name" value="Item Name"> //物品名称(或购物车名称) <input type="hidden" name="currency_code" value="USD"> //定义币种以标示货币变量 值可以为 "USD"、"EUR"、"GBP"、"CAD"、"JPY"。 <input type="hidden" name="amount" value="0.00"> //物品的价格(购物车中所有物品的总价格,因为是_Xclick模式) <input type="image" src="http://www.paypal.com/zh_XC/i/btn/x-click-but01.gif" name="submit" alt="请使用PayPal付款!"> </form>

PayPal 提供附加变量,用于自定义您的 Form Post。所有可用变量如下(变量名称必须用小写):

可用变量

business 您的PayPal账户上的电子邮件地址
quantity 物品数量。大于 1 时,会与金额相乘
item_name 物品名称(或购物车名称)。必须是字母数字字符,最多为 127 个字符
item_number 用于跟踪付款的可选传递变量。必须是字母数字字符,最多为 127 个字符
amount 物品的价格(购物车中所有物品的总价格)
shipping 该物品的运送成本
shipping2 每增加一件物品所需的运送成本
handling 手续费
tax 基于交易的税额。如果使用该变量,传递值将覆盖所有用户信息税收设置(不管买家所在位置)。
no_shipping 送货地址。如果设为 "1",则不会要求您的客户提供送货地址。该变量为可选项;如果省略或设为 "0",将提示您的客户输入送货地址
cn 可选标签,会在提示栏上显示(最多 40 个字符)
no_note 为付款加入提示。如果设为 "1",则不会提示您的客户输入提示。该变量为可选项;如果省略或设为 "0",将提示您的客户输入提示。
on0 第一选项栏名称。最多 64 个字符
os0 第一组选项值。最多 200 个字符。"on0" 必须定义,以便识别 "os0"。
on1 第二选项栏名称。最多 64 个字符
os1 第二组选项值。最多 200 个字符。"on1" 必须定义,以便识别 "os1"。
custom 决不会向您的客户显示的可选转递变量。可用于跟踪存货
invoice 决不会向您的客户显示的可选转递变量。可用于跟踪账单号
notify_url 仅与 IPN 一起使用。发送 IPN Form Post 的互联网 URL
return 您的客户完成付款后将返回的互联网 URL
cancel_return 您的客户取消付款后将返回的互联网 URL
image_url 您要用作图标的图片的互联网 URL,图片大小为 150 X 50 像素
cs 设置您的付款页面的背景色。如果设为 "1",背景色将为黑色。该变量为可选项;如果省略或设为 "0",背景色将为白色

扩展变量

PayPal 允许您粘贴扩展变量,条件是将改变以下 "cmd" 值:<input type="hidden" name="cmd" value="_xclick"> 到: 
<input type="hidden" name="cmd" value="_ext-enter">
<input type="hidden" name="redirect_cmd" value="_xclick"> 

通过上述 "cmd" 值修改,您还可使用以下变量: 
扩展变量
email 客户的电子邮件地址
first_name 客户的名。必须是字母数字字符,最多为 32 个字符
last_name 客户的姓。必须是字母数字字符,最多为 64 个字符
address1 客户地址所在国家或地区。必须是字母数字字符,最多为 100 个字符
address2 客户地址第二行。必须是字母数字字符,最多为 100 个字符
city 客户地址所在城市。必须是字母数字字符,最多为 100 个字符
state 客户地址所在州。必须是正式的 2 个字母缩写
zip 客户地址的邮政编码
night_phone_a 客户夜间联系电话号码的区号
night_phone_b 客户夜间联系电话号码前三位
day_phone_a 客户白天联系电话号码的区号
day_phone_b 客户白天联系电话号码前三位
   
提示:若要更改"用户信息"中的默认运费和手续费设置,请转至您的用户信息,编辑您的运费计算,然后点击"允许采用基于交易的运费"复选框。

将单个物品传递给PayPal

如果您的第三方购物车可设置成向PayPal传递单个物品,有关物品的信息将加入买家和卖家的记录日志和系统通知中。要加入该物品的信息,您需要将 HTML 格式元素粘贴至PayPal购物车流程的新版本。该过程与 #1 节"将总购物车数量传递给PayPal"描述的非常相似,不同之处在于: 
将 "cmd" 变量设置到 "_cart"
更换必要的 HTML 行 
<input type="hidden" name="cmd" value="_xclick"> 与<input type="hidden" name="cmd" value="_cart">

添加称为 "upload" 的新变量
在 <表格> 和 </表格> 标签之间新增以下行:<input type="hidden" name="upload" value="1">

定义物品明细
对于以下各特定物品参数,定义与通过您的合作商购物车购买的各物品对应的一组新值。将 "_x" 附加到变量名称,其中 x 是物品号码,从 1 开始,每加入一物品增加一。 
item_name_x (物品 #x 需要)购物车中物品 #x 的名称。必须是字母数字字符,最多为 127 个字符
item_number_x 与购物车中物品 #x 关联的可选传递变量。必须是字母数字字符,最多为 127 个字符
amount_x (物品 #x 需要)物品 #x 的价格
shipping_x 运送物品 #x 的第一件(数量 1)的成本
shipping2_x 每增加一件运送物品 #x(数量 2 或更多)所需的运送成本
handling_x 物品 #x 的处理成本
on0_x 物品 #x 的第一选项栏名称。最多 64 个字符
os0_x 物品 #x 的第一组选项值。最多 200 个字符。"on0_x" 必须定义,以便识别 "os0_x"。
on1_x 物品 #x 的第二选项栏名称。最多 64 个字符
os1_x 物品 #x 的第二组选项值。最多 200 个字符。"on1_x" 必须定义,以便识别 "os1_x"。 
为购物车中每件物品重复此设定
为您的买家购物车中的各物品加入以上表格中的一组必需的变量和任何选项变量。购物车中的第一物品必须用以 "_1" 结束的参数定义,如 "item_name_1"、"amount_1" 等。同样,第二物品应用变量 "item_name_2"、"amount_2" 等命名。提示:"_x" 值必须以一为单位按序递增,以便识别。如果从 item #1 跳到 item #3 而不定义 item #2,则第三个物品会被忽略。 
要指定币种:所有货币变量(金额、运费、运费 2、手续费、税款)将以粘贴在付款上的 "currency_code" 变量指定的币种显示。因为其不是随物品不同的,无需向变量名称附加 "_x"。如果没有粘贴 "currency_code" 变量,我们将假定所有货币变量值为美元。

PayPay API

PayPal提供了多个API接口供开发者使用。在使用API之前,你必须先申请一个高级个人账户或者企业账户,同时你必须获取API 凭证供每次调用API 时使用。
一旦你获取了API凭证,您就可以调用相关的API接口了。目前,我们提供两种API接口方式,NVP和SOAP。一般来说我们推荐您使用 NVP 接口。
• Name-Value Pair(NVP)接口 – 请求和响应都是使用简单的HTTP。该接口简单易实现,适合于初级开发者和需要快速完成集成的人员;
• SOAP接口 - 请求和响应都是通过SOAP来完成。该接口适合于面向对象工程的开发;

PayPal API:NVP(名称/值对)接口

通过NVP API接口, 您只需给PayPal发送一个HTTP请求,并通过“名称=值”的形式指定请求参数,即可充分利用PayPal的API功能。 
NVP API 是 PayPal 的业务功能、风险管理和业务逻辑的简单接口。NVP API 最基本的使用方法是通过到 PayPal 服务器的 HTTPS 连接发送一个 NVP 字符串,然后处理响应(也是一个 NVP 字符串)。执行 NVP API 调用的基本步骤如下: 
• 为特定的 API 方法构造一个请求参数字符串。
• 通过 HTTPS 连接向 PayPal 服务器发送这个参数字符串。
• 处理服务器响应中的 NVP。 
每个NVP API请求字符串包含有API用户名、API密码、所要调用API的名称及用来标识交易的令牌,如: [email protected]&PWD=mypassword &METHOD=GetExpressCheckoutDetails&TOKEN=EC-23T233ZP3DFB... 
成功的应答包含以下要素:ACK=Success ,以及一个用来标识交易的唯一令牌。 ACK=Success&TIMESTAMP=date/timeOfResponse &CORRELATIONID=debuggingToken&VERSION=2.300000&BUILD=buildNumber &TOKEN=EC-3DJ78083ES565113B&[email protected] &PAYERID=95HR9CM6D56Q2&PAYERSTATUS=verified &FIRSTNAME=John&LASTNAME=Smith... 
您可以使用NVP API完成以下操作:
• 搜索已完成的交易记录,以及查询交易详情;
• 自动化后端功能,例如,捕获授权,以及处理退款等;

API Profile

进入商家账号得到相应的APIProfile,如果是以中文语言查看,在-用户信息-API 访问-中得到,其中里面申请API时,有两个选项,第一个是用签名的方式,第二种是以证书的方式来认证商家身份,当你选择下载数字证时,可以到www.paypaltech.com/tools/pem2p12.php转换为.p12文件,也可以采用OpenSSL的命令完成,一句话搞定,要输入密码喔~。这里的链接有详细说明www.paypal.com/IntegrationCenter/ic_certificate.html 
相应参考资料请参考连接www.paypal.com/IntegrationCenter/ic_expresscheckout.html 了解关于Express Checkout的原理;
在此基础上,你可以访问www.paypal.com/IntegrationCenter/ic_nvp.html 获取相关测试代码;
关于PayPal的测试环境你可以访问www.paypal.com/IntegrationCenter/ic_sandbox.html,
API Reference https://www.paypal.com/IntegrationCenter/ic_api-reference.html















































自用{美国寄中国}

无论你是在国内,还是在美国的朋友,都看看吧。喜欢国际网购和在美国开淘宝的同学,相信可以省下一笔不小的邮费哦!

转:从美国邮寄东西回国方法总结

最近忙着帮国内以前的同事买化妆品啊,包包啊,牛仔裤啊,奶粉啊什么的,然后一个一个
邮寄回去,为了省邮费,真是想了各种办法,呵呵.想想也应该挺有用的,写上来给坛子里
的jms分享一下.都是亲身经历哦….欢迎补充.

把总结写在前面:

最方便:瑞天快递
原因: 网上发件,可到附近任何一个fedex投递,实时网上追踪.
缺点: 很慢,从重庆报关,到上海一般从发出到收到要15天左右.

性价比高:国内Fedex+国际飞扬快递GCexpress
原因: 快,fedex国内4个工作日,飞扬3-5天,一共大概10天左右.

4磅以内小东西最快最省钱:
USPS的小盒子(信封),免费,邮费是12.95刀,10天左右到,不过盒子真得很小很小,估计一条牛仔裤都塞不下。只能用来邮寄铁块了:(

最快:最近试了一下全一,因为在纽约。离我家比较近,到纽约国内才2天,从上海报关,大概7天上还能受到,费用$11/2lb,超过部分$3.5/lb, 加燃油费和保险。

*************************************************************

三大快递公司我就不说了,Fedex, UPS, DHL,据说这种国际的快递,价格高的吓人,除非
有特殊情况,比如材料必须要隔天到的,而且不在乎钱的,那么这几家公司寄到国内的大
城市的确是很不错,快速,服务也好.但是国内快递还是不错的.

USPS,最近才发现有一项业务很不错,叫做Priority Mail International,要用USPS指定
的箱子,箱子是免费的,根据箱子(信封)的大小收钱.以下是报价
http://www.usps.com/prices/priority-mail-international-prices.htm

12-1/2” x 9-1/2” 的信封和8-5/8″ x 5-3/8″ x 1-5/8″的纸盒子,总重量在4lb以内
的,寄到国内只要12.95刀(含信封和箱子的价格),纸盒子有点小,我觉得用纸盒子寄化妆
品什么的还是比较划算的.而且速度还比较快.据说这种小箱子的一般海关不会查,道听
途说而已. usps在网上打印运单后投递会便宜10%左右.

再说说华人快递吧,一般都华人快递比较便宜,而且因为都提供中文服务,如果有了纠纷,
骂人用母语也比较方便么,呵呵.但是只在CA,NY这些大城市才有投递点,我在小城市,这
个是不太方便的.

网上比较多的是:AAE亚美,全一快递,飞洋快递,瑞天快递.这几家我都联系过,以下就价
格,保险,服务,速度等做一下比较.

瑞天快递 www.rt-express.com
这一家是我用的最多的,也是最方便的.你可以在他们网站上面注册以后,就可以填写运
单,有寄件人,国内的收件人,重量等,保险是实际价格的2%,货物最高价格不能超过2000
刀,你自己决定是否要买.如果货物丢了是会赔偿的,当然被海关没收除外.还有信用卡信
息.填写好以后打印运单(运单上的地址是瑞天公司),然后装箱,直接拿了运单到附近的
fedex投递.不需要额外付钱给fedex了.回家登陆网站,就可以随时查看到自己的货到什么状态.很方便.开始,我就是他们的忠实客户.

如果邮寄的是化妆品,公司是包清关的,反正就是会帮你做些处理,比如大包分小包之类,
一般是不会有问题的.至于gucci,coach之类算是奢侈品的包包,我打过好几次次电话询
问他们的客服,一次说会拆,一次说不会拆,一次说一次只能寄总价值200刀以内的,一次
说可以寄3-4个包,一次又说3-4个包肯定会被海关查,搞得我对它们的诚信度大大怀疑,
才开始尝试其它公司.

价格:我一般寄最普通的6-10天,6磅从我这里寄出到国内收到,一般是37刀左右,化妆品
分拆会加收钱2-3刀吧,有点记不清了.拆包的话也只收一个首重

速度:说实在有点慢,我第一次发,大概15天上海才收到.可能是从重庆报关的,然后辗转
到浙江,再到上海.国内用的是韵达快递.

但总的来说服务还是不错的.我寄了5次,2个包裹已经到了.

飞洋快递 www.gcexpress.com
这是我尝试的第二家,原因就是看上去价格很便宜,不足之处在于保险.但是因为也在加
州,我必需要通过其它快递先把东西寄去他们公司,然后再快递回国.他们的建议是混合
装化妆品,包包,衣服,这样不怎么会被查.

详细的操作方法:
1.发邮件到[email protected],说明是要开户
2.对方收到以后会给你发邮件,让你填写信用卡信息之类
3.你把包裹通过其它快递寄到他们公司(邮件里会告诉你写什么地址)
4.寄出后,继续给cs发信,附上你的信用卡信息,以及你的包裹的tracking number,以及
国内收货人的地址,包裹内含物,是否要拆分之类.
5.他们收到你的包裹以后会和你联系.

价格:首磅7刀,续磅3刀,加10%燃油费(其实加上国内运费就差不多了)
保险:这是我最大的顾虑.他们运费里面含保险费,但是赔偿的价格是10刀/lb,赔偿总价
不超过100刀.说是因为价值高了,海关容易查.反正这个万一起来就挺可怕的.

目前我寄了第一个包裹,usps寄的,6lb,国内运费就要13刀,1周到,貌似再加上国际运费
也差不多是40刀了.

全一快递
这个据说是声誉很高的,价格也有点高.当时就想着第一次寄还是找个保险点的就打电话
去询问了.结果是个声音像大妈一样的接的电话,还能听到旁边有电视的声音.操作同飞
洋,也要自己寄过去他们公司,5lb 4-5天刀,价格是38.5刀.(据称是首磅11刀,续磅5.5刀)

至于保险:大妈说,你寄过来吧,寄过来再说,丢了我们赔.我问怎么赔呢?大妈说:你寄过
来啊,丢了我们赔啊…..我很汗…..

AAE 亚美 www.us.aaeweb.com

这是我联系的第一家快递公司,也是一开始我印象最好的一家.但是他们的网站很差,一
定要登陆以后才能查,但是信用户怎么注册呢?网站居然只有”登陆”,没有”注册”,兜了好
久,极其ft.后来好不容易联系上他们一个cs,让我注册了.但是说开户要先首付150刀,到
时候从账户里扣.我就开始挺犹豫的.但是价格还不错,首磅是8.58,续磅2.5刀左右,一周左右.要是寄东西多也无所谓首付了.于是下定决心要邮寄,第 一批先给同事寄三个coach,打电话过去问,对方说3个,你这种平邮的,海关会查.建议按照小电器类邮寄报关,首磅是12刀左右,续磅大概4.5刀.我 就开始犹豫了,因为听说小电器类的海关比较会查的厉害…..后来就没有下文了

另外,如果有mm寄化妆品回国,也可以从网站直接购买以后,收件人写自己的名字,然后写以上几家快递公司的地址.然后再联系快递公司,告诉他们你的信息 (寄件人,收件人,信用卡,tracking number等,估计最后还是要邮件确认的),他们收到以后可以直接帮你寄回国,这样也省了国内的运费和时间.

我就通过瑞天操作了一次倩碧的化妆品,要在另一个链接里面开账户,但是很方便,他们的客服也很nice,挺顺利的.

…………………………………………………………………………………………….