图 4-1: 各栏位资料范例
安全签章的要件,我们已经拿到 Nonce 及 HashId 了,接下来还需要内文杂凑。我们来看看 API 文件对於取得内文杂凑的描述。
图 4-2: 文件第 19 页。
文件这一段的重点为,空值的参数(空白、空阵列)以及多节点参数(指的是值非为字串、数字,其值为还有下一层的阵列或物件)都必须移除,接着对栏位名称进行排序。
真正要传给丰支付 API 的订单资料栏位,称为讯息内文。
图 4-3: 范例 - 建立订单的资料结构。
讯息内文原始的资料如上图,经过处理後如下图。
图 4-4: 范例 - 排序及去除空栏位及多节点栏位。
接着把过滤後的资料转成网址型态的字串,但不要有 RFC1738 或 RFC3986 编码。
图 4-5: 范例 - PHP 函式参考。
PHP 的开发者可以使用 http_build_query
函式将阵列转换为网址型态的字串,再使用 urldecode
还原为未编码字串。
图 4-6: 范例 - 内容杂凑後字串。
如此一来,就得到了讯息内文的杂凑了。
总结今天的文章,讯息内文杂凑流程可以简化为下图:
图 4-7: 讯息内文杂凑流程。
在得到讯息内文杂凑的字串後,搭配前两天拿到的 Nonce 及 HashId,要来计算出安全签章 Sign 了。明天的文章,一样会有详细的图文说明如何使用这三段字串资料去算出安全签章 Sign,我们明天见罗 ^^
本文更新於笔者的 TerryL 部落格,Day 4 - 安全签章: 讯息内文杂凑,有兴趣可前往阅读及讨论。
>>: Day 03: 有意义的命名、好的注解、垂直 & 水平编排
现在来测试一下我们写出来的网页~ Bug1 发现注册之後只会看到"success"...
在Oracle资料库中有两种方式可以定义约束规则(作用相同): 栏位层次约束(行内规范):将规定写在...
Day 11 - Kotlin的函式(2) 昨天我们讲了list集合,以及如何取得数值,今天我们要继...
嗨大家好~我是凯西!接下来是我开学的三十天实力增进计画的纪录 规划上会刷leetcode加强我的py...
What is i18n? i18n为Internationalization的缩许,取概要和结尾文...