payment 项目2.0版本 php
巴西奥运会来了,恰好我又是作体育行业的互联网。哎!这个月又要加班成狗了。最近遇到好多莫名其妙的问题,待我忙完这段,再跟你们分享下。今天仍是继续说说 Payment项目
今天主要说说支付宝订单查询接口。html
废话废话很少说。直接上支付宝订单查询的代码。微信的订单查询与此相似。后续也会更新文档。git
// 支付宝配置信息 $aliconfig = [ 'partner' => '2088xxxxx', 'md5_key' => 'xxxxxxxxxxxx', 'rsa_private_key' => dirname(__FILE__) . '/rsa_private_key.pem', "notify_url" => 'http://test.helei.com/pay-notify.html', "return_url" => 'http://test.helei.com/return-url.html', "time_expire" => '14', ]; $data = [ // 经过支付宝交易号查询, 推荐 效率更高 'transaction_id' => '2016011421001004330041239366',// 支付宝 // 经过订单号查询 'order_no' => '2016011402433464',// 支付宝 ]; $query = new QueryContext(); try { // 支付宝查询 $query->initQuery(Config::ALI, $aliconfig); $ret = $query->query($data); } catch (PayException $e) { echo $e->errorMessage();exit; } var_dump($ret);
很是简单,只须要提供支付宝的流水号,或者商家本身生成的订单号,就可完成订单详情的查询,固然前提是,依然要去签约这个接口(以为支付宝真扯淡,都可以支付了,为何查询还要单独签约?这一点微信比它强)github
若是同时提供了 transaction_id
跟 order_no
这两个参数,会优先使用 transaction_id
,由于他的效率要高的多。数组
代码完成了下面分别解释下请求的参数。以及返回参数。关于支付宝的配置参数,请参考 PHP接入支付宝手机网站支付、移动支付接口微信
查询订单的参数很是简单。这里可以查询的仅指:支付成功后的订单异步
参数 | 参数名 | 参数说明 | 是否必须 |
---|---|---|---|
transaction_id | 支付宝流水号 | 支付成功后,异步通知中会返回 | 二选一 |
order_no | 商户订单号 | 商户生成的惟一订单号 | 二选一 |
对于上表中的数据,两个字段二选一便可。推荐使用 transaction_id
,该字段查询效率更高。若是两个字段同时提供,会优先使用 transaction_id
。网站
请求后,程序会向支付宝进行查询。查询完成后,会将返回的数据作必定处理而后返回给客户端。url
查询存在两种状况,失败,成功,分别对返回字段含义进行说明。code
参数 | 参数名 | 参数说明 | 是否必须 |
---|---|---|---|
is_success | 成功标识 | 请求是否成功,T:成功,F:失败 | 是 |
error | 错误提示 | 只有is_success=F时才返回 | 否 |
response | 响应数据 | 查询成功后返回的数据,一个数组,is_success=T时返回 | 否 |
关于 response
中包含字段的描述
参数 | 参数名 | 参数说明 | 是否必须 |
---|---|---|---|
subject | 商品名称 | 订单的关键字 | 是 |
body | 商品描述 | 提交订单时的body值 | 是 |
amount | 交易金额 | 本次订单总金额 | 是 |
channel | 支付渠道 | 本处取值: ali | 是 |
order_no | 商户网站惟一订单号 | 商户生成的订单号,必须确保在系统中惟一 | 是 |
buyer_id | 买家支付宝帐户号 | 能够是Email或手机号码。 | 是 |
trade_state | 交易状态 | 支付成功与否,可取值:success not_pay | 是 |
transaction_id | 支付宝交易号 | 支付宝系统中的交易流水号,可用于查询订单状态 | 是 |
time_end | 交易付款时间 | 格式为2016-07-28 16:01:01 | 是 |
针对查询返回的数据,调用者可进行相关的业务处理。若是须要更多信息可联系我进行定制开发,也可自行更改代码完成。