简要描述

订单支付成功后,支付FM会向你的业务系统的notifyUrl推送数据。当业务收到请求请同步返回字符串success,小写的这七个字母给我们,否则我们会累计通知3次到您的notifyUrl地址。

  • notifyUrl地址就是您的业务系统的开放接口,请不要增加登录校验等
  • 支付FM请求notifyUrl如返回Read timed out等网络不通畅的情况只会通知一次
  • 系统会记录返回异常的部分记录,在商户订单的失败详情中供查阅
  • 接口请求默认超时3s,所以您的接口执行时间要在3s内执行完毕
  • 这是GET请求,您可以参考请求示例拼接请求串,浏览器直接访问即可调试您的接口
  • 建议收到请求后增加判重校验,如果已收到并入库请同步返回字符串`success’

请求URL

  • 创建订单接口传入的notifyUrl

请求方式

请求方法:GET
参数传递:Queryrams 请求地址URL拼接参数

请求参数值说明

参数 必须 类型 说明
merchantNum string 商户号。用户中心查看
orderNo string 商户订单号。原样传回
amount number 订单金额。请求的支付金额(单位:元),最多小数点后保留2位
platformOrderNo string 平台订单号。平台生成的唯一订单号
actualPayAmount string 实际支付金额。最多保留小数点后2位。免签通道因浮动原因,此金额可能会不等于订单金额。
state string 付款成功标志。1:付款成功
payTime string 付款时间。日期时间格式:yyyy-MM-dd HH:mm:ss
attch string 附加信息。原样传回
sign string 签名。通过MD5加密指定的值拼接计算得出的签名值。签名值=md5(付款成功状态state的值+商户号merchantNum的值+商户订单号orderNo的值+订单金额amount的值+接入密钥);其中“+”表示字符串拼接。请注意拼接顺序

返回参数值说明

请求收到后,请同步返回字符串success。

  1. 常见写法1. return 'success';
  2. 常见写法2. echo 'success'; exit;
必须 类型 说明
success string 表示收到回调且正常返回

请求示例

您的notifyUrl?amount=0.2&orderNo=T1584936360806&actualPayAmount=0.2&payTime=2020-03-23 12:51:48&platformOrderNo=1241950691694477312&merchantNum=shanghuhao&sign=4115128010ccff25665524dfd711ffaf&state=1
这是GET请求,您可以参考请求示例拼接请求串,浏览器直接访问即可调试您的接口。

接收示例

此处罗列一些业务系统侧接收回调通知的部分代码供参考,完整代码可以参考demo篇章。

JAVA:

  1. //map为请求键值对
  2. @ResponseBody
  3. @GetMapping("/SuccessNotice")
  4. public String SuccessNotice(@RequestParam Map<String, String> map) {
  5. //您的代码块 start
  6. //您的代码块 end
  7. return "success";
  8. }
  9. 或者
  10. public String SuccessNotice(HttpServletRequest request) {
  11. Map requestParams = request.getParameterMap(); //获取请求键值对requestParams
  12. //您的代码块 start
  13. //您的代码块 end
  14. return "success";
  15. }

PHP:

  1. $merchantNum = '您的商户号';
  2. $key = '您的接入密钥';
  3. $sign = sign(array($_GET['state'], $merchantNum, $_GET['orderNo'], $_GET['amount'], $key));
  4. // 鉴权
  5. if($merchantNum==$_GET['merchantNum'] && $sign == $_GET['sign']) {
  6. //鉴权通过后的业务代码编写
  7. //您的代码块 start
  8. //您的代码块 end
  9. echo "success";
  10. exit;
  11. }
  12. /**
  13. *签名方法
  14. */
  15. function sign($data_arr) {
  16. return md5(join('',$data_arr));
  17. };