zoukankan      html  css  js  c++  java
  • 如何使用沙箱测试单笔转账到支付宝账号(php版) https://openclub.alipay.com/read.php?tid=1770&fid=28

    说明:
      本帖是利用支付宝沙箱测试电脑网站支付接口
      测试环境:Apache2.4.23 +php 5.6.25
      沙箱环境测试正式环境请修改网关为下方值
      
    复制代码

    1
    正式环境网关:https://openapi.alipay.com/gateway.do


    注意事项:
      1.目前仅支持账户余额渠道付款。
      2.转账额度
        1)单日转出累计额度为100万元。
        2)转账给个人支付宝账户,单笔最高5万元;转账给企业支付宝账户,单笔最高10万元。

    特殊逻辑注意点:
      1)如果商户重复请求转账,支付宝会幂等返回成功结果,商户必须对重复转账的业务做好幂等处理;如果不判断,
      存在潜在的风险,商户自行承担因此而产生的所有损失。
      2)如果调用alipay.fund.trans.toaccount.transfer掉单时,或返回结果code=20000时,或返回结果code=40004,
      sub_code= SYSTEM_ERROR时,请调用alipay.fund.trans.order.query发起查询,如果未查询到结果,
      请保持原请求不变再次请求alipay.fund.trans.toaccount.transfer接口。
      3)商户处理转账结果时,对于错误码的处理,只能使用sub_code作为后续处理的判断依据,
      不可使用sub_msg作为后续处理的判断依据。

    参数解读:
      1.amount 转账金额,只支持2位小数,小数点前最大支持13位,金额必须大于等于0.1元。
      2.payer_show_name付款方姓名(最长支持100个英文/50个汉字)。显示在收款方的账单详情页。如果该字段不传
     则默认显示付款方的支付宝认证姓名或单位名称。
      3.payee_real_name收款方真实姓名(最长支持100个英文/50个汉字),如果本参数不为空,则会校验该账户在支付宝
     登记的实名是否与收款方真实姓名一致。
      4.remark转账备注(支持200个英文/100个汉字)。当付款方为企业账户,且转账金额达到(大于等于)50000元,
      remark不能为空。收款方可见,会展示在收款用户的收支详情中。

    测试流程(声明:demo仅做参考使用):
      1.下载官方【服务端sdk】放到项目中,注意:官方sdk php环境要求php5.5以上
      2.看下方代码
        1)收款方账户类型为:ALIPAY_LOGONID
      
    复制代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    require_once 'AopSdk.php';
    $aop = new AopClient ();
    $aop->appId = '填写您的沙箱appid';
    $aop->rsaPrivateKey = '填写您的私钥';
    $aop->alipayrsaPublicKey='填写您的支付宝公钥';
    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset='utf-8';
    $aop->format='json';
    $date=date("YmdHis");
    $arr=range(1000,9999);
    shuffle($arr);
    $request = new AlipayFundTransToaccountTransferRequest ();
    //收款方账户类型为:ALIPAY_LOGONID:支付宝登录号,支持邮箱和手机号格式。
    $request->setBizContent("{" .
        ""out_biz_no":"".$date.$arr[0].""," .
        ""payee_type":"ALIPAY_LOGONID"," .
        ""payee_account":"请填写您转账的账号"," .
        ""amount":"0.1"," .
        ""remark":"单笔转账测试"" .
        "}");
    $result = $aop->execute ($request);
    var_dump($result);


        2)收款方账户类型为:ALIPAY_USERID
        
    复制代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    require_once 'AopSdk.php';
    $aop = new AopClient ();
    $aop->appId = '填写您的appid';
    $aop->rsaPrivateKey = '填写您的私钥';
    $aop->alipayrsaPublicKey='填写您的支付宝公钥';
    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset='utf-8';
    $aop->format='json';
    $date=date("YmdHis");
    $arr=range(1000,9999);
    shuffle($arr);
    $request = new AlipayFundTransToaccountTransferRequest ();
    // 收款方账户类型为:ALIPAY_USERID:支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。
    $request->setBizContent("{" .
            ""out_biz_no":"".$date.$arr[0].""," .
            ""payee_type":"ALIPAY_USERID"," .
            ""payee_account":"填写您要转账的2088"," .
            ""amount":"0.1"," .
            ""remark":"单笔转账测试"" .
            "}");
    $result = $aop->execute ($request);
    var_dump($result);


        3)alipay.fund.trans.order.query(查询转账订单接口)
        说明:商户可通过该接口查询转账订单的状态、支付时间等相关信息,主要应用于B2C转账订单查询的场景
        
    复制代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    /**
     * 2017-08-01
     * by 我是个导演
     * 欢迎访问支付宝论坛:https://openclub.alipay.com/index.php
     */
    require_once 'AopSdk.php';
    $aop = new AopClient ();
    $aop->appId = '填写您的appid';
    $aop->rsaPrivateKey = '填写您的私钥';
    $aop->alipayrsaPublicKey='填写您的支付宝公钥';
    $aop->apiVersion = '1.0';
    $aop->signType = 'RSA2';
    $aop->postCharset='utf-8';
    $aop->format='json';
    $request = new AlipayFundTransOrderQueryRequest ();
    //商户转账唯一订单号: 和支付宝转账单据号不能同时为空。当和支付宝转账单据号同时提供时,将用支付宝转账单据号进行查询,忽略本参数。
    $request->setBizContent("{" .
    ""out_biz_no":"填写商户转账唯一订单号"," .
    ""order_id":"填写支付宝转账单据号"" .
    "}");
    $result = $aop->execute ( $request);
    var_dump($result);
  • 相关阅读:
    SQL分组统计
    实用DOS命令
    Shadertoy 教程 Part 6 使用光线步进算法创建3D场景
    浅谈web前端优化
    如何搭建一套前端监控系统
    with(this)中with的用法及其优缺点
    vue mvvm
    散列表(哈希表)(二)散列函数的构造方法
    作为程序员,你最常上的网站是什么
    散列表(哈希表)(一)散列表的概念
  • 原文地址:https://www.cnblogs.com/caicaizi/p/7589338.html
Copyright © 2011-2022 走看看