- 携带token进行订单支付 。
- 成功请求token回来后 , 就可以向支付宝发出一次支付请求 。
- 同样构造请求数据:
- 将这些参数 , 在页面中传送给支付宝即可发起一次支付请求 。
- 在PHP 中的实现就是将这些参数 , 渲染至HTML中 , 再将HTML中的表单提交即可 。
- 到此 , 网页版的支付宝支付完成整个流程 。
- call_back_url: 交易成功后 , 支付宝页面上“返回到商家页面”的地址(同步回调)
- notify_url: 交易状态变更后 , 支付宝通知网站的回调地址(异步通知)
对于手机网站支付产生的交易 , 支付宝会根据原始支付API中传入的异步通知地址notify_url , 通过POST请求的形式将支付结果作为参数通知到商户系统 。支付宝异步通知官方文档中写的比较清楚 , 什么时候出发通知 , 返回什么参数 , 注意事项都有 , 开发者可以根据自己的情况查看具体信息 。
对于App支付产生的交易 , 支付宝会根据原始支付API中传入的异步通知地址notify_url , 通过POST请求的形式将支付结果作为参数通知到商户系统 。
验签步骤可以移步至这里
这里就简单的用手上的项目举例说明 , 支付宝通知后 , 后台是如何进行验签和处理订单 。
public function app_notifyOp(){ $payment_api = $this->_get_payment_api(); $payment_config = $this->_get_payment_config(); // 支付宝是用POST方式发送通知信息 $callback_info = $payment_api->getNotifyInfoApp($_POST); if($callback_info) { //验证成功 if ($callback_info['order_state']) { // 如果是支付成功则改变订单状态 $result = $this->_update_order($callback_info['out_trade_no'], $callback_info['trade_no']); }else{ // 如果是退款成功则修改退订的相关状态 $result = $this->_app_refund($callback_info['out_trade_no'], $callback_info['trade_no'], $callback_info['refund_fee']); } if($result['state']) { echo 'success';die; } } //验证失败 echo "fail";die;}