对接支付宝支付

  • 注册支付宝企业账号
  • 申请支付产品
  • 成为支付宝开发者

下面假如您已经申请了“手机网站支付”

开发设置

WX202106202336282x.png WX202106202307012x.png WX202106202312442x.png 主要设置了接口加签方式IP白名单,其他用不到

接口加签方式

普通公钥与公钥证书区别1️⃣

应用私钥、公钥和支付宝公钥2️⃣

  • 应用公钥(public key)需提供给支付宝账号管理者上传到支付宝开放平台。
  • 应用私钥(private key)由开发者自己保存,需填写到代码中供签名时使用。
  • 支付宝公钥,应用公钥上传后会得到对应的支付宝公钥,供验签时使用(如支付回调)

应用网关是什么意思

官方文档这样描述3️⃣

生活号、口碑、现金红包、单笔转账接口等异步通知发送到对应appid应用的应用网关中... 202001101578653995811_8322b1b5f748e970c216c89ea7e384ce.png

签名

    /**
     * 签名
     * @param $data
     * @param $private_key
     * @return array
     */
    public function _sign($data, $private_key): array {
        ksort($data);
        //待签名字符串
        $string_to_be_signed = urldecode(http_build_query($data));

        $res = "-----BEGIN RSA PRIVATE KEY-----\n" .
            wordwrap($private_key, 64, "\n", true) .
            "\n-----END RSA PRIVATE KEY-----";

        openssl_sign($string_to_be_signed, $sign, $res, OPENSSL_ALGO_SHA256);

        $signature = base64_encode($sign);
        $data['sign'] = $signature;
        return $data;
    }

alipay.trade.wap.pay(手机网站支付接口2.0)

这个是不需要网络请求的服务端接口,服务端完成参数构建和签名后抛个前端即可,没有网络请求!!! 返回给前端的可以是一个拼装好的form表单的html代码(POST),也可以是一个链接(GET)

参考

1️⃣ https://opendocs.alipay.com/open/291/105971/#普通公钥与公钥证书区别

2️⃣在线生成应用私钥和公钥 https://miniu.alipay.com/keytool/create

3️⃣ https://opensupport.alipay.com/support/helpcenter/193/201602472200

开发指引 https://opensupport.alipay.com/support/codelab/detail/711/713

感谢阅读这篇文章,如果你喜欢,或者遇到了问题,可以关注我的公众号