欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php支付宝开发之pc网站支付接入

程序员文章站 2022-05-30 08:17:20
...

最近公司做的网站需要使用支付宝和微信支付,支付宝这一快让我来做。由于我们的官网是用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,具体页面如下:不过这里的付款订单号,订单名称和付款金额是我自己默认加上的。主要是为了后期方便测试。

php支付宝开发之pc网站支付接入

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);

这个支付,直接调用支付宝的功能,进入到官方的支付宝页面,具体如下:

 

php支付宝开发之pc网站支付接入

然后进行,支付,支付后,会有两步跳转。也就是我们在config.php中配置的地址。同步跳转:是整个页面支付信息的跳转。异步通知地址:一般我们做处理就是在这个里面做,这里面会接收到一个post,然后进行取值,然后我们自己在做操作,具体的回调的参数详见此链接:点击打开链接

在异步通知这里我们能拿到所有的交易信息,而且还可以自行进行数据的存储等。