对于手机、PC网站、APP支付产生的交易,金康云收银台会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果作为参数通知到商户系统。

异步通知参数

参数类型描述范例
charsetString(10)编码格式,如utf-8、gbk、gb2312等UTF-8
out_trade_noString(64)原支付请求的商户订单号1823789349878200
jky_trade_noString(64)金康云交易号1823789349878200
total_amountNumber(9,2)本次交易支付的订单金额,单位为人民币(元)10
trade_noString(64)第三方支付平台交易号1823789349878200
appidString(32)合作商户客户端(clients_id)121210104612453421
sign_typeString(10)生成签名字符串所使用的签名算法类型,目前支持HMAC-SHA1和MD5,推荐使用HMAC-SHA1HMAC-SHA1
trade_statusString(30)交易目前所处的状态

inProcess : 进行中

waitPay : 等待付款

waitSendGoods : 等待发货

waitConfirmGoods : 等待确认收货

refund : 退款

success : 支付成功

fail : 失败

refundInProcess : 退款待处理

codWaitBuyerPay : 等待买家签收

codWaitReceiptConfirm : 等待签收确认

codWaitSysPaySeller : 等待系统打款给卖家

mr : 维权

TRADE_CLOSED : 交易关闭

TRADE_FINISHED : 交易完成

waitPay
timestampString(9)请求的时间戳2018-01-01 20:00:00
notify_timeString(9)通知到商户系统时间2018-01-01 20:00:00
subjectString(256)商品的标题/交易标题/订单标题/订单关键字等,是请求时对应的参数,原样通知回来PC网站支付
bodyString(128)订单描述账户充值
passback_paramsString(250)回传参数原样返回orderid=4224545423&title=测试
pay_typeString(20)支付方式,

alipay-pc : 支付宝PC端

alipay-wap : 支付宝手机端

alipay-native : 支付宝扫码

weixin-jsapi : 微信公众号

weixin-native : 微信扫码

weixin-app : 微信APP

alipay-native

通知触发条件

触发条件名触发条件描述触发条件默认值
success支付成功true(触发通知)
waitPay交易创建false(不触发通知)
TRADE_FINISHED交易完成true(触发通知)
TRADE_CLOSED交易关闭true(触发通知)

服务器异步通知页面特性

  • 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;

  • 金康云是用POST方式发送通知信息,因此该页面中获取参数的方式,如:$_POST[‘out_trade_no’];

  • 金康云主动发起通知,该方式才会被启用。

  • 只有在金康云的交易管理中存在该笔交易,且发生了交易状态的改变,才会通过该方式发起服务器通知(交易状态为“等待付款”的状态默认是不会发送通知的);

  • 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;

  • 第一次交易状态改变(交易状态是交易完成)时,不仅会返回同步处理结果,而且服务器异步通知页面也会收到金康云发来的处理结果通知;

  • 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给金康云的字符不是success这7个字符,金康云服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);

  • 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,金康云会收不到success字符,会被金康云服务器判定为该页面程序运行出现异常,而重发处理结果通知;

返回结果的验签

某商户设置的通知地址为https://api.xx.com/receive_notify.htm,对应接收到通知的示例如下:

https://api.xx.com/receive_notify.htm?charset=UTF-8&out_trade_no=202042011204093613179062&jky_trade_no=20204201120409123520198517522736&total_amount=0.12&trade_no=2020010422001438670521667529&appid=123520194112150271&sign_type=MD5&trade_status=success×tamp=2020-01-04%2012:10:24&sign=ad3b66ab9fac61a2b94218f14ee6f000

第一步:在通知返回参数列表中,除去sign这个参数外,凡是通知返回回来的参数皆是待验签的参数。

第二步:参数的签名串,详见签名