支付宝扫码支付,手机浏览器跳转支付宝
预览
电脑端
手机浏览器
在线预览
实现
一、首先需要到支付宝开放平台注册一下
二、创建网页/移动应用
- 需要一点时间等待审核
- 进入刚才创建的应用,点击开发设置
- 接口加签方式点击查看,下载支付宝支付宝开发平台工具
- 上传应用公钥,下载支付宝公钥
- 接口内容加密方式:AES
- 设置服务器IP白名单
- 设置应用网关(服务器接收异步响应信息)
三、下载支付宝SDK
- alipay-easysdk
- 我这边使用thinkphp6所以下载PHP的,通过composer下载:
composer require alipaysdk/easysdk:^2.0
- 具体支付宝的流程可以查看[官方文档]
- 我在实现支付的过程中最头疼的问题是就收不到
异步通知
根据文档无法收到通知的原因有以下:
- 异步通知发送地址错误。
- notify_url 参数位置设置错误。
- 异步地址设置错误。
- 异步地址必须外网可访问。
- 异步地址必须能 post 接收数据。
- 接口默认不触发相关的交易状态数据通知。
可以通过云排查进行查询
更多步骤可网上自行查询,开通支付宝扫码支付根据文档不同产品可能需要营业执照才能使用,具体查看。
配置网关
public function getOptions()
{
$options = new Config();
$options->protocol = 'https';
$options->gatewayHost = 'openapi.alipay.com';
$options->signType = 'RSA2';
$options->appId = '';
// 为避免应用私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
$options->merchantPrivateKey = '';
// $options->alipayCertPath = '<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->';
// $options->alipayRootCertPath = '<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt" -->';
// $options->merchantCertPath = '<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->';
//注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
$options->alipayPublicKey = '';
//可设置异步通知接收服务地址(可选)
$options->notifyUrl = "你的域名/home/pay/notify_url";
return $options;
}
获取源码后并不是上来就能使用,这里只是提供了支付的流程,具体还需要根据自己的网站业务进行修改后才能正常访问!
© 版权声明
THE END