php支付宝开发之pc网站支付接入
最近公司做的网站需要使用支付宝和微信支付,支付宝这一快让我来做。由于我们的官网是用nodejs写的,但是,在支付宝支持Java,.net和php。所以只能选php支付了,不过我们在做支付的时候,从官网下载一个demo,然后到蚂蚁金服上面申请个开发账号,配置本地的demo即可。具体的申请详见:点击打开链接
我用的支付demo也已经上传到我的个人主页:点击打开链接
如果因为版本不同的话,可以试试我用的这个版本,至少所有东西我都是测通了。
将我上面的支付demo下载下来解压后,会看到两个文件夹,alipay.trade.page.pay-PHP-UTF-8和WxpayAPI_php_v3。对应这支付宝和微信的支付。微信支付,见我下一篇博客吧,这里我们先介绍下支付包支付吧。
1,配置自己的服务器。安装php,配置tomcat支持php,具体可以见我另一篇博客,当然也可自行百度,哈哈!:点击打开链接
2,将demo放到指定目录下方,然后访问,alipay.trade.page.pay-PHP-UTF-8文件夹下的index.php,具体页面如下:不过这里的付款订单号,订单名称和付款金额是我自己默认加上的。主要是为了后期方便测试。
3,在config.php中配置支付宝支付的配置信息。在里面配置你个人的应用ID,商户私钥,异步通知地址等等信息,而这些信息就是对应这你开通支付宝账号的开发者的信息,注意:在进行私钥和公钥的时候,尽量不要使用换行,直接从开发者账号中复制粘贴出来即可,不然会出现问题。
我个人配置的信息如下:
<?php
$config = array (
//应用ID,您的APPID。
'app_id' => "2017100937081",
//商户私钥
'merchant_private_key' => "MIIEpgIBAAKCAQEA0pPFjdRf5xiKcJk4XoH81zOVrHiI/h3hREXfS4sBbx2ZcWKJjHsLeIgfAj/Pa0DjxUoKBRSOPzY1nYsQfq6N/2BheYHeWjqCKVk+QloC/QkUsLofSN3WQpraPLDXB+9zwHHA8ShkoT8k8AodkPtQ3r4wAuC4hWEXVJXEI0+S9FUXnZp7bxvT4x8/JdYPo1H8t79kPddSMzuNUeWSa1/hbnwbeFpXbFog0GuBZpSFK8a+wy96a0kvobvFOz7SfxtuyowtQx5kBEwLrxmjtuicCezoLi8mSgQZexUhVFrQB+nZiMEuHv5X6Cr2i4XE+CiSo0gprI8nYRBFObStaLe36QIDAQABAoIBAQCE/Yqw7kW7P8Z/ImV1WIGHVwhJ3pw9v/zgstkI92CKFD/q9sCBcWL7w6pNAoGBAN2FwAOnhaJpRKRiVlewBCawpaDPVBXU7MCTLi7KDDonm76wGvtoju7WcGOnH8HI25btlITqEDmP+fKkcNdsRMhQo0NuxSt6cx0lA4FWDKOCjqIvreencLXEzCec8iP7roArkR9CP5kB3KDvwwc2v7fgmRiI54blX10QYkIXy1FxAoGBAOD4H/UZEE89TA/X+24A2uYCKVCfF0zxrPQirdQwtbz64sd9CLRODEChHQOAk8NKDqyPiWyrwIU7w/QUWvEdmu3XsVSWy0zKSgtzP84b3ezhPjPUgzOjeHr5A1Npe+7IT8jkk0KHQKeRIRAtInwyHT7SKSF/CDzvpMsUMnVe7s+5",
//异步通知地址
'notify_url' => "http://www.***.cn/alipay/notify_url.php",
//同步跳转
'return_url' => "http://www.***.cn/alipay/return_url.php",
//编码格式
'charset' => "UTF-8",
//签名方式
'sign_type'=>"RSA2",
//支付宝网关
'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
//支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhv/xjazy9B00L1dJWQGbXuc2qh7fDNS7FEKSl2DTer/xFX+ma26KodeY0z6iMw2UPvGE+nbI2lWEa3P3Ok//il6ETRYuAkuk5DwP+8ShrDByIZ2YvT//p/GohXHm6IjWUtSwrUPKrcJWZsIVDv/ThP20wIDAQAB",
);
4,在index.php网页中点击付款后,进入到pagepay/pagepay.php,在这个文件中进行,支付请求,当然你也可以把自己的请求打印出来,详细的分析,我就是这样做的。哈哈
/**
* pagePay 电脑网站支付请求
* @param $builder 业务参数,使用buildmodel中的对象生成。
* @param $return_url 同步跳转地址,公网可以访问
* @param $notify_url 异步通知地址,公网可以访问
* @return $response 支付宝返回的信息 也就是完整的请求参数的返回。
*/
$response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);
//输出表单
//var_dump($response);
//$myfile = fopen("testfile.txt", "w")
//$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
//fwrite($myfile, $response);
//fclose($myfile);
这个支付,直接调用支付宝的功能,进入到官方的支付宝页面,具体如下:
然后进行,支付,支付后,会有两步跳转。也就是我们在config.php中配置的地址。同步跳转:是整个页面支付信息的跳转。异步通知地址:一般我们做处理就是在这个里面做,这里面会接收到一个post,然后进行取值,然后我们自己在做操作,具体的回调的参数详见此链接:点击打开链接
在异步通知这里我们能拿到所有的交易信息,而且还可以自行进行数据的存储等。
上一篇: 支付宝证书签名 PHP SDK
下一篇: 支付宝pc端支付接入PHP实现