I haven't gotten Alipay for a long time, and some links are blurred. Close up and note
1. Open platform signing (free)
2. Generated with RSA signature verification tool windows_V1.4 (application public key 2048, application private key 2048), the newly added applications are all RSA2 methods
https://docs.open.alipay.com/291/105972
RSA (SHA256) key (recommended): Upload the application public key here to get the Alipay public key, which is used for signature
3. Signature area
Usually, the Alipay account manager logs in to the open platform to upload the merchant's application public key, and records the appid and Alipay public key information.
Technical students get 1).appid, 2).Merchant's private key, 3).Alipay public key, and put it into the code to sign and verify the signature.
4. Self-checking process without using the open platform SDK
https://docs.open.alipay.com/200/106122
5、
public function tiXian() { vendor('Alipay.Corefunction'); vendor('Alipay.Md5function'); vendor('Alipay.Notify'); vendor('Alipay.Submit'); //Load Alipay sdk Vendor('AppAlipay.AopSdk'); //log file path //$this->alipy_log="/data/web/web/Public/app_alipay_log.log"; $payer_show_name = 'User red envelope withdrawal'; $remark = 'Withdraw the red envelope to Alipay'; $aop = new \AopClient2 (); $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = '201512120096xxx'; //Single transfer function appid //apply private key $aop->rsaPrivateKey = "xxxxxxxxxxxxxxxxxxxxxxxxxD366qt67G3HcQK8Z4sbYJwIt008MrbZZnnU7wTvoMsR5Sy7Z8/rDjaaAhabWfICiyhD0QPLtIRN53yFniU8S7ERF6q7UjJJGpq89W1GriLRDaxZ4IweVr+/hmjf8X39SJS9NWjDOjhxCk7E3EyJsQZ8bPGGXs3yR+7rCagE59VZW6MK0ELNDCa7DW9K1dxeHakbnd72Ky6tyxGPQq7zIo36kmdcjvGXUAoEar2iTqnd14arnlfPPZlCSfTL8eoJ1luxUXFoVPKLC549hnWG6KQ2xyi+I4n+Z07lri9V1jyOPH9LUjpPe642QIDAQABAoIBAAuHXoS9iL7QJoqdGT4QMk1ZTQcofrwCdAYoAISC5TDNXToBYJgFnsOyTG4cXhVi6U8L3R936ccncDMzZTEc6PQ41/SkAPDpzAT8KSKgkpBawivG67yDnEn/CqVTSBwi/a/OKnj97+Mg0rA+UH8j/+MYOyd9Cqv+/AEgn/eQrHv3PBtM7tT2XXIg/COF5fI9OaBG6YOMYlllOWGtWcU1oR4Ig/p0GWA88qeN702mifNwAZOw4x8bEAnGxlF+j6U6ZN0lG7d+Si5++MvalcwIN0Bpdoiou5MLgKQMekOYosVVN0swkcbIO/NAjN19f6L57QvMzdbURnGaKsal4z12JIECgYEA2q+J3bOiP9wZlEBuXNtcC36Pf7Ur95MoHvchetKBU6sb2A/xZCbZNTGdBXouimEtJdQq6H8+PYR9aXKDSpPHTUQ0+H7aID1jxfJDy8lzm3f/d7TxRczipCX4+tTUpMMIB0Umo7uLSxB3UKDaF4stbALN7a+yb9iSVD5C1Ew1JOUCgYEAzeKmXlkUXDNArJLZwiGJxkGUotgj4Q1qA+nUg1uF5zb+IAsvejrVCed8I661/TV2fDJhkI+rX6az4nacSftoC3SsSZCxeKO91FQVD3tBwebs1HDetoIWRh7BsJMd/fa80A7fWu927lf21Y7cwb5u2yeXSXq2Z1RrUSsNHsF+WOUCgYEAuZuToB/+7cSZ0UJ+aUGldfwNP489qfu0adPHDr/sFF9+Wnvtndt7L7LUWvnA1qJz90+Eu6CD6yKwbvdKh9m1ptblPqQr7oEsVa2x7R0miiXnJmrk/SFQm5G/KOXLNaxy+/itOvrK1wM6waxEbwcpnisjLUGaaWOfjvDpN9cWpCECgYACKU71zpmYHjGfnisLDq8TlbypuPsncaybPektN9jABKPGUle9QMDbycJT3ZGrhtQnmZ/MlLWH24gn6Hbbj/gXprHoU8yJJ67me7t83h5imroBwO2VnOf+9HO0FtdJwz1YMc/GdJ0bA3Fj7IwEvKsNQe0kqFUh4JD/2SPaHs3kwQKBgQCq/JPez7qEn7iZa0QdH4o6jECvjiENaQgzbgUurtLRG+LcP9R9YrHJK9um8JyT1VJqtZeUpRqvoi3ewFJMlHmmUniMYXl6V/GaVT+nKYtBS7M2Jyqn7xAzUTg3JKH+p/iyqBQepHbdo69+OWB1Bawa45W7zg46b61XnVBfHwa2Lw==";//C('app_alipay_config.rsaPrivate'); //Alipay public key $aop->alipayrsaPublicKey= "xxxxxxxxxxxxxxxxxxxxxxxAMIIBCgxKCAQEArfgKn7qGIm6/DJWb6AQ0HiXjcu/oI64h9kG4rIio1+qR3Uw/anyCHyX2NcrX64hrw/DoWs7YGmiDJsW1uTlQ6Sz+vM5nfnO/eHVHwt5OPHlsoB+Gm/nhJS8DPcPV1OwGX8lKDsIH6+59IlEvfMwyHlaQpRNf+OK9maG+doLvSBhY9LtScBftsmjEqQ8u/+S8z2D9cmVxmgW2U9RBpr3imvHXT/yD0KrXWTGPs6h/Pxb9CmAgyr9BCLA9WTBDAlomUmGAjo1d1kBSCzKiLo5WMBai8GHp7QirsEekF7hlQcZGNv7z1fSOWB6FJGXQb9uCem+MNz4YE/KY6lTQzkf/JwIDAQAB";//C('app_alipay_config.alipy_rsaPublic'); $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='UTF-8'; $aop->format='json'; $out_no = ordersn(); $toUserAccount = '15300330000'; $toUserName = ''; $money = 0.01; $request = new \AlipayFundTransToaccountTransferRequest (); $request->setBizContent("{" . "\"out_biz_no\":\"$out_no\"," . "\"payee_type\":\"ALIPAY_LOGONID\"," . "\"payee_account\":\"15300330047\"," . "\"amount\":\"0.1\"," . "\"payer_show_name\":\"测试\"," . "\"payee_real_name\":\"\"," . "\"remark\":\"Transfer remark\"" . "}"); $result = $aop->execute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ echo "success"; } else { echo "failure"; } }