PHP 接入支付宝公钥证书指南

为了简单快速的接入,在申请支付宝商户后,我们可通过沙箱应用进行测试

准备证书

首先登录支付宝开放平台沙箱环境:开放平台-沙箱环境

RSA2(SHA256)密钥 设置中的加签模式选择 公钥证书,然后访问 开放平台文档中心 - 签名专区 - 工具 下载对应操作系统的 支付宝开放平台开发助手

打开 支付宝开放平台开发助手 后,直接点击左下角 获取 CSR 文件:【你没看错,就是 PKCS8
获取CSR文件
沙箱环境必须在“组织/公司”一栏处填写“沙箱环境,其它信息可随意,域名参考即可。
如果需要可填写自身用于调试的域名,可填写根域名如 example.com,或二级域名 api.example.com

点击下方打开文件位置,可以看到如下三个文件:

xxx.alipay.com.csr
xxx.alipay.com_公钥.txt
xxx.alipay.com_私钥.txt
正式环境中私钥非常重要,请妥善保存

回到网页,上传已生成的 CSR 文件:
上传 CSR 文件
接着下载页面上的三个文件:
下载三个证书文件
记得下载安装下方沙箱版钱包,用于调试沙箱环境支付【仅支持 Android】

编写代码

这里提供两种方式,一是直接接入官方 SDK,通过 require/include 加载;二是通过 Composer 包自动加载

官方 SDK

首先需在此下载官方 SDK:App支付服务端 DEMO & SDK

然后在 PHP 服务端 SDK 生成 APP 支付订单信息示例 中参考下单代码。

证书相关参数设置参考 JAVA 服务端 SDK 生成 APP 支付订单信息示例(证书)

Composer 包

推荐使用 omnipay-alipay,博主已提交代码支持公钥证书模式

使用方法非常简单:

// 创建基本网关
$gateway = Omnipay::create('Alipay_AopApp'); // App 支付

// 使用证书模式时必须设置签名类型为 RSA2
$gateway->setSignType('RSA2');

// 以下设置基本的 AppID、私钥、支付宝根证书、支付宝及 App 公钥证书等等
$gateway->setAppId('the_app_id');
$gateway->setPrivateKey('the_app_private_key');
// $gateway->setAlipayPublicKey('the_alipay_public_key'); // 【删除此行】证书模式无需设置支付宝公钥
$gateway->setAlipayRootCert('the_alipay_root_cert'); // 对应 alipayRootCert.crt 文件
$gateway->setAlipayPublicCert('the_alipay_public_cert'); // 对应 alipayCertPublicKey_RSA2.crt 文件
$gateway->setAppCert('the_app_public_cert'); // appCertPublicKey.crt
// 检查支付宝公钥证书【可忽略】
$gateway->setCheckAlipayPublicCert(true);
// 相关回调通知地址
$gateway->setReturnUrl('https://www.example.com/return');
$gateway->setNotifyUrl('https://www.example.com/notify');

至此基本的网关构建就完成了,最后对网关进行需要的操作就行了,例如创建订单:

/** @var AopTradeAppPayResponse $response */
$response = $gateway->purchase()->setBizContent([
    // 请求内容参考支付宝文档
])->send();

// 获取订单字符串用以 App 支付
$orderStr = $response->getOrderString();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

至天

看心情啦,最好留着自己喝奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值