Day 13 - PHP SDK: 查询订单状态

昨天 Day 12 介绍了 Sinopac PHP SDK 关於建立订单的部分,接着今天要介绍的是查询订单状态。

查询订单

图 13-1
图 13-1: PHP SDK - 实例化 QPay 类别

在进行查询订单之前,一样先实例化我们的 QPay 类别,接下来的程序范例就省略这一段。

QPay::queryOrders(array $data)

查询批次订单,必须至少填入以下查询条件中的任何一个。如果是日期时间参数,则必须开始时间与结束时间为一对一起填入,且结束时间须大於开始时间。日期的时间格式都是 YmdHi,一共 12 码。

资料栏位 对应 API 的栏位 说明
order_no OrderNo 订单编号
pay_type PayType 付款方式。ATM 转帐:A、信用卡:C
order_datetime_begin OrderDateTimeS 交易起始时间,例如 2021/9/20 12:30 则带 202109201230。
order_datetime_end OrderDateTimeE 交易结束时间,例如 2021/9/20 23:59 则为 202109202359。
pay_datetime_begin PayDateTimeS 付款起始时间,例如 2021/9/25 12:30 则为 202109251230。
pay_datetime_end PayDateTimeE 付款结束时间,例如 2021/9/25 23:59 则带 202109252359。
pay_flag PayFlag 可接受的值为:YNO。依付款的不同,查询条件也不同,如下备注说明。

ATM 转帐:A

Y:完成付款 (已转帐)
N:未完成付款(未转帐)
O:帐号逾期

信用卡:C

Y:已请款的订单
N:未请款的订单(含:未付款、待请款、取消授权、授权逾期)
O:刷卡逾期(信用卡付款逾期被取消的订单)

程序码范例:
图 13-2
图 13-2: PHP SDK - 查询批次订单


QPay::queryOrderByToken(string $token)

使用 PayToken 查询单笔订单。

资料栏位 对应 API 的栏位 说明
pay_token PayToken 查询订单的授权码

参数只有一个。pay_token 是从建立订单时,从永丰金收款平台跳转回 return_url 带上。或者建立订单时提供 backend_url 栏位让收款平台在收完款後主动通知提供该值。

程序码范例:
图 13-3
图 13-3: PHP SDK - 查询单笔订单

API 回应

在前一个文章段落介绍的建单过程取得永丰金收款平台的 API 回应後,资料栏位在 Message 且 SDK 已自动解密可直接取用。

<?php
if (!empty($results['Message'])) {
    print_r($results['Message']);
}

查询批次订单

图 13-4
图 13-4: 查询批次订单 Messsage 栏位 (JSON 排版)

比较重要的栏位资讯为 PayStaus,须查询 API 文件 第 54 页的章节「交易状态代码说明」,以这个例子来说,IC400 代表信用卡请款完成。IA400 代表虚拟帐号付款完成。

查询单笔订单

图 13-5
图 13-5: 查询单笔订单 Messsage 栏位 (JSON 排版)

图 13-6
图 13-6: 文件第 30 页

在 API 文件的第 30 页有详细的说明回传的讯息内容判读的方向。APTypeStatus 为最重要的回应栏位。

总结

以上就是 Sinopac PHP SDK 主要的功能。接下来在 Day 14,会使用 Pure PHP 建立模拟的网页来演练一下实际的流程。根据国外的市场研究,WooCommerce 是目前市占最高的电商解决方案,第二名为 Shopify,而在 Day 16,我们就要开始进入 WooCommerce 电商的世界罗。欢迎有兴趣的朋友准时收看喔。


本文更新於笔者的 TerryL 部落格,Day 13 - PHP SDK: 查询订单状态,有兴趣可前往阅读及讨论。


<<:  Day 12 - 在 FRRouting 上设定 BGP

>>:  [Day25] 在 Codecademy 学 React ~ 终於来到 Hook 的世界 ‧ useState 篇 (2)

Day 17 - SVG 使用

唷呼~各位看官们今天最後一天上班日,明天就要放中秋连假了,欢呼吧,各位!下班後要搭乘大众运输返乡的...

Day28 火堆实作 - 模组参数

昨天我们提到把模组都连起来,接着我们就可以调整模组上的参数了, 首先看到 " Mappin...

进击的软件工程师之路-软件战斗营 第九&十周

学习进度 无教学进度 心得感想   这两周几乎没上课都在全力为游戏期中专题冲刺,而我也似乎回到大学期...

MLOps在金融产业:系统再现

再现性是指在这个模型产生出来以後,由不同的开发者或利益相关者,重新创建相同 ML 模型的能力。这其中...

[Day22] Tableau 轻松学 - TabPy 介绍

前言 Python 是一种直译式语言,近几年在资料科学中 (例如:人工智慧、大数据分析 等) 有着耀...