Skip to content
赞助

Apple 支付 ​

WARNING

Apple 的实现由 AI 生成并经人工审核,但由于测试资源限制,尚未经过实际测试,请在充分验证后再用于生产环境。

Apple 目前直接内置支持以下快捷方式支付方法,对应的支付 method 如下:

方法名说明参数返回值
payToken支付令牌验签解密array $paramsCollection
merchantSessionApple Pay 网页商户验证array $paramsCollection

payToken ​

例子 ​

php
Pay::config($this->config);

// 注意:入参必须是数组形态,token 值支持 JSON 字符串 / 数组 / Collection
$result = Pay::apple()->payToken(['token' => $token]);

参数说明 ​

token 为 Apple 支付令牌,其结构如下:

字段说明
database64 编码的加密卡数据
signaturebase64 编码的 PKCS#7 签名
version令牌版本(EC_v1 / RSA_v1)
header令牌头(ephemeralPublicKey、publicKeyHash、transactionId、applicationData 等)

返回值 ​

验签解密成功后返回明文卡数据,主要字段如下:

字段说明
applicationPrimaryAccountNumberDPAN 设备卡号
applicationExpirationDate卡有效期(YYMM)
currencyCode货币代码
transactionAmount交易金额

WARNING

该能力为服务端本地验签解密(PKCS#7 证书链 + ECDH + AES-256-GCM),未与真实 Apple 设备联调验证,请在生产环境使用前自行充分测试。

merchantSession ​

例子 ​

php
Pay::config($this->config);

$result = Pay::apple()->merchantSession([
    'validation_url' => $url, // 前端 onvalidatemerchant 事件获取的一次性 URL(5 分钟过期)
    'initiative_context' => 'shop.yansongda.cn', // 必填:Apple Pay 网页注册的商户域名
    'display_name' => '示例商户', // 选填
    '_http' => [
        'cert' => ['/path/to/cert.pem', 'passphrase'], // TLS 双向认证证书透传
    ],
]);

WARNING

debug 日志会记录 payload 全量(含 _http 中的证书口令),生产环境请注意日志级别。

Released under the MIT License.