对接前置工作

一句话概括:想用什么支付方式,您需要有对应的收款账号,然后配置到支付FM后台对应位置,最后技术对接我们接口。如果你的网站后台有支付FM的插件或 易支付系列的插件,可以不需要开发对接API,配置对应接口参数就可以

1. 请亲爱的您要耐心看文档,文档为我们精心编写,可以解决您99%遇到的问题,文档有图文对照操作更快捷。
2. 请先看下支付方式效果说明,了解您想用且能用的支付方式的顾客支付效果。
3. 根据对接步骤完成相应的支付方式的收款号配置。

SDK下载

PHP版本SDK微盘下载:https://share.weiyun.com/E2B4ZoBO
QQ群下载:366959204

页面跳转支付

此接口可用于用户前台直接发起支付,使用form表单跳转或拼接成url跳转。

URL地址:【用户中心】查看到的【V2接口地址】后拼接 submit.php

请求方法:GET/POST 推荐POST,不容易被劫持或屏蔽
参数传递:Query
Content-Type:application/x-www-form-urlencoded

POST数据示例pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sign={签名字符串}&sign_type=MD5

请求参数说明

URL地址:【用户中心】查看到的【V2接口地址】,一般有些系统的接口地址配置时候不用带/,如果请求失败,请去掉【V2接口地址】后的 / 或 【V2接口地址】后拼接 submit.php

请求方式:POST 或 GET(推荐POST,不容易被劫持或屏蔽)

字段名
变量名 必填 类型 示例值 描述
商户ID pid String 48881234567890123 在支付FM商户后台【用户中心】处可查看,该值不是用户名。
支付方式 type String alipay 值:alipay支付宝,wxpay微信。默认关联支付宝和微信收款码方式。通过用户中心的v2关联功能可以不调整代码,随意更换支付方式。点击查看支付方式介绍
商户订单号 out_trade_no String 20160806151343349 商户订单号。字母或纯数字,超过32字符,不能有中文
异步通知地址 notify_url String 域名/notify_url 服务器异步通知地址,商户业务系统用来接收支付结果通知数据的网址, 公网可访问的网址,请根据规范使用Postmam等工具功能测试后传入。
示例值:https://www.xxxx.com/payfm/payCalback.php
跳转地址 return_url String 域名/return_url 支付FM后台订单状态为已支付才会跳转展示网址,有些支付方式在手机中无法跳转,所以请勿用此地址做验证或者业务强关联。200字符以内,
常见为支付成功提示、订单中心、会员中心网址等。为了安全不要和notify_url传值一样。
商品名称 name String VIP会员
商品金额 money number 1 订单金额。请求的支付金额(单位:元),最多小数点后保留2位
网站名称 sitename String 云任务
业务扩展参数 param String 没有请留空 支付后原样返回
签名字符串 sign String 202cb962ac59075b964b07152d234b70 签名算法点此查看签名算法中的KEY 对应支付FM平台的“接入密钥”,在支付FM商户后台【用户中心】处可查看
签名类型 sign_type String MD5 默认为MD5

POST接口支付

此接口可用于服务器后端发起支付请求,会返回JSON数据格式,自行解析展示数据中的支付链接。

URL地址:在支付FM商户后台【用户中心】处可查看到的“V2接口地址”后拼接mapi.php

请求方法:POST
参数传递:Query
Content-Type:application/x-www-form-urlencoded

POST数据示例pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}&notify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sign={签名字符串}&sign_type=MD5

请求参数说明

字段名 变量名 必填 类型 示例值 描述
商户ID pid String 1001
支付方式 type String alipay 支付方式列表
商户订单号 out_trade_no String 20160806151343349
异步通知地址 notify_url String http://域名/notify_url.php 服务器异步通知地址
跳转通知地址 return_url String http://域名/return_url.php 页面跳转通知地址
商品名称 name String VIP会员 如超过127个字节会自动截取
商品金额 money number 1.02 单位:元,最大2位小数
用户IP地址 clientip String 192.168.1.100 用户发起支付的IP地址
设备类型 device String pc 根据用户浏览器的UA判断,传入用户所使用的浏览器或设备类型,默认为pc设备类型列表
业务扩展参数 param String 没有请留空 支付后原样返回
签名字符串 sign String 202cb962ac59075b964b07152d234b70 签名算法点此查看
签名类型 sign_type String MD5 默认为MD5

返回结果(json):

字段名 变量名 类型 示例值 描述
返回状态码 code Int 1 1为成功,其它值为失败
返回信息 msg String 失败时返回原因
订单号 trade_no String 20160806151343349 支付订单号
支付链接 payurl String 如可以直接跳转到该url支付,也可以在Iframe、Webview中打开此页面。顾客访问该网址就是对应不同支付方式的效果。如您的业务系统为APP,请调用手机浏览器访问此链接,不建议在APP内直接访问
二维码链接 qrcode String 该字段里面没有传值

MD5签名算法

KEY 对应支付FM用户中心的 接入密钥
1、将发送或接收到的所有参数按照参数名ASCII码从小到大排序(a-z),sign、sign_type、和空值不参与签名! 2、将排序后的参数拼接成URL键值对的格式,例如 a=b&c=d&e=f,参数值不要进行url编码。 3、再将拼接好的字符串与商户密钥KEY进行MD5加密得出sign签名参数,sign = md5 ( a=b&c=d&e=f + KEY ) (注意:+ 为各语言的拼接符,不是字符!),md5结果为小写。

参数拼接示例:

  1. sign:money=1&name=【A0125】&notify_url=https://www.zhifux.com/success.txt&out_trade_no=38329329329121&pid=442130427265040384&return_url=https://www.baidu.com&type=alipay072c320169c1c4043277c8746c26050f
  2. signMD5结果:134d9c7103b5534ea72935542c9e4a31

JAVA签名函数示例:

  1. public static String signed(String key, Map<String, Object> paramMap) {
  2. String signStr = "";
  3. for (Map.Entry<String, Object> m : paramMap.entrySet()) {
  4. if("sign_type".equals(m.getKey()) || "sign".equals(m.getKey())) {
  5. continue;
  6. }
  7. signStr += m.getKey() + "=" + m.getValue() + "&";
  8. }
  9. // 去掉最后一个 &
  10. signStr = signStr.substring(0, signStr.length() - 1);
  11. // 最后拼接上KEY
  12. signStr += key;
  13. System.out.println(signStr);
  14. // 转为MD5
  15. return new Digester(DigestAlgorithm.MD5).digestHex(signStr);
  16. }

PHP签名函数示例:

  1. // 计算签名
  2. private function getSign($param){
  3. ksort($param);
  4. reset($param);
  5. $signstr = '';
  6. foreach($param as $k => $v){
  7. if($k != "sign" && $k != "sign_type" && $v!=''){
  8. $signstr .= $k.'='.$v.'&';
  9. }
  10. }
  11. $signstr = substr($signstr,0,-1);
  12. $signstr .= $this->key;
  13. $sign = md5($signstr);
  14. return $sign;
  15. }

payType 传值说明

支付方式的收款号配置在商户后台,分别在我们平台后台的【免签类型】和【签约类型】功能菜单下,调用接口前请确保已经配置了对应的收款账号。
免签类型:收款手机需要安装监控APP挂机。
签约类型:需要开通对应的签约商户和支付产品。
支付方式实际使用体验效果:https://docs.zhifux.com/read/zhifufm/paytype

是否默认 类型 说明 收款号类型 分派方式 适用端口
wechat string 收款码 - 微信 免签 收款号随机或轮训 PC&WAP
alipay string 收款码 - 支付宝(上传模式和动态码模式) 免签 收款号随机或轮训 PC&WAP
unipay string 收款码 - 云闪付 免签 收款号随机或轮训 PC&WAP
qujie.qrcode string 三方聚合码 - 支持付呗、收钱吧、钱到啦、京东收银哆啦宝、盛意旺、拉卡拉 商户数字钱宝、微商相册、银盛小Y、度小满、易生收款啦APP的收款码。 免签 收款号随机或轮训 PC&WAP
jsnx.qrcode string 收款码 - 农商行收银宝 免签 收款号随机或轮训 PC&WAP
bankapp string 网银APP收款 免签 收款号随机或轮训 PC&WAP
alipaysign string 支付宝网站支付接口(电脑或手机自适应) 直连支付宝官方签约 商户号轮训 PC&WAP
alipay.direct.pc string 支付宝电脑网站支付 直连支付宝官方签约 商户号轮训 PC
alipay.direct.wap string 支付宝手机网站支付 直连支付宝官方签约 商户号轮训 WAP
alipay-facetoface string 支付宝当面付,跨地区收款不推荐使用 直连支付宝官方签约 商户号轮训 PC&WAP
wxpayh5 string 微信支付H5 直连微信官方签约 商户号轮训 WAP
wxpaynative string 微信支付Native 直连微信官方签约 商户号轮训 PC
wxpayjsapi string 微信支付JSAPI 直连微信官方签约 商户号轮训 PC&WAP
fuyou-aliqr string 富友支付宝服务窗 富友间连支付宝签约 商户号轮训 PC&WAP
fuyou-wxqr string 富友微信支付 富友间连微信签约 商户号轮训 PC&WAP
fuyou-bankqr string 富友支付-网银APP扫码 富友间连银联签约 商户号轮训 PC&WAP
fuyou-pcqr string 富友收银台 富友间连签约 商户号轮训 PC&WAP
sandpayh5 string 杉德支付收银台 杉德间连签约支付宝微信 商户号轮训 PC&WAP
sand-alipay string 杉德支付宝 杉德间连签约支付宝微信 商户号轮训 PC&WAP
sand-wxpay string 杉德微信公众号 杉德间连签约支付宝微信 商户号轮训 PC&WAP
alipay-pc-all string 支付宝PC签约轮训,见说明 直连+间连支付宝签约 签约通道轮训+商户号轮训 PC
alipay-wap-all string 支付宝WAP签约轮训,见说明 直连+间连支付宝签约 签约通道轮训+商户号轮训 WAP
wechat-pc-all string 微信PC签约轮训,见说明 直连+间连微信签约 签约通道轮训+商户号轮训 PC
wechat-wap-all string 微信WAP签约轮训,见说明 直连+间连微信签约 签约通道轮训+商户号轮训 WAP