“当面付”——支付宝查询接口实现 [ 技术分享 ]
前提:测试查询接口需要搭建当面付的付款接口,"当面付"的实现之前已经写过,有兴趣的同道可以去看看(here),本帖只是实现支付宝查询接口,简述一下实现过程:
- 当面付API列表
- 本实现需要alipay.trade.query 查看具体文档和参数说明可以直接"蚂蚁金服"开发者中心查看
- 文档给出了当面付多种接口,我的做法是将需要的接口进行封装,在调用时更加方便,先给出文档中的示例(沙箱测试环境):
$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内部完成,如果想要更多功能,可以自己去集成支付宝接口
- 接口完成后,需要沙箱测试,沙箱测试是测试接口功能的关键环节,查询订单需要提交订单给沙箱,在根据订单查询,根据返回参数类型进行相应测试
- 后续操作:查询完成后,获取返回参数,根据返回参数,状态码和订单号完成后续操作,比如:添加会员、通知商户付款成功等,具体业务逻辑可以自行扩展
- 适用场景:有主动查询需求,支付宝回调延迟等 笔拙见谅~转载请注明出处~
共 0 条回复
没有找到数据。
Victory 上海
注册时间:2016-10-31
最后登录:2024-03-08
在线时长:19小时32分
最后登录:2024-03-08
在线时长:19小时32分
- 粉丝7
- 金钱2645
- 威望0
- 积分2835