需求
一个平台,入住多商家,每个商家都要开通支付。
微信
微信 api 文档:https://pay.weixin.qq.com/doc/v3/partner/4012719997
微信银行列表组件:https://pay.weixin.qq.com/doc/v3/partner/4012160714
-
准备一份 iso_3166-2-code 区域数据。
- 如北京市 code,一般我们用 110100
- 而 iso-3166-2-code 却不一样,是 10,需要建立一个映射
- 银行组件查询需要
-
采集银行组件到数据库
- 这是前置步骤,因为提交接口的:bank_account_info(银行结算信息)会校验。
- 4398 个银行,147037 个支行
- 查询某个省所有城市
- 查询这个城市的所有银行,插入数据库
- 支行也同理
-
资料提交
- 建议用 ocr
- 我们用:阿里云-OCR 统一识别
-
写个命令,查询"查询申请状态",并修改状态。 这个称之为"命令 a"吧
- 修改数据库,状态为微信返回的
- 修改数据库,签约地址为微信返回的
- 如果签约成功,会有商户号返回,根据业务,修改数据库。
-
提交成功,立即调用一次"命令 a"
- 因为提交成功,签约 url 微信就会有返回
- 虽然可能是待审核,但是把 url 作为二维码展示出来,后续微信会引导客户签约的。
-
"命令 a"加入定时任务
- 因为状态改变,微信不会回调,需要主动查询。

支付宝
支付宝 api 文档:https://opendocs.alipay.com/open-v3/e1eb4236_alipay.open.agent.facetoface.sign
我签约的是当面付。
-
需要分三步才能提交的 - 开启代商户签约、创建应用事务 -> 代签约当面付产品 -> 提交代商户开通
-
提交后,不用立即查询。
- 因为待审核,是不会返回"确认 url"的
-
同理写个命令,查询状态。
- 当状态为"待确认",才会返回"确认 url"。
- 将 url 展示出来,或者让用户在支付宝确认。
- ...

最后通过了,虽然有商户号。 但是支付宝需要用 token 才能代支付的。
5. 商家完成确认开通授权后,系统会发送异步消息到第三方应用设置的应用网关。异步消息包含商家的 token ,是服务商代商家发起业务操作的必须要素,一定要妥善保管。 异步消息示例... 来自: https://opendocs.alipay.com/open-v3/09d0j2?pathHash=b829d34a
支付宝的坑
支付宝需要的内容非常少,但是极其容易误导人,狗屎一样的页面。
-
在支付宝后台页申请,会把商家加入到风险商户。
- 签约风险,看文字提示,必须申诉才能继续申请把?
- api 可以无视,直接调用的
-
比如我只签约了当面付,"订单码支付"没开通,我能生成二维码支付吗?
- 答案是能。
- 为什么不开通也能? 所以才说容易误导。

-
...
我做支付宝,比做微信更加耗时。
大部分时间都被支付宝带偏了。
