支付宝公钥证书支付示例

本文详细介绍了如何实现支付宝公钥证书支付,包括创建支付应用、生成公钥证书、验证证书、下载服务器端SDK,以及编写支付DEMO的过程,特别讨论了在前置支付中遇到的alipay_root_cert_sn为空的问题及其解决方案。
摘要由CSDN通过智能技术生成

支付宝公钥证书支付示例

支付宝平台仅提供了普通公钥签名方式的电脑支付DEMO(下载),并未提供使用公钥证书的电脑支付DEMO,在阅读了老版的SDK之后,自己编写了这个DEMO。

效果图

支付测试页面
支付测试页面支付宝默认支付页面
支付宝默认支付页面前置支付生成的支付二维码,用于嵌在商品页面。
前置支付二维码

开发前的准备

创建支付应用

登录支付宝开放平台,创建新的应用。依次点击”创建应用“ --> ”网页&移动应用“–>”支付接入“,根据页面提示,补充完整所需信息。
创建支付应用

添加支付能力

支付应用能力列表

生成公钥证书

使用阿里支持提供的公钥证书在线生成工具生成公钥证书。

密钥长度推荐选择RAS2,密钥格式分为JAVA适用非JAVA适用两种,本文中使用的PHP,所以选择了非JAVA适用
生成密钥点击”生成CSR“按钮,会弹出新的窗口用来填写创建证书文件所需的信息。点击”生成CSR并保存“按钮,会自动下载一个压缩包文件,这其中包含了三个文件:应用公钥应用私钥CSR文件
生成CSR至此,离证书生成还有一步之遥。回到支付宝开放平台,并进入刚刚创建的支付应用,点击左侧的”应用信息“菜单,设置接口加签方式。
修改加签方式在这里选择公钥证书,并上传刚刚通过加密工具生成的CSR文件。
加签CSR证书验通过后,可以看到如下图所示的三个证书下载链接。
在这里插入图片描述
保存好这三份证书文件,以及通过密钥工具生成的应用公钥和私钥

验证密钥证书是否匹配

通常情况下是可以跳过这一步的。在测试阶段如果遇到类似错误提示密钥不匹配时,可以按照支付宝官方文档指导来验证密钥证书是否匹配。

下载服务器端SDK

PHP SDK(老版) 下载

编写DEMO

待上面所有准备工作完成后,我们就可以真刀实枪的开始编写测试DEMO了。

支付测试页面

我们需要先编写效果图中的支付测试页面,用于灵活录入支付所需的一些参数,如商户订单号、订单名称、商品描述、订单金额等。

<body text=#000000 bgColor="#ffffff" leftMargin=0 topMargin=4>
<header class="am-header">
    <h1>支付宝电脑网站支付(公钥证书)支付体验入口页</h1>
</header>
<div id="main">
    <form name=alipayment action=pagepay.php method=post target="_blank">
        <div id="body1" name="divcontent">
            <dl class="content">
                <dt>商户订单号 Out Trade No :</dt>
                <dd>
                    <input type="text" id="WIDout_trade_no" name="WIDout_trade_no" />
                </dd>
                <hr class="one_line">
                <dt>订单名称 Subject :</dt>
                <dd>
                    <input type="text" id="WIDsubject" name="WIDsubject" value="Payment order for Learning Mall course"/>
                </dd>
                <hr class="one_line">
                <dt>付款金额 Amount:</dt>
                <dd>
                    <input type="text" id="WIDtotal_amount" name="WIDtotal_amount" value="0.01"/>
                </dd>
                <hr class="one_line">
                <dt>商品描述 Body:</dt>
                <dd
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值