首先支付宝的文档真是看得头晕眼花,摸不着北的感觉,网上百度PHP支付宝一堆都是花里胡哨的,看得一脸懵逼。所以自己整理了一下,其实也没那么复杂直接上代码:
php 电脑支付的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/**
* 支付宝支付
*$order_sn 单号 $total_amount 价格
*/
public
function
alipay(
$order_sn
,
$total_amount
)
{
require_once
INCLUDES_PATH.
'class'
.DS.
'Pay'
.DS.
'mobile'
.DS.
'alipaytest/'
.
'AopClient.php'
;
$aop
=
new
AopClient();
//这个类支付宝php服务端 都要用到 (app支付服务端也要用到这个类)
$aop
->gatewayUrl =
'https://openapi.alipay.com/gateway.do'
;//支付宝网关,也就是接口地址
$aop
->appId =
'201709010........'
;
//APPID
$aop
->rsaPrivateKey =
''
";
//商户的私钥()
$aop
->format =
'json'
;
$aop
->apiVersion =
'1.0'
;
$aop
->postCharset=
'utf-8'
;
$aop
->signType =
'RSA2'
;
$request
=
new
AlipayTradePagePayRequest();
//支付宝电脑网站支付需要用到的类 这个类支付宝SDK可以下载
$request
->setNotifyUrl(HTTP_HOST.
'pay/alipay_notify.php'
);
//支付结果的异步通知回调地址
$request
->setReturnUrl(HTTP_HOST.
'pay/alipay_return.php'
);
//同步回调回调地址
$bizcontent
= json_encode(
array
(
'subject'
=>
'商品订单'
.
$order_sn
,
'out_trade_no'
=>
$order_sn
,
'body'
=>
'商品订单'
,
'total_amount'
=>sprintf(
'%.2f'
,
$total_amount
),
'product_code'
=>
'FAST_INSTANT_TRADE_PAY'
,
//支付类型,APP和电脑支付 手机支付是不一样的 所以这个类型也是不一样的
), JSON_UNESCAPED_UNICODE);
$request
->setBizContent(
$bizcontent
);
$test
=
$aop
->pageExecute(
$request
,
'post'
);
//支付宝返回来的地址,直接是可以跳转的
echo
$test
;
}
|
附上所需要用到的类:
1
|
|
1
|
<br>只需要这三个类就好了,支付宝的sdk 满满的一堆 ,但是我们不需要那么多,需要用到类再把它抠出来就好了 好像传不了文件 有需要的可以加我QQ(1031486419)我发给你
|
1
|
<br> app 支付 我们PHP 服务端的代码,其实就是生成一堆支付的参数 直接上代码了,其实和上面的电脑支付没什么区别 只不过是参数有所变动:
|
/** * 生成支付宝app支付参数 * @param string $title * @param string $order_sn * @param float $amount * @return string */ public function alipay_app($title, $order_sn, $amount) { require_once BASE_DATA_PATH.'/vendors/alipay/AopClient.php'; $aop = new AopClient(); $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->appId = '20170901。。。'; //$aop->rsaPrivateKey = 'MIIEpQIBAAKCAQEA0GbLnXksi81/qydbfwM+CJ0JInvHWcgElvIGtBmuDOgq+DHzlPQAGwF5GSEGFo3vMHYS9a8BM1lSP3hdnuodq42YeWjJJVX39SjDitv5jXLnkmtNCynTtPdAwjfu83Xf9kuQTEXFwMGpygSLpOIZ7OcujfJXuDPq7IXGHLfIPAxTo0KSk0BGFjGG1R+lJor8c974jI5QCWSKlvTSGjucHCbFPy6Sw0Bqnev8XGdt6z+NvqZJA7jNZFE3q6xXn84n9d3Jq6r/zu1dt1FN/9ffHeYKIl4p5IhwTh2quYoG3b1YRyNX9Ry33dKkjJNMHnA7dca84sUAkKZFrR1Kao0bwQIDAQABAoIBAQCbHNfSlp1EVSkAMCQWzkf+yztAUlbXiVt5Kh05MZ/tdWR+JVfCdzYY46jJvl20reHo9Qk5mg9Ps9zW5vTv0htRU+u3+fk0897Bt5yLnx0IXgzkWz8V3wT3Pc0SgeU1ineu7yEw1AHTbZG9jlKN38giHxP0jPsjXGkvsIX7XAMKRV6XdJ9H8bXNX4U0Wwc5TaBaAcSSWEBWZjJhAIPG/SFZW92k9ETFLAlXqLln+25/sXNX+c4pL6zkfa6olfsk17H5bVIDwApZMCwb4Sqe8OegU4wwhFuILx1iBTwvP9du6hGrbeZvmbAabI65MeBZp2nZ1OfCi4tG2DJusD1hbgadAoGBAOubK0YfHIgq+GDegkISPebXwBPGtVY0McBIrjD/yKbxIRDphxg6vQcjPT5oJFTA8B0d9KLfUhKC6+GadhmVuRjTssj/rlF1EVsjsZSgXrQIpMbdVvDsQbtfzgft9xXd3GBCc6+ZGGWWNyaZNRf6OBjx1lxcR44tkAX+Kl9fv4UzAoGBAOJwy8INLQ8GAhY5icGAoRE5bFPD/Zq/nCNC0zEi7OGUUKM8rb27z0zvSoXWTRv47j5r7EPVbYalB0srr3yb3yquL/W2mpDxwmnJZSbqzygLCoWRvjGywsvpcVqxhaDklJmLJsql9npy0+iwZJ/jgA2O5f467kBwMxdYvTVGHvM7AoGBAM+Gh+Fl+f2+y7SXiWilJL02gMtqlcNuifvyiOxEAPt7HUMGT6Z55pJo6cMUfBvjLhyXjCoCRwpjI14+bZQvmzBRGAOPon3Bfh4nHH3rnD879dfskm33zBY9Vv8JDkDGgRyQq9GaKjEg1Uc8X9XU4qCmM8h6x9RmMZv1umDzt4CdAoGAGy9nhviF/FPAVGK8AxsqOyMlujjBbZ6rZCBVsoR64+omdDKIuUqe7KGd1MuRnlYYZC4Yw1wQNiYB5ihsfQ1JkZov79PoYpZjvMeM+Usfa7NHpBmHN/g6Irj3/udpH5PRs01dbt7V5IV8o2bp7bgmW3pYalkw2VOfDqJ8tLSiapkCgYEAsKLLzFTpsW60uXWQrxAyelDxzTqoPvFpIcj1qxDnuifCn/22+dKfYw+PzSj8GnGn3p9gdB8jgsQYMekNz0jsta+rweX2ica4buAVRlL2tEYDBQ22lrhwVgUFRXcIRqctqXZ0umBEwnupiFcx73yO7nrcQ+jKuTng489VN7CseWE=';//请填写开发者私钥去头去尾去回车,一行字符串 $aop->rsaPrivateKey = 'MIIEpQIBAAKCAQEA7hz7/VE2MgVutwjKvN0xMJoTVVmOBOBBMCkXaAXbwrXnFvPOasDkn07ia+ZU2aovCVifaI77rLRTG+Clj7rUU6+zwgsyPa8bH5SQfCnEvvLqSU1Sy2AJ1JAcSSbrCqI1Vuf9c2XkZokmr7Un2pAevNYLkjVFEoEZjyrdsLEIgXHNjrD201W48WRHYeD+LNjQrN9T5EiPDQuR5XAukDipkVzTvoGI2C37/c9X8u7mhsd0cNAsicv0U/ZZug7FXQiupPqDFnsfQezqGD8nyehYhS9s/LyhEFUsA7nt/dgvqFXLHTFhAGajnEEam7S80YLyHC39nVBpCWzAiOnkotUe0wIDAQABAoIBAQCCcQJijWDBGlTClGBsAkh2NZGtyfeRGEDd30ThSYRQMFI+MqW7uZwE4bQMJAwLib1mw1PgdaPNwqNcvD42dMToa3JwNK37OLgFHt/gBQmxCWXrbh6TJzN7bM7yDA3qr13FFCW2V/U9bpjw3K7OfvE3xZJlMCV8s5iK45K6vuDH979sV65yv0TZ6lPxUW4JZyh9hMvBejqjfIeeUJJKypvAlvNfakpK8yvrr8aHWQTnbWsRooDp34ipDtR+UVJWOxS7Qyht7JnNc/oQdusVFAh3BB7mey6zJJ/YZeWGOFJiKi1LQypUUSUZHA8W5219dB5yY3rpuVFlVBBbYvhe8XkhAoGBAPzX3RPJXLLd2/BUbZ0p8Vfg+avlGihvZP/d0DyJ1+vhYFtEv6DNxXDzA4uTb8SA7mbqFTOhQd3LdV1sbIxEwRFCxcagZ7uvw2seQBHKXZhbztdVnsI4FDkx7aYqZrTqigNnMeyZ23bxv6/S5oHTP06aDtAScIEDbbmML+Rza4oLAoGBAPEWCnGpHR8Nnr7C6aZ/3X1ph42DGJSjY7iV642aalWzniX5Dc5GwCvJWrTrfHqCanDN3hQ+fM6jmnzNJJtp5lyi0tYYSaseQ6AsUQ/HyaF+Lvw6ax04YMICzP6CU9rfImQsP0aZCBAHLggIuEtNM65qFAQ4OvDcVEvbkw43/ANZAoGBAKLW46s6pFkOSfgeZ/owaR8P5byvcIlaNNIVKWfT3xwrqsMdI82MuPxlhoL+EZ2c6+2cFMuLr8AIqS3iBobQQQe82WNzK1vVdyYl9V1/14eomS5WFkk/lMbBQS0jYcJiy0Al1iFrdczFJY83ZP137+3Pinq3ZX2xl5lIkA+xxjDBAoGBAMZ74vVYygT67asYRc0ykGPkMhmryNz29+7MXzYh31HXo2iX92nQjf5+tBMnnUAvhvqAQ0pfd9mYkGQXcQAS2/mAhByHun8LV5nTYpmfXr16aax3XCCefeq865DOM8OK2YGnfCDfdOfdQWST6Ub1tIrwArLGqKAMhco+aH/YT79hAoGAP4EZASN9/1LA6Ep0SVm+6e5zCy7FsGsc+ibdDEeYF6De2TLa3I5Q9mf+30bqz2CsoEWST0a2T9JcLsEltkkAQeuy62Q7B8JCeCvFWkSBe/zJDistI8KcMxYTHzhird9xbDL8vD60ntyjWeKIqJFAWSJblUtzUzicvZ56/p8AFr0='; $aop->format = 'json'; $aop->charset = 'UTF-8'; $aop->signType = 'RSA2'; //$aop->alipayrsaPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAptDyV0pRbSn2A33coQOBhzNIA29hgllWsLxDuai8uDuKxQ4tDpkakqSAu7Ru4fRFrXupCXxLPYFLi9sj3E6q0TjpxvfvWDYbx1iVNAqQXTNwx06ibxSsljTKePRevaVfwFAYSxyGhw7zEbu9YBAQuPo7ER48dWPsVgvgmBu0DEM0ZmrzT5NKnrROiFAKOwruwmQPxEDmhP4fc5ql41sTD+MfPEQPOWi6oTQxys20JhHK7kCwiMaKraaDFJi8zPrBxfXaXV92N8AGzWBodsFLRTJfAscGjhncYYKuygDma7yJS0CEt0gqKz0CgIQvGT43KHdPpeNavAYz1BDs6jDnjwIDAQAB';//请填写支付宝公钥,一行字符串 $aop->alipayrsaPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlyFPnRahghm70fLEzJ/q4OgEuzYVaoTYlLr2GekhOyrqbte1JMFED1quTkJ7yx+iOXx39jX9sGO+sCJ9ruKfRlJ7vItVhd7Z2a6uTcF1tHrDOwTw45TQXbgFAkPWZEzbWnvTkQ/uR9KXJg1h98WPCHwS2nvoJ53puBfureyFUjmZKdKJjhboUMKd51QeV59It6IAVM8fvxb+1QnZVM7WtdAG12sRS8dD5ZoElIJABTCFie/5pBdoBZymCNYCGP8sUpbUAxCnexetvpG5O7RPUz/Nc7EFz5O1L+qYUfv74rrIRLo7Nl+G6yLRR+LETXlxlb9VLNgKjsxXshzKyLzJCwIDAQAB'; $request = new AlipayTradeAppPayRequest(); $bizcontent = json_encode(array( 'subject'=>$title, 'out_trade_no'=>$order_sn, 'timeout_express'=>'30m', 'total_amount'=>sprintf('%.2f',$amount), 'product_code'=>'QUICK_MSECURITY_PAY', ), JSON_UNESCAPED_UNICODE); $request->setNotifyUrl('http://xxx/control/alipay_notify.php'); $request->setBizContent($bizcontent); $response = $aop->sdkExecute($request); return $response; }
1
|
还是三个类
|
1
|
只不过这个类有所变动而已
|
1
|
再者多了一个应用公钥:
|
电脑支付是不要这个PUBLIC key的
好啦 以上就是支付宝电脑网站支付和app 支付的方法 其实手机支付也是差不多的 变得就是支付类型 和支付类