Paypal 支付 REST 接口介绍

Paypal 支付提供了两种风格的 API 接口(如下图),一种是 NVP/SOAP 风格的经典接口,另一种是比较新的、 RESTful 风格的接口。NVP 风格目前已经被视为遗留接口,官方推荐使用 RESTful 接口访问。但目前网络上流传的资料还是以 NVP 居多,介绍 REST 接口的比较罕见。

本文是对目前使用 Paypal 支付接口的一个总结,也供有类似需求的朋友参考。

为什么我(作为程序员)要避开中文

题目可能有些容易引起误会。作为中国人,我们在日常生活中当然要使用中文,这是没有疑问的。然而,在程序员的世界中,我会在很多情况下尽量远离中文。前几天有朋友问我一个有关 GBK 编码的问题,我不愿意回答,他很不理解。但这是我自己思考以后做出的选择。

我并无意让其他人都接受我的意见。不过还是有必要说明一下我做出这些选择的理由,是否认同就是你的事情了。我相信读者的背景和知识范围会对他的选择有极大的影响。所以,觉得百度是世界上最好的搜索引擎的同学可以 Alt + F4 了,这篇文章不是为你写的。

接下来我会说明,在哪些地方尽量不要使用中文,以及为什么要这样做。

用 Teamcity 实现 .Net 平台下的持续集成 - 构建

本文中,我将以自己的一个项目作为例子,说明如何在 TeamCity 中定义并执行代码构建。

我使用的例子为自己开发的Shuhari.Framework。这是我从自己开发的项目中提炼出来的一个小型 .Net 类库,包含了方便项目开发的一些常用方法封装。你不必关心它的具体内容,我们只是把它作为一个例子来说明构建方法。

用 Teamcity 实现 .Net 平台下的持续集成(目录)

本文是下面一系列文章的总目录,介绍在 .Net 平台上,如何以 JetBrains TeamCity 为工具实现代码的持续集成,也是过去一段时间工作的一个总结。完整的文章目录在 最后部分

前言

我假设你已经了解了 持续集成 的基本概念。如果没有的话,上面的 Wikipedia 链接可以作为起点,或者阅读 Martin Fowler 大叔的文章,以及同名书籍、该领域的经典著作《持续集成》。

本文及后续的文章中有些地方会将“持续集成”按照社区的惯例简称为“CI”。它们的意思是完全相同的。

那些我不想回答的坏问题

我喜欢在网站上浏览各种别人提出的问题。有耐心的回答者提供详尽丰富的内容能让人直接受益;有些问题不见得多么有意义,但看看别人大开的脑洞也挺有趣。

但很无奈的现实是:无论在哪里,没有营养的小白问题都占了大多数。尤其在 知乎 这样的地方,人家邀请你,你装没看见吧,不好意思;耐心回复吧,一遍遍解答入门级的问题对我没有任何益处。

说这些并不是因为我鄙视小白;没有人生来就是大牛的。包括我自己,在某些领域或许可以(有点心虚地)自称专家,但在其它不熟悉的行业我就是小白。不过,小白也有小白的道德。因此,我希望把自己看过的,不喜欢的、不合理的、会冒犯观众和回答者的情况,在这里总结一下;也希望以后再有类似问题时,能够直接把总结的内容丢出去作为答复,免得总是要在无意义的事情上浪费太多时间。

这篇文章可能没有多少深度可言,其实大部分内容别人已经说过很多遍了,主要是写给初级用户听/看的。对于有丰富网上问答经验的读者,建议看到这里就可以直接关掉窗口了。

从比尔盖茨的代码想到代码风格

首先还是说声抱歉。今天是 8 月的最后一天,但续期证书仍然失败。暂时没有什么好办法, 今后几天请光临的朋友暂时移步 HTTP 版本 吧。

今天看到一则 CNBeta 新闻, 是比尔 盖茨在 1978 年为 Microsoft Basic 写的代码,在今天这个互联网时代来说,堪称 代码活化石了吧。

通知:9月起博客暂时切换到 HTTP

前几天博客证书错误的原因找到了。在网站迁移的时候博客配置文件没有复制成功,但 Certbot 创建的 cron job 还是很顽强的不断重发请求(大概每天一次的频率),几天以后就因为请求次数过多被 ban 了。

该问题出现的原因是,LetsEncrypt 的服务应该是为了避免被滥用而限制了一定时间内可以使用的次数,如果超过次数,则会禁止使用一段时间。而 Certbot 的定时服务并没有考虑为什么出错,只是简单粗暴地反复尝试,于是一段时间以后就被封了。