Day25 - [丰收款] 永丰线上收款支付API功能实作总结(1)

今天开始要把我们先前花了24天研究与实作的永丰线上收付款API -- 丰收款 (funBIZ),作一些总结与回顾,让有兴趣要使用的朋友,了解要注意的地方,以及还有哪些不在本次实作范围内,但可以额外添加的部份。

你是谁?你需要丰收款服务吗?

要谈这个问题,当然需要知道丰收款是作什麽的。丰收款是永丰APIs众多服务中的一个,专门提供给电商网站平台作为金流服务支付款的解决方案。

所以谁需要?你如果满足以下情境你就可以是丰收款的用户。

  1. 你有一个自己规划设计与建置的电商网站,且需要提供客户卖买行为的网站
  2. 你有购物逻辑,但你自己没办法处理金流的部份
  3. 你希望可以提供以下金流方式给顾额
    • ATM转帐 (A. 产生虚拟转帐帐户给顾额 / B. 提供线上WebATM或OTP转帐网址 )
    • 线上刷信用卡服务
    • 提供LINEPay线上支付 (规格书有提及,但没有说到细节)

https://ithelp.ithome.com.tw/upload/images/20211010/20130354AylfGJYwjP.png
图:只有在文件中的收款情境提到LINEPay一次,但无提供规格内容

如果你符合上述情境,恭喜你,永丰APIs的丰收款可以帮助你解决这个问题。

事前要做些什麽?

既然你希望你电商平台的顾客,可以透过永丰提供的线上付款方式来付款,比如确认订单後,就把网址导入到永丰的信用卡刷卡网址,顾客开心的刷完钱後等待後续的出货流程等等。

所以在此之前,你当然需要先正式的和永丰丰收款运行单位接洽,提供永丰所需要的资讯与申请流程,中间有哪些规范与审核流程等,需要有兴的朋友直接与永丰接洽。

需要先进行相关申请程序後,你才能取得如整系列文章中提到的「商店代号」以及「4组Hash代码」。

完整丰收款的服务,其实是在永丰的数位支付整合服务中,网址请到:
https://funcashier.sinopac.com/digital_payment/index.html

而有兴趣申请的朋友,可透过以下连结与永丰联系:
https://funcashier.sinopac.com/WebSite/Pages/api_webform.aspx

丰收款可完整的服务,但此次未提及的部份

其实丰收款的服务范围,比这次提供的线上收付款(ATM、信用卡)还要多,从上面官网可以了解到:

提供多种收款方式
「丰收款」可弹性符合您的商业模式与多种收款情境,透过技术串接方式将收款金流整合到既有的购物网站。若您也准备拓展陆客市场,可选择透过QR Code收款或POS收银台扫描进行实体店面支付宝收款。

其中,在收款方式又分为境内收款以及跨境收款两种。

境内收款

而境内收款,可以看到其实除了线上收款的服务,永丰也提供了超商取货付款的延伸介接。(以目前的时间点看,是与全家便利商店合作,未来是否会再和其他更多的超商,请再官网关注)
https://ithelp.ithome.com.tw/upload/images/20211010/20130354ZEw2f25sdP.png

跨境收款

而跨境收款,是提供「实体通路」的服务,当然你需要有实体店面的买卖才会需要使用。但主要可提供大陆消费者用支付宝来付款。
https://ithelp.ithome.com.tw/upload/images/20211010/20130354N2fUqRAkR5.png
https://ithelp.ithome.com.tw/upload/images/20211010/201303543J0pu7uzWa.png

电商有了金流服务,然後我怎麽收款。

上述了解完後,我们再跳回来电商平台的金流服务。你的电商顾客刷完卡後,你的後续服务流程会继续走,该出货的出货,但顾客是把款项付给了永丰,因此当然在申请流程中永丰会和你要作帐务连结的银行户头等资料。

你的金流先由永丰代收後,需要由电商主自行依照永丰定的请款流程和永丰申请款项,这部份细节不在这次的技术推广范围之内,但是这是必需要理解会产生的环节。包含不同的支付方式的请款的期限与周期多久,或请款流程中的服务费用等,这都请和永丰洽谈才会知道。

我的电商平台要怎麽介接与实作的环境?

这次我铁人赛是以Python为基础,使用Python的Django Web框架,透过Heroku PaaS平台建置与布署,资料库使用Postgres,中间很鸡肋的带了一些Vue以及Bootstrap5,这些如果你是从前面开始看文章的朋友应该很清楚。

但丰收款API,是一个REST API,所以你可以使用任何符合HTTP标准的Request/Response方式串接的程序语言与架构,都能实作,因此并无什麽实作环境与语言选择的限制。

你一直说「开发规格书」,到底在哪里呀?

其实这一系列文章,因为我们报名了iThome铁人赛,所以因为合作关系我们会与永丰提出参赛的测试申请,因此会取得由永丰寄来给参赛者的相关文件与资料。

其中包含了:

  1. 开发规格书 一份
  2. 所需的测试用商店资料(ShopNo, Hash代码4组)
  3. Sample Code一份 (C#, PHP)

因此,如果看这系列文章的读者,手上虽然没有开发规格书,但我认为不影响你了解整个丰收款的功能与实作细节。但如果你是透过上述方式取得了永丰提供的正式文件者,你是也会有一份开发规格书的,那想必你会更清楚的知道所有规格书中提及的内容。

因此,即规格书中使用的都是测试环境好像整份提供出来应无大碍,但还是先维持符合永丰与iThome铁人赛的合作关系,我们虽然文章中也有从规格习中引用或截图等的部份资讯,但没有取得同意下就不放上整份文件给大家参考。

好啦,给你看一下封面 (笑)。
https://ithelp.ithome.com.tw/upload/images/20211010/20130354888fcMGYDO.png

聊聊语言与框架的选用

而有兴趣是以C#或PHP来实作的朋友,就可以直接参考永丰官方提供的Sample Code。但这次铁人赛当然希望研究些不同的东西,即使这两个网页开发架构都是我原本熟悉或多年前接触的,因此反而为了冒险与创利,刻意不选用这两个语言与框架来撰文。

但如果你是以电商实作为目标,反而你挑选这两种其一,会比较有直接可参考的程序码。(至少是官方写的)

不选我一直认为,语言只是一个基础工具,就像一篇在讲述如何教你作菜的文章或影片,被翻译成多国语言一样。本质还是在讲作作菜的流程与手法,语言不同并不是太大问题。

当然,你可能要从中挑语病,会说Django是框架,不是语言呀,语言只有Python吧。但这就和教你作菜中的老师,他用的炉子、锅子、铲子等,想必和你手中的炉子、锅子、铲子的牌品与规格略有不同,但他们都是有相同的功能的工具。

Django是Web框架,虽然和ASP.Net (或.NET Core)或PHP提供的细节不同,但概念是一样的。我认为这也不直接影响你会学会这一道菜的目标。

因此,有兴趣想快速了解永丰API的实作过程,这些都不应该对剖析与了解有太大影响,当然如果你本身就对Python实作有兴趣者,希望这系列文章有帮助到你理解。虽然我不能说我的实作写法是最好的,但至少从零开始到确定可完成实作结果。

今天就先写到这里,下一篇继续聊聊。


<<:  Day26-React PropTypes & DefaultProps

>>:  自动化测试,让你上班拥有一杯咖啡的时间 | Day 26- 学习 cypress filter 的用法

day20 : redisDB keyDB on K8S (下)

昨天简略介绍了redis cluster的架构以及小小的讲了一下keydb,所以今天会透过redis...

Re: 新手让网页 act 起来: Day18 - React Hooks 之 useRef

前言 探索完 useState 与 useEffect ,今天就让我们回来继续介绍其他的 React...

Day 26: 出门前的Cypress 杂记

今天一早要出门,所以就大概讲一下常用的一些小撇步以及昨天有讲到的commands. 大家怎麽去抓取D...

[Day08] 流程判断:if else 与 switch

「如果怎样就做某件事,否则做另一件事。」这个在聊天时都会拿来用的“程序语法”,来看看在 JS 上怎麽...

Day23:今天来谈一下Azure Sentinel 中的查询记录

Azure Sentinel会收集储存在资料表中的记录资料。Azure Sentinel中的[记录]...