Victory 2017-01-04 16:54:25 5124次浏览 0条回复 3 3 0

前提:测试查询接口需要搭建当面付的付款接口,"当面付"的实现之前已经写过,有兴趣的同道可以去看看(here),本帖只是实现支付宝查询接口,简述一下实现过程:

  1. 当面付API列表
  2. 本实现需要alipay.trade.query 查看具体文档和参数说明可以直接"蚂蚁金服"开发者中心查看
  3. 文档给出了当面付多种接口,我的做法是将需要的接口进行封装,在调用时更加方便,先给出文档中的示例(沙箱测试环境):
    $aop = new AopClient ();//执行主体(我认为更像一个驱动)
    $aop->gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
    $aop->appId = '2016092400587082';
    $aop->rsaPrivateKey = '';//私钥
    $aop->alipayrsaPublicKey='';//公钥
    $aop->apiVersion = '1.0';//接口版本
    $aop->signType = 'RSA2';//签名类型
    $aop->postCharset='UTF-8';//字符编码
    $aop->format='json';//数据格式
    $request = new AlipayTradeQueryRequest ();//实例化查询接口
    $request->setBizContent("{" .
    	"    \"out_trade_no\":\"20150320010101001\"," .
    	"    \"trade_no\":\"2014112611001004680 073956707\"" .
    	"  }");
    $result = $aop->execute ( $request);
    $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
    $resultCode = $result->$responseNode->code;
    print_r($result);echo "<br/>";//打印数据
    if(!empty($resultCode)&&$resultCode == 10000){
    echo "成功";
    } else {
    echo "失败";
    }
    

    简单封装DEMO:

    class clientPay{
    //接口配置信息
    private $rsaPrivateKeyFilePath = 'rsa_private_key.pem';
    private $alipayPublicKey = 'rsa_public_key.pem';
    private $gatewayUrl = 'https://openapi.alipaydev.com/gateway.do';
    private $appId = '20160728001097**';    //申请的应用ID
    //private $timeout_express  ='90';
    //订单信息
    public $order_trade_no; 		//商户订单号
    public $total_amount;			//订单总金额
    public $subject;		        //订单标题
    //public $Priceid;		        //产品ID
    public $buyer_logon_id;			//客户登录ID
    //初始化
    public function init(){
    	require_once 'AopClient.php';
    	require_once 'request/AlipayTradePrecreateRequest.php';
    }
    //支付接口
    public function query($bizContent){
    	//aop
    	$aop = new AopClient();
    	$aop->getewayUrl = $this->$getewayUrl;
    	$aop->appId = $this->appId;
    	$aop->rsaPrivateKeyFilePath = $this->rsaPrivateKeyFilePath;
    	$aop->alipayPublicKey = $this->alipayPublicKey;
    	//统一预下订单接口
    	$request = new AlipayTradeQueryRequest();
    	$request->setBizContent($bizContent);
    	$result= $aop->execute($request);
    	$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
    	$resultCode = $result->$responseNode->code;
    	if(!empty($resultCode)&&$resultCode == 10000){
    		echo '查询请求成功';
    	}else{
    		echo '查询请求失败';
    	}
    }
    

    建议配置信息由aop内部完成,如果想要更多功能,可以自己去集成支付宝接口

  4. 接口完成后,需要沙箱测试,沙箱测试是测试接口功能的关键环节,查询订单需要提交订单给沙箱,在根据订单查询,根据返回参数类型进行相应测试
  5. 后续操作:查询完成后,获取返回参数,根据返回参数,状态码和订单号完成后续操作,比如:添加会员、通知商户付款成功等,具体业务逻辑可以自行扩展
  6. 适用场景:有主动查询需求,支付宝回调延迟等 笔拙见谅~转载请注明出处~
觉得很赞
    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册