thinkphp实现支付宝支付支付扫码页面html+css+js

使用支付宝扫码支付

预览

在这里插入图片描述

在线预览

点击链接进入

一、实现

首先需要到支付宝开放平台注册一下

二、创建网页/移动应用

  • 需要一点时间等待审核
  • 进入刚才创建的应用,点击开发设置
  • 接口加签方式点击查看,下载支付宝支付宝开发平台工具
  • 上传应用公钥,下载支付宝公钥
  • 接口内容加密方式: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;
    }

完整支付流程源码获取

获取源码后并不是上来就能使用,这里只是提供了支付的流程,具体还需要根据自己的网站业务进行修改后才能正常访问!

https://hpc.baicaitang.cn/1906.html