






许许多多的人在首次涉及第三方支付对接开发之际 , 脑海中充斥着满满的疑问: 究竟该以怎样的方式进行接入? 需要做好哪些方面的准备事项? 它是否会显得极为复杂? 实际上说白了 , 这便是要将你的网站或者小程序与诸如支付宝 、微信支付等这般的平台连接起来 , 以便使用户能够实现在线付款。这件事情听起来似乎颇为吓人 , 然而把它拆解开来进行查看 , 其核心要素仅仅就是那么几块具体的东西。
搞对接之前, 得把所需之物准备周全。首先咧, 一定得有个已备案的域名, 并且此域名还得是https协议, 当下要是没https, 基本上是没法通过审核的。其次, 要有营业执照, 个体户的执照也行, 个人通常承接不了正规支付业务。接下来要前往支付宝开放平台或者微信支付商户平台注册一个账号, 提交相关资料后等待审核, 审核速度快的话当天便能通过, 要是 的话可能会耗费你三五天的时间。
您在审核被通过之后, 便会获取到一系列关键参数。例如有应用 ID, 商户号, API 密钥等。这些参数就像您的“身份证”一样, 在后续对接进程中会被多次使用。
此外, 存在这么一点, 经常被好些人给忽视掉, 那就是, 你得预先规划好回调地址。所谓的回调地址, 指的是, 在用户达成付款操作之后, 支付平台用来告知你“款项已到账”的接口地址。需格外留意的是, 此地址必定得能够在外部网络环境当中被访问, 采用本地的是不行的。
没少见过有朋友卡在这一步, 觉着只要拿着代码就能够运行, 然而参数配置不正确, 回调地址书写错误, 一番折腾持续两天之后才发觉是缺少了一个签名。故而前期准备工作妥善完成, 后面能够节省一半的气力。

在正式开始踏上写代码的行程之后, 你就会体会到官方文档事实上讲解得极为清楚明白, 可是其中所存在的陷阱也确实相当多。最首要面临的一个大陷阱就是签名算法。支付宝所运用的是RSA2算法, 而微信支付采用的却是HMAC - 算法, 这两种算法完全不一样。要是你拿着支付宝的签名方式去调用微信接口, 肯定会出现报错的状况。所以建议直接通过官方SDK来进行修改, 千万不要自己动手编写签名, 因为这样子很容易遗漏参数。
另外, 于实际写代码进程里, 除签名算法此大坑外, 还有别的一些细节亦需格外留意。比如说, 不同支付情形之下, 对于参数格式之要求亦不一样。有时某个看似不显眼的参数格式错误, 皆有可能致使整个支付流程生出问题。故在编写代码之际, 务必要仔细对照官方文档, 确保每个参数之格式都精准无误, 防止因这些小问题而惹来不必要的麻烦, 妨碍支付功能正常达成。
要说的第二个坑, 是关于异步通知处理这方面。你瞧, 用户完成支付动作之后, 支付平台会以异步的方式给你发送一个通知。在这种情况下, 你需要在回调接口那儿, 去验证签名, 还要核对订单金额, 并且更新订单状态。好多人, 仅仅处理了同步回调这一块, 也就是用户付完钱跳回到你网站的那一步, 然而异步通知却没有去写。如此一来, 结果就是用户看到订单显示为“已支付”状态, 可你自己的后台显示的却还是“未支付”状态, 整个就乱套了。
仍存在一细节, 即重复通知。支付平台很有可能发送好些次通知, 而你的接口必须达成幂等, 也就是收受重复通知之际不可胡乱更新状态。简便的做法是先去查询一回订单状态, 要是已然处于“已支付”状态, 便径直返回, 不要再做一次更改。
接下来讲个常见之事如下所述: 证书所涉及的相关问题。微信支付当中的部分接口, 其需要下载商户的证书, 将该证书放置于服务器所指定的目录当中。要是有人把证书搞丢了的话, 或者路径写错出现错误状况的话, 那么接口便一直无法正常调用畅通无阻。在此建议创建起一个专门用于存放证书的文件夹, 路径要写在配置文件里面, 千万别采取硬编码的方式。
