首先下载支付宝pc网站支付的最新sdk代码
最后在tp的应用目录里面新建一个控制器、一个方法,编写这个pay方法的代码即可接入支付宝pc网站支付
代码如下:
//支付宝支付测试 public function pay(){ $config = array ( //应用ID,您的APPID。 'app_id' => "201XXXXXXXXX", //商户私钥 'merchant_private_key' => " ", //异步通知地址 'notify_url' => "http://外网可访问网关地址/alipay.trade.page.pay-PHP-UTF-8/notify_url.php", //同步跳转 'return_url' => "http://外网可访问网关地址/alipay.trade.page.pay-PHP-UTF-8/return_url.php", //编码格式 'charset' => "UTF-8", //签名方式 'sign_type'=>"RSA2", //支付宝网关 'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do", //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。 'alipay_public_key' => "", ); //异步通知地址 $config['notify_url'] = ""; //同步跳转 $config['return_url'] = ""; Vendor('Alipay.pagepay.service.AlipayTradeService'); Vendor('Alipay.pagepay.buildermodel.AlipayTradePagePayContentBuilder'); //商户订单号,商户网站订单系统中唯一订单号,必填 //$out_trade_no = trim(I('post.WIDout_trade_no')); $out_trade_no ='45454545454'; //订单名称,必填 //$subject = trim(I('post.WIDsubject')); $subject ='测试订单'; //付款金额,必填 //$total_amount = trim(I('post.WIDtotal_amount')); $total_amount ='12'; //商品描述,可空 //$body = trim(I('post.WIDbody')); $body ='6666'; //$ud = session('users.uid'); $ud = '123'; $data = array( 'uid'=>$ud, //用户id 'win_code'=>$out_trade_no, //商户订单号 'winsubject'=>$subject, //订单名称 'wintotal_amount'=>$total_amount, //付款金额 'winbody'=>$body, //商品描述 'state'=>'zfb', //支付方式 'status'=>'0', //是否支付 'ordertime'=>time() //交易时间 ); //M("pay_record")->add($data); // 保存交易信息 //构造参数 $payRequestBuilder = new \AlipayTradePagePayContentBuilder(); $payRequestBuilder->setBody($body); $payRequestBuilder->setSubject($subject); $payRequestBuilder->setTotalAmount($total_amount); $payRequestBuilder->setOutTradeNo($out_trade_no); $aop = new \AlipayTradeService($config); $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']); //输出表单 var_dump($response); }
代码简单说明,与支付宝相关的参数需要你手动修改为自己的,还有配置信息也可以放到公共配置文件用用C方法调用,还有订单和金额等信息可以选择用参数的形式接收而非写死。
特别注意,如果遇到C方法与支付宝里面的C方法冲突的问题,找到支付宝的C方法,给它修改一个名字即可哦。还有网关不要用错,测试网关和实际上线的网关不是同一个。