业务场景:需要在手机端H5使用支付宝的支付!
一共分为六步完成!
第一步:
1:开通支付宝商户,支付宝开放平台地址放在这里了。
2:商户开通以后,开通产品里的支付宝手机支付项目
3:下载支付宝开放平台密钥工具
按照步骤:
第二步:
上传到支付宝平台,平台上有提示位置!自己找一下!
到目前我们就获取到了3个密钥!
应用共钥:xxx
应用私钥:xxx
支付宝共钥:应用共钥到支付宝平台更换的
第三步:
下载支付宝提供的支付sdk,我使用的是这个支付宝提供的php-sdk,小程序文档 - 支付宝文档中心
下载好以后,预埋到我的代码里,选择手机demo!
引入支付宝sdk
//引用
require_once root_path().'extend/aop/AopClient.php';
require_once root_path().'extend/aop/request/AlipayTradeAppPayRequest.php';
第四步:
开启逻辑
$content = array();
$content['subject'] = '手机支付'; // 商品标题
$content['body'] = '手机支付'; // 商品描述 非必须
$content['out_trade_no'] = ; // 订单号
$content['total_amount'] = ; // 要求必须为浮点型,订单金额
$content['product_code'] = "FAST_INSTANT_TRADE_PAY"; //销售产品码,固定值
$con = json_encode($content);
$Client = new \AopClient(); //实例化支付宝sdk里面的AopClient类,下单时需要的操作,都在这个类里面
$param = array();
$param['app_id'] = ; //支付宝分配给开发者的应用ID
$param['method'] = 'alipay.trade.wap.pay'; //接口名称
$param['charset'] = "UTF-8"; //请求使用的编码格式
$param['sign_type'] = "RSA2"; //商户生成签名字符串所使用的签名算法类型
$param['timestamp'] = date("Y-m-d H:i:s"); //发送请求的时间
$param['version'] = '1.0'; //调用的接口版本,固定为:1.0
$param['notify_url'] = 异步通知地址; //支付宝服务器主动通知地址
$param['return_url'] = 支付完成后跳转你的网址; //支付宝服务器主动通知地址
$param['biz_content'] = $con; //业务请求参数的集合,长度不限,json格式
$paramStr = $Client->getSignContent($param);//组装请求签名参数 到此步目前没有问题
$sign = $Client->alonersaSign($paramStr,这里填写你的私钥, 'RSA2'); //生成签名
$param['sign'] = $sign;
$str = $Client->getSignContentUrlencode($param); //最终请求参数
return $this->alipayConfig['gatewayUrl'].'?'.$str;
第五步:
异步回调 -再第四步: $param['notify_url'] = 异步通知地址; //支付宝服务器主动通知地址
会从你填写这个地址,异步给你通知,当用户支付完成后,参数主要有:$content['out_trade_no'] 你提供过去的订单编号可以做逻辑判断!!!
第六步:
同步回调 -再第四步: $param['return_url'] = 同步通知地址;
会从你填写这个地址,同步给你通知,当用户支付完成后,参数主要有:$content['out_trade_no'] 你提供过去的订单编号可以做逻辑判断!!!
这里的逻辑:同步跳转回来,给你带上 $content['out_trade_no'] 参数,你自己写页面请求你的订单状态,(订单状态,是第五步,异步里改变的状态!),就可以再同步里做判断了!
好了到这里,逻辑就完成了,退款等,也是一样道理了,按照这个逻辑就可以正常完成!