ThinkPHP框架下整合支付宝支付功能图文教程(3)

6).支付成功后的通知处理

此时,通过获取所提交过来的post数据,进行订单号的剥离,从而进行下一步的业务逻辑处理即可.
[注意]:

  • 接口文档中有点明,支付通知功能最后需要输出‘success'
  • 此处的通知路径要与配置中确定的 ‘notifyUrl'完全一致
 /**
  * 支付宝支付通知功能
  */
  public function notify_ali(){
    $out_trade_no = I('post.out_trade_no');
    $this->toUpdatePayInfo($out_trade_no,'ali');
    echo 'success';
  }

三.电脑网站支付接口实现

对比来看,其实 PC 端的代码设计与手机端大同小异,在此点明一下使用情景,可进行参考。

1).支付接口实现

电脑端支付接口代码截图

提示:

  • 测试发现,接口中定义“subject”时,对于文字的数目有要求,不能超过四个字,至于字母似乎没有特别限制,开发过程中原想显示全部的商品名称却无法实现,还请注意。

  • 提供的代码暂时未进行界面的设计,可参考 手机端接口思想,接收并处理订单信息后再唤醒支付宝,当前的代码可以在公共文件配置正确的情况下,直接公网访问接口链接即可展示效果。

  • 支付成功后的通知处理,请参考手机端实现方式.

2).实现效果截图

电脑端唤醒支付宝接口

手机扫码效果

电脑端支付方式-登录

3).代码实现如下:

 /**
   * 电脑端唤醒 支付宝扫码支付接口
   */
  public function aliPayPage(){
    $out_trade_no = '2017PC'.time();
    $order_amount = '12.88';
    $proName = "真米黑米 XXXXXX";
    Vendor('Alipay.aop.AopClient');
    Vendor('Alipay.aop.request.AlipayTradePagePayRequest');
    //构造参数
    $aop = new \AopClient();
    $aliConfig = C('ALI_CONFIG');
    $aop->gatewayUrl = $aliConfig['gatewayUrl'];
    $aop->appId = $aliConfig['appId'];
    $aop->rsaPrivateKey = $aliConfig['rsaPrivateKey'];

    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset= 'utf-8';
    $aop->format='json';
    $request = new \AlipayTradePagePayRequest ();
    $request->setReturnUrl($aliConfig['returnPcUrl']);
    $request->setNotifyUrl($aliConfig['notifyUrl']);
    $request->setBizContent(
      "{" .
      "  \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," .
      "  \"subject\":\"$proName\"," .
      "  \"out_trade_no\":\"$out_trade_no\"," .
      "  \"total_amount\":$order_amount," .
      "  \"body\":\"Iphone6 16G\"" .
      " }");
    //请求
    $result = $aop->pageExecute ($request);
    //输出
    echo $result;
  }
      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6023.html