Day10 永丰金API 订单通知服务

昨天提到今天要讲一个交易上特别重要的流程,就是付款状态!
为什麽呢?

因为在交易的过成功前是最重要的,订单建立失败顶多重新建立,
但是付钱後却没有显示付款完成绝对是大忌,使用者绝对暴跳如雷,
所以修改订单状态绝对是订单交易最重要的环节之一。

让我们回忆一下Day8 永丰金API 建立订单交易
建立订单里面提到的BackendURL付款通知url,
使用者付款完成後,永丰金会传送付款资讯到我们填写的url,
接收到资讯透过「讯息查询服务api」来确认通知讯息内容并修改订单状态,
老样子先上范例

//永丰金传送到BackendURL的参数
{
  "ShopNo": "商家编号"
  "PayToken": "讯息token"
}

//apIService 可参考Day7 永丰金API 基础流程5 -- 整理 
echo apIService("OrderPayQuery", $data);

//response
{
	"ShopNo": "商家编号",
	"PayToken": "讯息token",
	"Date": "202109061735", //讯息日期
	"Status": "S", //处理状态 S:成功 F:失败
	"Description": "S0000 – 处理成功", //处理代码
	"TSResultContent": {
		"APType": "PayOut",  //讯息类型 PayOut为付款结果
		"TSNo": "永丰金流单号",
		"OrderNo": "订单编号",
		"ShopNo": "商家编号",
		"PayType": "A", //付款方式
		"Amount": "50000",
		"Status": "S", //处理状态 S:成功 F:失败
		"Description": "" //处理代码
	}
}

整个流程就是接收永丰金通知资料,透过讯息查询服务api核实,
然後在修改订单付款状态,虽然流程不多,但这边也是非常重要的环节,
除了付款资讯要做二次验证之外,也容易发生掉单(掉状态)的情况,
至於为什麽要二次验证是因为,万一BackendURL位置不小心流出,
有心人士又知道的验证流程,即可仿造付款成功讯息,後果不堪设想,
虽然在永丰金里面因为通知的时候已经有透过讯息token封装过了,
应该是不会有该情况发生,不过还是养成好习惯。

另外一样这边只列出必要参数,还有一些详细的设定可以客制化例如自订栏位、
信用卡授权资讯,这边就不多做介绍。


<<:  [Day15] Tableau 轻松学 - 地图工作表

>>:  前言

[Day10]-字典2

遍历字典 Items() 可以取得key跟value Key() 只取得key Values() ...

[PoEAA] Data Source Architectural Pattern - Active Record

本篇同步发布於个人Blog: [PoEAA] Data Source Architectural P...

[Day9] 词性标注(四)-利用python实作POS任务

一. 资料准备 这边的code是参考coursera上课程的code,根据自己的需求改成中文的范例 ...

[Day12] Boxenn 实作 Record Mapper 与 Factory

建议搭配之前的 sequence diagram 一起服用! Dry Initializer 在进到...

Day 08-制作购物车系统环境之npm

建议跟Node.js搭配食用--->https://ithelp.ithome.com.tw/...