手机网站支付接口,支付宝官方文档:https://b.alipay.com/signing/productSet.htm?navKey=all
第一步:
-
1)登陆支付宝企业账号
进入支付宝官网 ,登陆已进行过实名认证的企业账号。
-
2)选择支付产品
进入支付宝产品大全页面,选择“手机网页支付”,点击“立即签约”。
-
3) 完善申请资料
将需申请支付的网址、联系人信息填写完成后提交,等待支付宝审核。
-
支付宝会在 5 个工作日内完成审核,审核完成后将以短信及邮件的方式告知企业。
-
产品签约完成后,可登陆支付宝客服页面,寻找人工客服,要求开通账户明细与交易查询接口。
第二步:创建应用,填写相关信息,审核通过获取appid,上传应用公钥,获得支付宝公钥(要不生成的应用公钥和私钥保存好在下面还要用到这些参数)
第三步:下载支付宝sdk链接(新版接口)https://docs.open.alipay.com/54/106682/ ,放在项目引入第三方类库文件夹下
第四步:配置config
1 <?php 2 $config = array ( 3 //应用ID,您的APPID。 4 'app_id' => "2018032240265098", 5 //异步通知地址 6 'notify_url' => "http://xxx/Home/Alipay/notifyurl", 7 //同步跳转 8 'return_url' => "http://xxx/Home/Alipay/returnurl", 9 10 //商户的私钥,此处填写原始私钥去头去尾,RSA公私钥生成:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.nBDxfy&treeId=58&articleId=103242&docType=1 11 'private_key' => "", 12 13 14 //支付宝的公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner 15 'alipay_public_key'=> "", 16 17 //编码格式 18 'charset' => "UTF-8", 19 20 //签名方式 21 'sign_type'=>"RSA2", 22 23 //支付宝网关 24 'gatewayUrl' => "https://openapi.alipay.com/gateway.do", 25 );
第五步:调起支付关键代码
pay()方法
$timeout_express="1m"; $payRequestBuilder = new AlipayTradeWapPayContentBuilder(); $payRequestBuilder->setBody($body); $payRequestBuilder->setSubject($subject); $payRequestBuilder->setOutTradeNo($out_trade_no); $payRequestBuilder->setTotalAmount($total_amount); $payRequestBuilder->setTimeExpress($timeout_express); $payResponse = new AlipayTradeService($alipay_config);//$alipay_config就是引用的支付宝配置好的config
$result=$payResponse->wapPay($payRequestBuilder,$alipay_config['return_url'],$alipay_config['notify_url']);
echo $result;
notifyurl异步回调
$arr=$_POST; $alipaySevice = new AlipayTradeService($config); $alipaySevice->writeLog(var_export($_POST,true)); $result = $alipaySevice->check($arr); if($result) {//验证成功 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; //交易状态 $trade_status = $_POST['trade_status']; if($_POST['trade_status'] == 'TRADE_FINISHED'||$_POST['trade_status'] == 'TRADE_SUCCESS') {
//判断支付状态是否成功,成功之后根绝项目逻辑写自己的代码
$data['state']=1;
$res = D('api_order')->where(array('orders',$out_trade_no))->save($data); $type=2; $this->verificationcode($type);
}
echo "success"; //请不要修改或删除
}
else
{
//验证失败
echo "fail"; //请不要修改或删除
}
returnurl同步回调
$arr=$_GET;$alipaySevice = new AlipayTradeService($alipay_config); $alipaySevice->writeLog(var_export($_GET,true)); $alipaySevice->writeLog(var_export($alipay_config,true)); $result = $alipaySevice->check($arr); if($result) {//验证成功以后跳转到自己要跳的页面 $this->redirect('/Home/Alipay/successpage'); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //支付失败 echo "验证失败"; }