您的位置:首页 > 运维架构 > 网站架构

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

2017-11-10 11:29 597 查看
最近公司做的网站需要使用支付宝和微信支付,支付宝这一快让我来做。由于我们的官网是用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' => "2017103109637081",

//商户私钥
'merchant_private_key' => "MIIEpgIBAAKCAQEA0pPFjdRf5xiKcJk4XoH81zOVrHiI/h3hREXfS4sBbx2ZcWKJjHsLeIgfAj/Pa0DjxUoKBRSOPzY1nYsQfq6N/2BheYHeWjqCKVk+QloC/QkUsLofSN3WQpraPLDXB+9zwHHA8ShkoT8k8AodkPtQ3r4wAuC4hWEXVJXEI0+S9FUXnZp7bxvT4x8/JdYPo1H8t79kPddSMzuNUeWSa1/hbnwbeFpXbFog0GuBZpSFK8a+wy96a0kvobvFOz7SfxtuyowtQx5kBEwLrxmjtuicCezoLi8mSgQZexUhVFrQB+nZiMEuHv5X6Cr2i4XE+CiSo0gprI8nYRBFObStaLe36QIDAQABAoIBAQCE/Yqw7kW7P8Z/ImV1WocCqrOGf4GVa+2PHsnNffbj5D+6Wk8gh71Q3DcpRn+K7ypquT3mw3qq9WObIe7C8x7/ADHPeXOibH0z/AbUBOEKSafljUag0Gm3GvFljxHfEx15lt4R8D7Nj4GWj+zoWbBTXK4Zwy8GHbGMXCHJY0IeSFIZji9iKucdPY5MJ8ATObKzqrI8KT3EOc7YD7l7ssdjq45ppsM4L3SZufa6mijhjAs0eJnJb4fQjUw/ZnMlzgnxg7yr59kRvgZ5RySODC2aOUy6VdAyjTkiXQc9w9SVSLrcreIHHErOFhbq2ZEK5iLKgiWwyNW+YqaFJLPDfSI5AoGBAOu2lr7tUY+rNReQei8aLsFzqzAf3Ft86WBbSgKqMh0DXNRfsdqNbTSqvI7GL2lH4D7iSChQlp0JCeaKbtRGbn8++ghrDkXvsjdrUWAVvbnN2uZ3N7KKl9+nPT843rXMr1wapRDrq8O+2gp+5XIS6GMvsuCtVaA9TTz/Iba1zKvTAoGBAOSzXhUAMuKa0nf6jwa0MxDT8oUytBunGJLbYKINuTvcmZfXUv4L2YJDjcSrAMcoF1te/l1cYx+26H3Q2MjquVUIVosfXHjqu8vVKJRAMYdWHcPKxJIKOoMisIYePJePBy1/eQ8Ue1nrohBf5idmM74vwHr9xi96M7GaHQvAbuPTAoGBALaAOps9N+ca0hKapF+P0B+sJSEvqfeT8UXPqLADgqWAEwHDzfq/gYxDnZaVz+Od6PwHS4MbUmHnu6iqCkGE/sy6v/CAox53Be9uwiS48JrJzfCe4Zr1P73EyOEIcTclcajIYIGHVwhJ3pw9v/zgstkI92CKFD/q9sCBcWL7w6pNAoGBAN2FwAOnhaJpRKRiVlewBCawpaDPVBXU7MCTLi7KDDonm76wGvtoju7WcGOnH8HI25btlITqEDmP+fKkcNdsRMhQo0NuxSt6cx0lA4FWDKOCjqIvreencLXEzCec8iP7roArkR9CP5kB3KDvwwc2v7fgmRiI54blX10QYkIXy1FxAoGBAOD4H/UZEE89TA/X+24A2uYCKVCfF0zxrPQirdQwtbz64sd9CLRODEChHQOAk8NKDqyPiWyrwIU7w/QUWvEdmu3XsVSWy0zKSgtzP84b3ezhPjPUgzOjeHr5A1Npe+7IT8jkk0KHQKeRIRAtInwyHT7SKSF/CDzvpMsUMnVe7s+5",

//异步通知地址
'notify_url' => "http://www.qishanghui.cn/alipay/notify_url.php",

//同步跳转
'return_url' => "http://www.qishanghui.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+nbI2lWEaPe2AsalQvH9UgHjHVUAq1EX87vvWP/zlN4SLfAj6JJBUY0jaTF7tQU8qSz95Wq9kbgcXvVh1CAFAJv+GtjYJMlTJ8Z36k8jhoZknSDIBvYNkuPin6jOi7SaIj2qo17WWFzPea0gnkCpnyhqpeBoZMr/vOgOFjIbzMPMD4fxPnsYvUr9P0DnX0+TFkDXAR3P3Ok//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,然后进行取值,然后我们自己在做操作,具体的回调的参数详见此链接:点击打开链接

在异步通知这里我们能拿到所有的交易信息,而且还可以自行进行数据的存储等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息