手机网站支付产品介绍
适用于商家在移动端网页应用中集成支付宝支付功能。
商家在网页中调用支付宝提供的网页支付接口调起支付宝客户端内的支付模块,商家网页会跳转到支付宝中完成支付,支付完后跳回到商家网页内,最后展示支付结果。若无法唤起支付宝客户端,则在一定的时间后会自动进入网页支付流程。
主要流程
开发者使用支付宝账号登陆开放平台(需实名认证的支付宝账号),根据实际需求创建应用(如“支付应用”)。
最后提交应用,一定要确认加密方式,保存公钥,密钥,方便后边使用。配置完成后,可提交审核,开发者点击提交审核后,预计会有一个工作日的审核时间。应用上线成功后,状态变为以上线,该状态下的应用能够调用生产环境的接口。
接口调用配置
laravel中集成alipay SDK的支付接口很丰富。在这里我采用的是alipay的原生SDK包。
下载PHP版本的Demo:支付宝手机网站支付PHP demo
放到www下访问后看看出来有很多功能,根据自己的实际需求去引用。
其中config.php是配置文件:
具体开发
1.引入SDK包
- 在app/新建libs文件夹,将SDK包放在该目录下
- 找到根目录下的composer.json文件,添加如下配置:
"autoload": {
"classmap": [
"database",
"app/libs/alipay" //这里是自定义包的文件位置,我将我项目中的该SDK包命名为alipay
],
"psr-4": {
"App\\": "app/"
}
},
- 执行以下命令
composer dump-autoload //当在包中加入新的类,需要更新autoloader
2.设置/引入命名空间
对AlipayTradeWapPayContentBuilder.php和AlipayTradeService.php设置命名空间,我设置的是:
namespace App\libs\alipay\wappay\buildermodel;
namespace App\libs\alipay\wappay\service;
对alipay/aop/request/AlipayTradeWapPayRequest.php和alipay/aop/AopClient.php设置命名空间,我设置的是:
namespace App\libs\alipay\aop\request;
namespace App\libs\alipay\aop;
在AlipayTradeWapPayContentBuilder.php中引入上面两个命名空间:
use App\libs\alipay\aop\request\AlipayTradeWapPayRequest;
use App\libs\alipay\aop\AopClient;
将AlipayTradeService.php中的下面代码注释:
// require_once dirname ( FILE ).DIRECTORY_SEPARATOR.’./…/…/AopSdk.php’;
// require dirname ( FILE ).DIRECTORY_SEPARATOR.’./…/…/config.php’;
5.配置config(alipay.php)
在上面中alipay的demo中是有一个config.php文件作为配置文件的,这里我们不需要这个文件,我们利用laravel的特性,在laravel项目目录下的config目录新建一个alipay.php:
6.对应config修改函数
在alipay.php中进行配置支付接口所需参数。下面我们修改alipay/wappay/service/AlipayTradeService.php: