准备工作-必要前提
已有UID和secretkey。
注册账号后,在管理后台-“资料管理”中获取,并开通会员。或联系管理员获取。
发起付款接口(必用接口)
有2种方法发起支付:1.跳转到我们支付页;2.获取json支付页信息,自定义支付页
跳转支付页接口URL:
http://vippay.huafufx.com/
传参方式:Post
使用方法:用表单post的方式,post参数并跳转到此网址,会自动显示我们的支付页http://vippay.huafufx.com/order.php?orderid=order_id(订单号)
获取支付json数据接口URL:
http://vippay.huafufx.com/format-json/
传参方式:Post
说明:用post方式传参数,并直接获取json返回值,显示在您自定义的支付页上。如需用我们的支付页面,请跳转到以下网址http://vippay.huafufx.com/order.php?orderid=order_id(订单号)
请求参数:
# | 参数名 | 含义 | 类型 | 说明 |
---|---|---|---|---|
1 | uid | 商户uid | string(24) | 必填。您的商户唯一标识,注册后在设置里获得。一个24位字符串 |
2 | order_price | 价格 | float | 必填。单位:元。精确小数点后2位 |
3 | order_type | 支付渠道 | string(255) | 必填。支付宝填:alipay 微信支付填:wechat |
4 | notify_url | 通知回调网址 | string(255) | 必填。用户支付成功后,我们服务器会主动发送一个post消息到这个网址。由您自定义。不要urlencode。例:http://www.aaa.com/paysapi_notify |
5 | redirect_url | 跳转网址 | string(255) | 必填。用户支付成功后,我们会让用户浏览器自动跳转到这个网址。由您自定义。不要urlencode。例:http://www.aaa.com/paysapi_return |
6 | order_id | 商户自定义订单号 | string(50) | 必填。我们会据此判别是同一笔订单还是新订单。我们回调时,会带上这个参数。例:201710192541,不同的订单订单号不能重复 |
7 | order_name | 商户自定义客户号 | string(100) | 选填。请用英文或数字,不要用中文。我们会显示在您后台的订单列表中,方便您看到是哪个用户的付款,方便后台对账。强烈建议填写。可以填用户名,也可以填您数据库中的用户uid。例:xxx, xxx@aaa.com |
8 | extension | 备注信息 | string(100) | 选填。请用英文或数字,不要用中文。您的备注信息,用来显示在后台的订单名称。 |
9 | sign | 秘钥 | string(32) | 必填。把使用到的所有参数,连secretkey一起,拼接:md5(md5(orde_price + order_type) + secretkey) |
sign的拼接顺序:如用到了所有参数,就按这个顺序拼接:md5(md5(orde_price + order_type) + secretkey);
注意:secretkey在安全上非常重要,一定不要显示在任何网页代码、网址参数中。只可以放在服务端。计算sign时,先在服务端计算好,把计算出来的sign传出来。严禁在客户端计算sign,严禁在客户端存储secretkey。sign值必为小写
Json请求的返回值:
{ //提示给用户的文字信息,会根据不同场景,展示不同内容 "msg":"付款即时到账 未到账可联系我们", "data":{ //二维码信息,如果没返回,说明存在错误,参考msg的信息。 //想展示二维码内容,: "qr_url":"HTTPS://QR.ALIPAY.COM/FKX08406GFWYYSF0YRNC10", //支付渠道:alipay-支付宝;wechat-微信 "order_type":"alipay", //显示给用户的订单支付金额(一定要把这个价格显示在支付页上,而不是订单金额) "qr_price":0.05 }, ......; //code目前只返回1。 "code":1, }
付款成功回调通知
用户付款成功后,我们会向您在发起付款接口传入的notify_url网址发送通知。(注意:避免网络不稳定重发通知导致重复充值,每个order_id只允许执行一次充值逻辑。)
传参方式:Get
参数内容:
# | 参数名 | 含义 | 类型 | 说明 |
---|---|---|---|---|
1 | order_id | 生成的订单ID号 | string(24) | 一定存在。一个24位字符串,是此订单在易合支付服务器上的唯一编号 |
2 | order_name | 您的自定义订单名称 | string(50) | 一定存在。是您在发起付款接口传入的您的自定义订单名称 |
3 | order_price | 订单定价 | float | 一定存在。是您在发起付款接口传入的订单价格 |
4 | qr_price | 实际支付金额 | float | 一定存在。表示用户实际支付的金额。一般会和order_price值一致,如果同时存在多个用户支付同一金额,就会和order_price存在一定差额,差额一般在1-2分钱上下,越多人同时付款,差额越大。 |
5 | extension | 您的自定义参数 | string(50) | 如果您在发起付款接口带入此参数,我们会原封不动传回。 |
6 | sign | 秘钥 | string(32) | 一定存在。拼接:md5(md5(order_id + order_price) +secretkey)。得到sign。您需要在您的服务端按照同样的算法,自己验证此sign是否正确。只在正确时,执行您自己逻辑中支付成功代码。 |
sign的拼接顺序:如用到了所有参数,就按这个顺序拼接:md5(md5(order_id + order_price) +secretkey);
付款成功自动跳转
用户付款成功后,我们会在先通过上面的接口,通知您服务器付款成功,再过1-3秒后将用户跳转到您在发起付款接口传入的redirect_url网址。注:用Json方式发起支付的,不会有主动跳转。需要自行监控您的订单信息是否被我们异步回调接口修改成支付成功状态,发现您订单更新后,自行给用户显示支付成功。
传参方式:Get
参数内容:
# | 参数名 | 含义 | 类型 | 说明 |
---|---|---|---|---|
1 | order_id | 您的自定义单号 | string(50) | 一定存在。您可以通过此order_id在您后台查询到付款确实成功后,给用户一个付款成功的展示。 |
注意:请不要将此跳转认为是用户付款成功的判断条件,此行为极不安全。请根据我们的付款成功回调通知是否送到,来判断交易是否成功。