Skip to main content
get_credential 返回 credential.key 与 credential.payload 时,使用本页范例。先按云端平台接入线下联系 Clink 配置平台公钥,再使用对应私钥解密。 如果响应已含 credential.card,直接继续 Browser Pay 流程,无需解密。

解密凭证

复制下方折叠区中的函数,传入私钥及同一次响应中的 key、payload 原值。返回的 body 包含支付信息和结果上报所需的标识。
使用 Python 3.10+,先安装依赖:
private_key_pem 接受未加密的 RSA PEM 私钥字节。密钥加载方式按平台现有实现调整。函数解密失败时抛出异常,不返回支付数据。

读取支付信息

使用 body 中实际返回的字段: 同时保留 get_credential 响应外层的 operation_id,用于 confirm_result.operationId。
解密后的 amount 使用主货币单位,例如 USD 12.50;get_credential.amount 和 confirm_result.paidAmount 使用最小货币单位,对应为 1250。上报实际付款金额时按币种精度转换,不要直接复制解密后的金额。

填写卡信息

解密后的 body 包含 signedPayload 时,使用下面的辅助函数读取其中的卡字段。先复制折叠区中的函数,再调用:
与上方解密范例共用导入。此函数只读取 signedPayload 中的字段,不验证 JWT 签名。
提交前检查卡号、安全码和到期字段是否齐全,并在凭证有效期内使用。后续提交与结果上报见 Browser Pay。

处理解密失败

无法解密时,先检查私钥是否匹配当前平台及环境配置的公钥,以及 key、payload 是否来自同一完整响应。仍然失败或缺少支付字段时,停止提交并联系 Clink 排查。 已签发凭证但未提交支付时,使用可取得的订单与 Operation 标识调用 confirm_result,上报 NOT_SUBMITTED;需要提供 failureReason 时使用 OTHER。标识不可用或需要再次获取凭证时,按 Browser Pay 恢复流程处理。