php-支付宝小程序支付

小程序支付

在小程序中,用户也可以唤起支付宝收银台进行支付,功能与APP 支付基本一致

准备

1、创建小程序,添加小程序支付能力,功能状态变为“已生效”
2、集成 Alipay SDK
3、appId(应用ID)、privateKey(开发者私钥)、publicKey(支付宝公钥)

服务端
 /**
     * 支付宝小程序支付 (统一收单交易创建接口)
     *
     * @param [String] $out_trade_no     商户订单号(不可重复)
     * @param [Price]  $total_amount     订单总金额,单位为元
     * @param [String] $buyer_id         买家的支付宝唯一用户号
     * @param [String] $body             商品的描述
     * @param [String] $subject          订单标题
     * @param [String] $timeout_express  该笔订单允许的最晚付款时间
     * @param [String] $product_code     销售产品码
     * 更多参数查看官方文档
     * 
     * @return array
     * 
     */
    public function aliPay($out_trade_no, $total_amount, $buyer_id, $body = '会员充值', $subject = '会员充值', $timeout_express = '30m', $product_code = 'FACE_TO_FACE_PAYMENT')
    {
        $appId      = '应用ID';
        $privateKey = '开发者私钥';
        $publicKey  = '支付宝公钥';
        $notify_url = '接收支付结果通知的回调地址';
        $biz_data=[
            'out_trade_no' => $out_trade_no,
            'total_amount' => $total_amount,
            'buyer_id' => $buyer_id,
            'body'=> $body,
            'subject'=> $subject,
            'timeout_express'=> $timeout_express,
            'product_code'=> $product_code,
        ];
        $aop = new AopClient();
        $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";
        $aop->appId =  $appId;
        $aop->rsaPrivateKey =  $privateKey;
        $aop->alipayrsaPublicKey = $publicKey;
        $aop->apiVersion = '1.0';
        $aop->signType = "RSA2";
        $aop->postCharset = "UTF-8";
        $aop->format = "json";
        $request = new AlipayTradeCreateRequest();
        $request->setNotifyUrl($notify_url);
        $request->setBizContent(json_encode($biz_data));
        $result = $aop->execute($request);
        $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
        $resultCode = $result->$responseNode->code;
        if (!empty($resultCode) && $resultCode == 10000) {
            $re_array=['trade_no'=> $result->$responseNode->trade_no];
            return ['status' => true, 'msg' => $result->$responseNode->msg, 'data' => $re_array];
        } else {
            return ['status' => false, 'msg' => $result->$responseNode->msg, 'data' => []];
        }
    }

    /**
     * 支付回调处理
     * 
     * @param [String] $app_id        应用ID
     * @param [String] $out_trade_no  商户订单号
     * @param [String] $trade_no      支付宝交易号
     * @param [Number] $total_amount  订单金额
     * 更多返回参数查看文档
     * 
     */
    public function notify()
    {
      //验证订单是否存在

      //验证回调金额与订单金额是否一致
   
      //处理的业务逻辑 修改订单状态等操作

      echo 'success';
   
    }
小程序支付
my.tradePay({
  // 调用订单创建接口,获得返回字段支付宝交易号trade_no
  tradeNO:'trade_no',
  success: (res) => {
      content: JSON.stringify(res)
  },
  fail: (res) => {
      content: JSON.stringify(res)
  }
});
更多信息参考文档
https://opendocs.alipay.com/mini/introduce/pay

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值