这样mysql的时间格式化20091225091010 怎样格式化

客服:95017
除被扫支付场景以外,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码、JSAPI、APP等不同场景生成交易串调起支付。
https://apihk.mch.weixin.qq.com/pay/unifiedorder
&&&(建议接入点:东南亚)
https://apius.mch.weixin.qq.com/pay/unifiedorder&&&&(建议接入点:其它)
https://api.mch.weixin.qq.com/pay/unifiedorder&&&&&&&&(建议接入点:中国国内)
注:商户可根据实际请求情况选择最优域名进行访问,建议在接入时做好兼容,当访问其中一个域名出现异常时,可自动切换为其他域名。
是否需要证书
公众账号ID
String(32)
wxd678efh567hg6787
微信分配的公众账号ID(企业号corpid即为此appId)
String(32)
微信支付分配的商户号
device_info
String(32)
终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"
随机字符串
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
随机字符串,不长于32位。推荐
String(32)
C380BEC2BFD727A4BF3AD6
签名,详见
String(32)
HMAC-SHA256
签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
String(128)
Ipad&mini&&16G&&白色
商品或支付单简要描述
String(32)
固定值 1.0
String(6000)
&goods_detail&:[
&goods_name&:&iPhone6s 16G&,
&quantity&:1,
&goods_name&:&iPhone6s 32G&,
&quantity&:1,
商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。
goods_detail
└ goods_name String 必填 256 商品名称
└ quantity Int 必填4 商品数量
String(127)
附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
商户订单号
out_trade_no
String(32)
商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。&其他说明见
String(16)
符合ISO4217标准的三位字母代码详见
标价金额,单位为该币种最小计算单位,只能为整数,详见
spbill_create_ip
String(16)
123.12.12.123
APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
交易起始时间
time_start
String(14)
订单生成时间,格式为yyyyMMddHHmmss,如日9点10分10秒表示为10。其他详见
交易结束时间
time_expire
String(14)
订单失效时间,格式为yyyyMMddHHmmss,如日9点10分10秒表示为10。订单失效时间是针对订单号而言的,由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期,所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。其他详见建议:最短失效时间间隔大于1分钟
notify_url
String(256)
http://www.weixin.qq.com/wxpay/pay.php
接收微信支付异步通知回调地址
trade_type
String(16)
取值如下:JSAPI,NATIVE,APP,详细说明见
product_id
String(32)
trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。
指定支付方式
String(32)
no_credit--指定不能使用信用卡支付
String(128)
oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。openid如何获取,可参考【】。企业号请使用【】获取企业号内成员userid,再调用【】进行转换
举例如下:
 & &appid&wx0ec43b&/appid&
 & &attach&支付测试&/attach&
 & &body&JSAPI支付测试&/body&
 & &mch_id&&/mch_id&
 & &detail&&![CDATA[{&goods_detail&:[{&goods_name&:&iPhone6s 16G&,&quantity&:1,},{ &goods_name&:&iPhone6s 32G&,&quantity&:1, }]}]]&&/detail&
 & &nonce_str&1add1a30ac87aa2db72f57a2375d8fec&/nonce_str&
 & &notify_url&http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php&/notify_url&
 & &openid&oUpF8uMuAJO_M2pxb1Q9zNjWeS6o&/openid&
 & &out_trade_no&&/out_trade_no&
 & &spbill_create_ip&14.23.150.211&/spbill_create_ip&
 & &total_fee&1&/total_fee&
 & &trade_type&JSAPI&/trade_type&
 & &sign&0CBEFBCA001&/sign&
注:参数值用XML转义即可,CDATA标签用于说明数据不被XML解析器解析。
返回状态码
return_code
String(16)
SUCCESS/FAIL
此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
return_msg
String(128)
返回信息,如非空,为错误原因
参数格式校验错误
以下字段在return_code为SUCCESS的时候有返回
公众账号ID
String(32)
调用接口提交的公众账号ID
String(32)
调用接口提交的商户号
device_info
String(32)
调用接口提交的终端设备号,
随机字符串
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
微信返回的随机字符串
String(32)
C380BEC2BFD727A4BF3AD6
微信返回的签名,详见
result_code
String(16)
SUCCESS/FAIL
String(32)
SYSTEMERROR
详细参见第6节错误列表
错误代码描述
err_code_des
String(128)
错误返回的信息描述
以下字段在return_code&和result_code都为SUCCESS的时候有返回
trade_type
String(16)
调用接口提交的交易类型,取值如下:JSAPI,NATIVE,APP,详细说明见
预支付交易会话标识
String(64)
微信生成的预支付会话标识,用于后续接口调用中使用,该值有效期为2小时
二维码链接
String(64)
URl:weixin://wxpay/s/An4baqw
trade_type为NATIVE是有返回,可将该参数值生成二维码展示出来进行扫码支付
举例如下:
 & &return_code&&![CDATA[SUCCESS]]&&/return_code&
 & &return_msg&&![CDATA[OK]]&&/return_msg&
 & &appid&&![CDATA[wx0ec43b]]&&/appid&
 & &mch_id&&![CDATA[]]&&/mch_id&
 & &nonce_str&&![CDATA[IITRi8Iabbblz1Jc]]&&/nonce_str&
 & &sign&&![CDATA[EB8ED0CED72F]]&&/sign&
 & &result_code&&![CDATA[SUCCESS]]&&/result_code&
 & &prepay_id&&![CDATA[wx507cbf6ffd8b]]&&/prepay_id&
 & &trade_type&&![CDATA[JSAPI]]&&/trade_type&
商户无此接口权限
商户未开通此接口权限
请商户前往申请此接口权限
用户帐号余额不足
用户帐号余额不足,请用户充值或更换支付卡后再支付
商户订单已支付
商户订单已支付,无需重复操作
商户订单已支付,无需更多操作
ORDERCLOSED
订单已关闭
当前订单已关闭,无法支付
当前订单已关闭,请重新下单
SYSTEMERROR
系统异常,请用相同参数重新调用
APPID_NOT_EXIST
APPID不存在
参数中缺少APPID
请检查APPID是否正确
MCHID_NOT_EXIST
MCHID不存在
参数中缺少MCHID
请检查MCHID是否正确
APPID_MCHID_NOT_MATCH
appid和mch_id不匹配
appid和mch_id不匹配
请确认appid和mch_id是否匹配
LACK_PARAMS
缺少必要的请求参数
请检查参数是否齐全
OUT_TRADE_NO_USED
商户订单号重复
同一笔交易不能多次提交
请核实商户订单号是否重复提交
参数签名结果不正确
请检查签名参数和方法是否都符合签名算法要求
XML_FORMAT_ERROR
XML格式错误
XML格式错误
请检查XML参数格式是否正确
REQUIRE_POST_METHOD
请使用post方法
未使用post传递参数&
请检查请求参数是否通过post方法提交
POST_DATA_EMPTY
post数据为空
post数据不能为空
请检查post数据是否为空
编码格式错误
未使用指定编码格式
请使用NOT_UTF8编码格式优畅接口文档
优畅支付接口文档
UCHANG开发人员与商户平台服务方技术或业务人员参考和查询。
ULINE接口数据格式
文档版本 v1
接口版本 v1
1.1 数据格式
1.1.1 提交数据
&attach&&![CDATA[att]]&&/attach&
&body&&![CDATA[支付测试]]&&/body&
&device_info&1000&/device_info&
&mch_id&&/mch_id&
&nonce_str&adf880d5c8986bd0debd948&/nonce_str&
&out_trade_no&&/out_trade_no&
&spbill_create_ip&127.0.0.1&/spbill_create_ip&
&total_fee&1&/total_fee&
&sign&&![CDATA[FCE52E4CAA4D2B49A91C]]&&/sign&
1.2 XML 数据格式
采用标准XML协议,所有参数只存在一级节点,不采用多借点嵌套。
协议级错误返回:
&return_code&500&/return_code&
&return_msg&&![CDATA[SYSERR]]&&/return_msg&
正确返回数据:
&result_code&SUCCESS&/return_code&
&return_msg&&![CDATA[OK]]&&/return_msg&
&mch_id&&![CDATA[]]&&/mch_id&
&device_info&&![CDATA[1000]]&&/device_info&
&nonce_str&&![CDATA[FvYSnPuFFPkAr77M]]&&/nonce_str&
&sign&&![CDATA[EA6EB5F3B72]]&&/sign&
&result_code&SUCCESS&/result_code&
&trade_type&&![CDATA[pay.weixin.jspay]]&&/trade_type&
&bank_type&&![CDATA[CCB_CREDIT]]&&/bank_type&
&total_fee&1&/total_fee&
&coupon_fee&0&/coupon_fee&
&fee_type&&![CDATA[CNY]]&&/fee_type&
&transaction_id&&![CDATA[8756]]&&/transaction_id&
&out_trade_no&&![CDATA[]]&&/out_trade_no&
&attach&&![CDATA[att]]&&/attach&
&time_end&&![CDATA[55]]&&/time_end&
业务级错误返回:
&return_code&SUCCESS&/return_code&
&return_msg&&![CDATA[OK]]&&/return_msg&
&mch_id&&![CDATA[]]&&/mch_id&
&device_info&&![CDATA[1000]]&&/device_info&
&nonce_str&&![CDATA[sthBJ9QyUG6vkrjJ]]&&/nonce_str&
&sign&&![CDATA[5D4FF23AA7B6A4C3046AB]]&&/sign&
&result_code&FAIL&/result_code&
&err_code&&![CDATA[AUTHCODE_EXPIRE]]&&/err_code&
&err_code_des&&![CDATA[二维码已过期,请刷新再试]]&&/err_code_des&
一般有返回有 return_code 参数,SUCCESS 表示调用成功;非 SUCCESS 表示调用失败。
1.2数字签名
为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进 行签名校验。
数字签名有两个步骤,先按一定规则拼接要签名的原始串,再选择具体的算法和密钥计算出签名结果。 一般失败的结果不签名。
1.2.1签名原始串
无论是请求还是应答,签名原始串按以下方式组装成字符串:
除 sign 字段外,所有参数按照字段名的 ascii 码从小到大排序后使用 QueryString 的格式(即 key1=value1&key2=value2&)拼接而成,空值不传递,不参与签名组串。
签名原始串中,字段名和字段值都采用原始值,不进行 URL Encode。
ULINE返回的应答或通知消息可能会由于升级增加参数,请验证应答签名时注意允许这种情况。
调用某个接口,接口有如下字段:
&body&&![CDATA[测试支付]]&&/body&
&mch_create_ip&&![CDATA[127.0.0.1]]&&/mch_create_ip&
&mch_id&&![CDATA[006]]&&/mch_id&
&nonce_str&&![CDATA[]]&&/nonce_str&
&notify_url&&![CDATA[http://227.0.0.1:9001/javak/sds?123&23=3]]&&/notify_url&
&out_trade_no&&![CDATA[]]&&/out_trade_no&
&service&&![CDATA[pay.weixin.jspay]]&&/service&
&sign&&![CDATA[F261997EFF2ECFAC372583]]&&/sign&
&total_fee&&![CDATA[1]]&&/total_fee&
正确的签名字段排序为:
body=测试支付&mch_create_ip=127.0.0.1&
mch_id=006&nonce_str=&
notify_url=http://227.0.0.1:9001/javak/sds?123&23=3&
out_trade_no=&service=pay.weixin.jspay&total_fee=1
1.2.2 签名算法
目前暂只支持 MD5 签名
MD5 是一种摘要生成算法,通过在签名原始串后加上商户通信密钥的内容,进行 MD5 运算,形成的摘要字符串即为签名结果。为了方便比较,签名结果统一转换为大写字符。
注意:签名时将字符串转化成字节流时指定的编码字符集应与参数 charset 一致。
MD5 签名计算公式:
sign = Md5(原字符串&key=商户密钥).toUpperCase
假设以下为 XML 传入参数:
&body&&![CDATA[测试支付]]&&/body&
&mch_create_ip&&![CDATA[127.0.0.1]]&&/mch_create_ip&
&mch_id&&![CDATA[006]]&&/mch_id&
&nonce_str&&![CDATA[]]&&/nonce_str&
&notify_url&&![CDATA[http://227.0.0.1:9001/javak/sds?123&23=3]]&&/notify_url&
&out_trade_no&&![CDATA[]]&&/out_trade_no&
&service&&![CDATA[pay.weixin.jspay]]&&/service&
&sign&&![CDATA[2CE21BDFD4C7]]&&/sign&
&total_fee&&![CDATA[1]]&&/total_fee&
假设商户密钥为:
e1cf0ddcf6b47b59cad717af
i:经过 a 过程 URL 键值对字典序排序后的字符串 string1 为:
body=测试支付&mch_create_ip=127.0.0.1&
mch_id=006&nonce_str=&
notify_url =http://227.0.0.1:9001/javak/sds?123&23=3&
out_trade_no=&service=pay.weixin.scancode&total_fee=1
ii:经过 b 过程后得到 sign 为:
sign=md5("#{string1}&key=e1cf0ddcf6b47b59cad717af").toUpperCase
=& md5("body=测试支付&mch_create_ip=127.0.0.1&mch_id=006&
nonce_str=&notify_url=http://227.0.0.1:9001/javak/sds?123&23=3&
out_trade_no=&service=pay.weixin.jspay&total_fee=1&
key=e1cf0ddcf6b47b59cad717af"
).toUpperCase()
=& "2CE21BDFD4C7"
1.3 获取微信用户的openid
1.4 测试环境
1.ULINE测试环境与正式环境数据不互通,如需测试环境参数请联系ULINE商务人员。
2.获取测试开发商户号以及秘钥,请联系ULINE技术对接人员
- 测试开发环境发生的交易为真实交易
- 测试环境无结算功能,请尽量在当天进行交易退款,否则第二天可能会导致无法退款
3.ULINE测试环境不支持微信公众号支付,微信公众号支付(如不需此支付方式,可跳过)请通知商户预先申请微信服务号,并通过微信认证,确保认证实体与提交到银行的商户资料一致。并提交&微信公众号支付设置申请表&
&微信公众号支付设置申请表&
商户名称、优畅商户号、微信APPID(公众号支付、扫码支付时传入的sub_appid)、支付授权目录1、支付授权目录2、默认关注公众号appid
1.5 注意事项
所有涉及到金额的单位都是分,最小的单位是 1 分,不能有小数出现
notify_url 是UChang服务器从后台直接发起请求到商户服务器,商户处理时不能检查用户的 cookie 或 session;
商户更新 DB 等发货流程需要在 notify_url 完成后,以确保掉单时,UChang补单能成功补上
notify_url 有可能重复通知,商户需要做去重处理,避免多次发货
notify_url 收到的通知,商户处理成功或检查订单已经处理,需要返回处理成功的标志“success”,以告知UChang不再通知
其它注意事项
参数大小写问题;请留意文档中要求的字符大小写问题, 如 “md5 运算后, 字符串的字符要转换为大写” 。
参数格式问题;所有传入参数,均为字符串类型,请注意文档中各处的具体要求。
时间戳问题;请使用 Linux
时间戳,注意为字符串格式。精确到秒,不需要到毫秒,即 10
同一商户订单号支付问题;商户的 out_trade_no
必须全局唯一。
注意:当商户的同一个商户号绑定了多种支付方式也需要加标识来区分,不能出现重复。当发起支付返回失败时,一定要用原订单的 out_trade_no
而不能重新生成新的订单号发起支付,避免同一单重复支付。
ULINE Weixin微信支付接口
文档版本 v1
接口版本 v1
API接口地址:请咨询运营人员,或参考我方技术对接流程文档
注:测试地址产生的交易也为正式扣款交易,但无结算功能,请商家尽量在当天进行退款
2.1下单接口
2.1.1业务功能
2.1.2交互模式
请求:后台请求交互模式
返回结果:后台请求交互模式
2.1.3请求参数列表
请求 url:/wechat/orders
&?xml version="1.0" encoding="UTF-8"?&
&mch_id&100010&/mch_id&
&total_fee&10&/total_fee&
&out_trade_no&5812281&/out_trade_no&
&body&BODY unif 支付测试&/body&
&attach&ATTACH unif 订单额外描述&/attach&
&detail&DETAIL unif 刷卡支付测试&/detail&
&spbill_create_ip&127.0.0.1&/spbill_create_ip&
&notify_url&http://127.0.0.1:3001/pay_notify/wechat_notify&/notify_url&
&nonce_str&e4d493bdf8c3c&/nonce_str&
&trade_type&NATIVE&/trade_type&
&sign&F68CEB8C4549&/sign&
成功返回示例
&return_code&SUCCESS&/return_code&
&return_msg&OK&/return_msg&
&result_code&SUCCESS&/result_code&
&mch_id&100010&/mch_id&
&nonce_str&AuBW53Js00QB9aS7&/nonce_str&
&sign&1B09E3D0ECAD8B1D556D4B&/sign&
&out_trade_no&5812281&/out_trade_no&
&code_url&weixin://wxpay/bizpayurl?pr=LLN0u7P&/code_url&
&prepay_id&wx2&/prepay_id&
&trade_type&NATIVE&/trade_type&
失败返回示例
&?xml version="1.0" encoding="UTF-8"?&
&return_code&FAIL&/return_code&
&return_msg&JSAPI支付必须传入openid或sub_openid&/return_msg&
POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
String(32)
商户微信公众号appid,app支付时,为在微信开放平台上申请的APPID
device_info
String(32)
终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传&WEB&
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
String(128)
String(8192 )
商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。goods_detail 服务商必填 []:└ goods_id String 必填 32 商品的编号└ wxpay_goods_id String 可选 32 微信支付定义的统一商品编号└ goods_name String 必填 256 商品名称└ quantity Int 必填 商品数量└ price Int 必填 商品单价,单位为分└ goods_category String 可选 32 商品类目ID└ body String 可选 1000 商品描述信息
String(127)
附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
out_trade_no
String(32)
商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
String(16)
符合ISO 4217标准的三位字母代码,默认人民币:CNY
总金额,以分为单位,不允许包含任何字、符号
spbill_create_ip
String(16)
APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
time_start
String(14)
订单生成时间,格式为yyyyMMddHHmmss,如日9点10分10秒表示为10
time_expire
String(14)
String(32)
商品标记,代金券或立减优惠功能的参数
notify_url
String(256)
接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
trade_type
String(16)
取值如下:JSAPI,NATIVE,APP,MWEB(H5支付)
product_id
String(32)
trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。
String(32)
no_credit&指定不能使用信用卡支付
sub_openid
String(128)
trade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。
String(32)
true&小程序支付;此字段控制 js_prepay_info 的生成,为true时js_prepay_info返回小程序支付参数,否则返回公众号支付参数
scene_info
String(256)
trade_type=MWEB,此参数必传。WAP网站应用 {&h5_info&: {&type&:&Wap&,&wap_url&: &WAP网站URL地址&,&wap_name&: &WAP网站名&}},IOS移动应用 {&h5_info&: {&type&:&IOS&,&app_name&: &应用名&,&bundle_id&: &包名&}},安卓移动应用 {&h5_info&: {&type&:&Android&,&app_name&: &应用名&,&package_name&: &包名&}}。H5支付建议只在Wap场景上使用。
payment_code
String(32)
支付通道代码, 详见下文
支付通道代码:
WX_OFFLINE_NATIVE
微信线下扫码支付
WX_OFFLINE_JSAPI
微信线下公众账号支付
WX_ONLINE_NATIVE
微信线上扫码支付
WX_ONLINE_JSAPI
微信线上公众账号支付
WX_ONLINE_APP
微信线上APP支付
WX_ONLINE_MWEB
微信线上H5支付
WX_DINE_NATIVE
微信围餐扫码支付
WX_DINE_JSAPI
微信围餐公众账号支付
WX_ZERO_NATIVE
微信零费率扫码支付
WX_ZERO_JSAPI
微信零费率公众账号支付
WX_ONE_NATIVE
微信千一扫码支付
WX_ONE_JSAPI
微信千一公众账号支付
注意:渠道商管理后台进件商户,通过银行商户审核,填写邮件地址里获取商户号以及对应接口密钥。
2.1.4返回结果
return_code
String(16)
SUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
return_msg
String(128)
返回信息,如非空,为错误原因 &签名失败& 参数格式校验错误
以下字段在return_code为SUCCESS的时候有返回
String(32)
商户号,由UChang分配
String(32)
商户微信appid
String(32)
随机字符串,不长于 32 位
result_code
String(16)
业务返回结果SUCCESS/FAIL
device_info
String(32)
终端设备号
String(32)
参考错误码
String (128)
结果信息描述
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
以下字段在return_code 和result_code都为SUCCESS的时候有返回
js_prepay_info 示例
"wx4f6b85ba45bc67eb",
"nonceStr":
"da39ddfea8ed90f7ceb9c1d2e55c907b",
"package":
"prepay_id=wx",
"paySign":
"6FEE9E71E89C8BF4336342",
"signType":
"timeStamp": "21"
app_prepay_info 示例
"appid": "wx8a", //app在微信开发平台的appid
"noncestr": "03a93ef6c1e0bfa7ffca868edaa9b4f3",
"package": "Sign=WXPay",
"partnerid": "",
"paySign": "84BCAB0EC4B",
"prepayid": "wx491dde933fd",
"timestamp": ""
trade_type
String(16)
调用接口提交的交易类型,取值如下:JSAPI,NATIVE,APP,WMWEB
String(64)
String(64)
URl:weixin://wxpay/s/An4baqw
js_prepay_info
当trade_type 为 JSAPI 时存在, 用于微信原生支付
app_prepay_info
当trade_type 为 APP 时存在,用于APP调起微信支付,
String(64)
trade_type=MWEB时返回,mweb_url为拉起微信支付收银台的中间页面,可通过访问该url来拉起微信客户端,完成支付,mweb_url的有效期为5分钟。
2.2小额支付接口
2.2.1业务功能
支付后直接提交到优畅,定时清关
2.2.2交互模式
请求:后台请求交互模式
返回结果:后台请求交互模式
收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付。
提醒1:提交支付请求后系统会同步返回支付结果。当返回结果为“系统错误”时,商户系统等待5秒后调用【查询订单API】,查询支付实际交易结果;当返回结果为“USERPAYING”时,商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒);
提醒2:在调用查询接口返回后,如果交易状况不明晰,请调用【撤销订单API】,此时如果交易失败则关闭订单,该单不能再支付成功;如果交易成功,则将扣款退回到用户账户。当撤销无返回或错误时,请再次调用。
注意:请勿调用扣款后立即调用【撤销订单API】,建议至少15s后再调用。
2.2.3请求参数列表
请求 url: /wechat/orders/micropay
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&total_fee&10&/total_fee&
&out_trade_no&2507613&/out_trade_no&
&auth_code&159891&/auth_code&
&device_info&1000&/device_info&
&body&BODY刷卡支付测试&/body&
&attach&ATTACH订单额外描述&/attach&
&detail&DETAIL刷卡支付测试&/detail&
&spbill_create_ip&14.17.22.52&/spbill_create_ip&
&nonce_str&abba192ccd034bdca65d29223db1cbe9&/nonce_str&
&sign&8D551DEFEAAC&/sign&
成功返回示例
&mch_id&100010&/mch_id&
&device_info&1000&/device_info&
&openid&o4GgauJhDxX7uKw3Ah9Pgsr0XXSA&/openid&
&total_fee&1&/total_fee&
&fee_type&CNY&/fee_type&
&return_code&SUCCESS&/return_code&
&bank_type&CFT&/bank_type&
&transaction_id&7&/transaction_id&
&trade_state&SUCCESS&/trade_state&
&return_msg&OK&/return_msg&
&sign&1C227D46C440EC501C60B87BA4514633&/sign&
&result_code&SUCCESS&/result_code&
&is_subscribe&N&/is_subscribe&
&out_trade_no&6912455&/out_trade_no&
&cash_fee&1&/cash_fee&
&nonce_str&uuXse9FQKDOXn4We&/nonce_str&
&trade_type&MICROPAY&/trade_type&
&attach&ATTACH订单额外描述&/attach&
&time_end&04&/time_end&
失败返回示例
&nonce_str&fGXOc2UERrsVZDum&/nonce_str&
&sign&46D05A5F87A0CCDA9DCE6F&/sign&
&result_code&FAIL&/result_code&
&err_code&USERPAYING&/err_code&
&return_msg&OK&/return_msg&
&out_trade_no&2507613&/out_trade_no&
&mch_id&100010&/mch_id&
&err_code_des&需要用户输入支付密码&/err_code_des&
&return_code&SUCCESS&/return_code&
&device_info&1000&/device_info&
String(32)
商户号,由UCHANG分配
device_info
String(32)
UCHANG支付分配的终端设备号
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
String(127)
String(256)
String(128)
商户附加信息,可做扩展参数,255 字符内
out_trade_no
String(32)
商户系统内部的订单号 ,32个字符内、 可包含字母,确保在商户系统唯一
总金额,以分为单位,不允许包含任何字、符号
String(16)
符合ISO 4217标准的三位字母代码,默认人民币:CNY
spbill_create_ip
String(16)
订单生成的机器 IP
String(32)
String(128)
扫码支付授权码, 设备读取用户展示的条码或者二维码信息
String(32)
no_credit&指定不能使用信用卡支付
payment_code
String(32)
支付通道代码, 详见下文
支付通道代码:
WX_OFFLINE_MICROPAY
微信线下刷卡支付
WX_DINE_MICROPAY
微信围餐刷卡支付
WX_ZERO_MICROPAY
微信零费率刷卡支付
WX_ONE_MICROPAY
微信千一刷卡支付
2.2.4返回结果
数据按 XML 的格式实时返回
return_code
String(16)
SUCCESS 表示成功非 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 result_code 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
device_info
String(32)
UChang支付分配的终端设备号
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
SUCCESS/FAIL
String(32)
具体错误码请看文档最后错误码列表
err_code_des
String (128)
结果信息描述
当return_code 和result_code都为SUCCESS的时,还会包括以下字段
sub_openid
String(128)
用户在商户 appid 下的唯一标识
is_subscribe
用户是否关注公众账号,仅在公众账号类型支付有效,取值范围:Y或N;Y-关注;N-未关注
sub_is_subscribe
用户是否关注子公众账号,仅在公众账号类型支付有效,取值范围:Y或N;Y-关注;N-未关注
trade_type
String(16)
String(6000)
实际提交的返回
String(16)
货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
总金额,以分为单位,不允许包含任何字、符号
settlement_total_fee
应结订单金额=订单金额-非充值代金券金额,应结订单金额&=订单金额。
coupon_fee
现金券支付金额&=订单总金额, 订单总金额-现金券金额为现金支付金额
cash_fee_type
String(16)
符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见
订单现金支付金额
transaction_id
String(32)
UCHANG交易号。
out_trade_no
String(32)
商户系统内部的定单号,32 个字符内、可包含字母
String(128)
商家数据包,原样返回
String(14)
支付完成时间,格式为 yyyyMMddhhmmss,如2009 年 12 月 27 日 9 点 10 分 10 秒表示为10。时区为 GMT+8 beijing。该时间取自UChang服务器
out_transaction_id
String(32)
微信交易号
当调用扣款接口返回支付中或失败状态,需要调用查询接口查询订单实际支付状态 。
当遇到用户超过日限额需要输入密码返回“支付中”的状态,建议 10 秒调一次查询,调用
次后还未成功作支付超时处理。
超时未支付的订单系统将自动关闭
2.3关闭订单
2.3.1业务功能
以下情况需要调用关单接口:商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
2.3.2 交互模式
请求:后台请求交互模式
返回结果:后台请求交互模式
2.3.3 参数请求列表
请求URL:/wechat/orders/close
&mch_id&100010&/mch_id&
&out_trade_no&147480&/out_trade_no&
&nonce_str&af3ca480f76&/nonce_str&
&sign&BFE14FFC24D60&/sign&
成功返回示例
&nonce_str&gF3FQKUWQN3CgGOq&/nonce_str&
&sign&693C8C45BF933CDB&/sign&
&result_code&SUCCESS&/result_code&
&return_code&SUCCESS&/return_code&
&return_msg&OK&/return_msg&
&mch_id&100010&/mch_id&
失败返回示例
&mch_id&100010&/mch_id&
&nonce_str&YalRxVWOlPyOa4Jq&/nonce_str&
&sign&C82C6FC0E2DB&/sign&
&err_code&ORDERPAID&/err_code&
&err_code_des&order paid&/err_code_des&
&return_code&SUCCESS&/return_code&
&result_code&FAIL&/result_code&
&return_msg&OK&/return_msg&
POST XML 内容体进行请求
String(32)
String(32)
公众账号ID
out_trade_no
String(32)
商户系统内部的订单号
String(32)
随机字符串
String(32)
数据按 XML 的格式实时返回
return_code
String(16)
SUCCESS/FAIL
return_msg
String(16)
返回信息,如非空,为错误原因;签名失败;参数格式校验错误
以下字段在return_code为SUCCESS的时候有返回
String(32)
String(32)
随机字符串,不长于32位
String(32)
result_code
String(16)
业务返回结果SUCCESS/FAIL
String(32)
详细参见错误描述
err_code_des
String(128)
结果信息描述
支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,微信支付系统会将此订单关闭;如果用户支付成功,微信支付系统会将此订单资金退还给用户。
注意:5 分钟之内的订单才可以冲正,5 分钟之外其他正常支付的单如需实现相同功能请调 用退款接口。。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】。
请求:后台请求交互模式
返回结果:后台请求交互模式
请求参数列表
请求 url: /wechat/orders/reverse
&mch_id&100010&/mch_id&
&nonce_str&d86fb64ba723bdb80df8&/nonce_str&
&out_trade_no&6912455&/out_trade_no&
&sign&908CF8B1AB0D09BA8C242&/sign&
POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
String(32)
微信分配的子商户公众账号ID
transaction_id
String(32)
UCHANG订单号,优先使用
out_trade_no
String(32)
商户系统内部的订单号 ,32 个字符内、可包含字母,确保在商户系统唯一
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
数据按 XML 的格式实时返回
成功返回示例
&return_msg&OK&/return_msg&
&nonce_str&EFJCuYgkQY1aKgiy&/nonce_str&
&result_code&SUCCESS&/result_code&
&sign&DC449FF7869A8BBFEB075E797BEC3C1C&/sign&
&recall&N&/recall&
&return_code&SUCCESS&/return_code&
&mch_id&100010&/mch_id&
失败返回结果
&return_msg&OK&/return_msg&
&mch_id&100010&/mch_id&
&nonce_str&oUS5MI0QYDA5IQ0G&/nonce_str&
&sign&567F4CF3BBB6D842D1F6B&/sign&
&err_code&ERROR&/err_code&
&return_code&SUCCESS&/return_code&
&result_code&FAIL&/result_code&
&err_code_des&不是刷卡支付不允许使用撤销接口&/err_code_des&
&recall&Y&/recall&
return_code
String(16)
返回状态码,SUCCESS 表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 result_code 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
商户ID,由微信分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
SUCCESS 表示成功 FAIL 表示失败; SUCCESS 表示关单成功, 此笔订单不能再发起支付;若已支付完成,则会发起退款; FAIL 或其它表示关单接口异常,可再次发起关单操作;
String(32)
具体错误码请看文档最后错误码列表
err_code_des
String (128)
结果信息描述
是否需要继续调用撤销,Y-需要,N-不需要
2.5支付通知接口
后台通知通过请求中的 notify_url 进行, post
2.5.1 通知结果参数列表
通知 URL 是下单提交的参数 notify_url
支付完成后,ULINE会把相关支付和用户信 息发送到该 URL,商户需要接收处理信息。
对后台通知交互时,如果收到商户的应答不是成功或超时,ULINE认为通知失败
ULINE 会通过一定的策略(通知频率为 15/15/30/180/00/,单位:秒)定期重新发起通知, 尽可能 高通知的成功率,但不保证通知最终能成功。
由于存在重新发送后台通知的情况, 因此同样的通知可能会多次发送给商户系统。 商户系统必须能够正确处理重复的通知。
推荐的做法是, 当收到通知进行处理时, 首先检查对应业务数据的状态, 判断该通 知是否已经处理过, 如果没有处理过再进行处理, 如果处理过直接返回结果成功。 在对业务 数据进行状态检查和处理之前, 要采用数据锁进行并发控制, 以避免函数重入造成的数据混 乱。
特别注意:商户后台接收到通知参数后,要对接收到通知参数里的订单号 out_trade_no 和订单金额 total_fee 和自身业务系统的订单和金额做校验,校验一致后才更新数据库订单状态
ULINE后台通过 notify_url 通知商户,商户做业务处理后,需要以字符串的形式反馈处理结果,内容如下:
&return_code&SUCCESS&/return_code&
&result_code&SUCCESS&/result_code&
&mch_id&100010&/mch_id&
&nonce_str&32bad9a77a7de7f4df25e&/nonce_str&
&transaction_id&0&/transaction_id&
&fee_type&CNY&/fee_type&
&openid&o4GgauJhDxX7uKw3Ah9Pgsr0XXSA&/openid&
&total_fee&10&/total_fee&
&cash_fee&10&/cash_fee&
&attach&ATTACH unif 测试&/attach&
&is_subscribe&N&/is_subscribe&
&bank_type&CFT&/bank_type&
&time_end&20&/time_end&
&out_trade_no&7009386&/out_trade_no&
&trade_type&NATIVE&/trade_type&
&sign&F054CEEE05A48D0CFE04B9CF4CE07295&/sign&
return_code
String(16)
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
微信分配的账号ID
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
device_info
String(32)
UCHANG分配的终端设备号
sub_openid
String(128)
用户在商户的唯一标识
is_subscribe
用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
sub_is_subscribe
用户是否关注子公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
transaction_id
String(32)
UCHANG交易号。
out_trade_no
String(32)
商户系统内部的定单号,32 个字符内、可包含字母
String(128)
商家数据包,原样返回
String(14)
支付完成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。时区为 GMT+8 beijing。该时间取自UChang服务器
trade_type
String(16)
交易类型, JSAPI MICROPAY
String(16)
总金额,以分为单位,不允许包含任何字、 符号
货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
现金支付金额订单现金支付金额
cash_fee_type
String(16)
货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY
coupon_fee
现金券支付金额&=订单总金额, 订单总金额 -现金券金额为现金支付金额
coupon_count
代金券或立减优惠使用数量
coupon_batch_id_\$n
String(20)
代金券或立减优惠批次ID ,$n为下标,从1开始编号
coupon_id_\$n
String(20)
代金券或立减优惠ID, $n为下标,从1开始编号
out_transaction_id
String(32)
微信交易号
后台通知结果反馈
商户处理后同步返回给ULINE参数:
&return_code&SUCCESS&/return_code&
return_code
String(16)
返回状态码, SUCCESS
SUCCESS/FAIL SUCCESS表示商户接收通知成功并校验成功
return_msg
String(128)
返回信息,如非空,为错误原因: 签名失败 参数格式校验错误
SYSTEMERROR
接口返回(系统)错误
PARAM_ERROR
订单已支付
商户无权限
AUTHCODEEXPIRE
二维码已过期,请用户在微信上刷新后再试
NOTSUPORTCARD
不支持卡类型
ORDERCLOSED
订单已关闭
ORDERREVERSED
订单已撤销
银行系统异常
USERPAYING
用户支付中,需要输入密码
AUTH_CODE_ERROR
授权码参数错误
AUTH_CODE_INVALID
授权码检验错误
XML_FORMAT_ERROR
XML 格式错误
REQUIRE_POST_METHOD
请使用 post 方法
Signature error
LACK_PARAMS
编码格式错误
BUYER_MISMATCH
支付帐号错误
APPID_NOT_EXIST
APPID 不存在
MCHID_NOT_EXIST
MCHID 不存在
OUT_TRADE_NO_USED
商户订单号重复
APPID_MCHID_NOT_MATCH
appid 和 mch_id 不匹配
ORDERNOTEXIST
此交易订单号不存在
ULINE Weixin支付查询&退款接口
订单查询接口
根据商户订单号或者UCHANG订单号查询UCHANG的具体订单信息。
后台系统调用交互模式
请求参数列表
请求 url:/wechat/orders/query
&mch_id&100010&/mch_id&
&out_trade_no&7009386&/out_trade_no&
&nonce_str&d4f774ae4e760d&/nonce_str&
&sign&F472DC27B2ADD3B15E9BA6&/sign&
通过 POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
transaction_id
String(32)
UCHANG交 易 号 ,
out_trade_no
和 transaction_id 至少一个必填,同时存在时 transaction_id 优先。
out_trade_no
String(32)
商户系统内部的订单号, out_trade_no 和 transaction_id 至少一个必填,同时存在时transaction_id 优先
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
返回成功示例
&sign&6CBFBB6CA0CA7&/sign&
&openid&o4GgauJhDxX7uKw3Ah9Pgsr0XXSA&/openid&
&out_trade_no&7009386&/out_trade_no&
&trade_state&SUCCESS&/trade_state&
&return_msg&OK&/return_msg&
&result_code&SUCCESS&/result_code&
&attach&ATTACH unif 订单额外描述&/attach&
&time_end&20&/time_end&
&is_subscribe&N&/is_subscribe&
&trade_type&NATIVE&/trade_type&
&bank_type&CFT&/bank_type&
&total_fee&10&/total_fee&
&return_code&SUCCESS&/return_code&
&mch_id&100010&/mch_id&
&nonce_str&fKuVlQSp5nKjMSat&/nonce_str&
&fee_type&CNY&/fee_type&
&transaction_id&0&/transaction_id&
&cash_fee&10&/cash_fee&
detail 字段说明
商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。
如果使用了单品优惠,会有单品优惠信息返回
discount_detail []:
└ goods_id String 必填 32 商品的编号
└ goods_name String 必填 256 商品名称
└ coupon_batch_id String 必填 代金券批次ID
└ coupon_id String 必填 代金卷ID
└ coupon_fee Int 必填 代金券支付金额,单位为分
detail 示例
"discount_detail": [
"goods_id": "iphone6s_16G",
"goods_name": "iPhone6s 16G",
"coupon_batch_id": 888,
"coupon_id": 666888,
"coupon_fee": 1000
"goods_id": "iphone6s_32G",
"goods_name": "iPhone6s 32G",
"coupon_batch_id": 999,
"coupon_id": 666999,
"coupon_fee": 1500
数据按 XML 的格式实时返回
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
device_info
String(32)
UCHANG分配的终端设备号
sub_openid
String(128)
用户在商户的唯一标识
is_subscribe
用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
sub_is_subscribe
用户是否关注子公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
trade_type
String(16)
交易类型, JSAPI MICROPAY
trade_state
String(32)
SUCCESS—支付成功
REFUND—转入退款
NOTPAY—未支付
CLOSED—已关闭
REVERSE—已冲正
REVOKED—已撤销
USERPAYING—用户支付中
PAYERROR&支付失败(其他原因,如银行返回失败)
String(16)
String(8192)
商品详细列表
总金额,以分为单位,不允许包含任何字、 符号
货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
现金支付金额订单现金支付金额
cash_fee_type
String(16)
货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY
coupon_fee
现金券支付金额&=订单总金额, 订单总金额 -现金券金额为现金支付金额
coupon_count
代金券或立减优惠使用数量
coupon_batch_id_\$n
String(20)
代金券或立减优惠批次ID ,$n为下标,从1开始编号
coupon_id_\$n
String(20)
代金券或立减优惠ID, $n为下标,从1开始编号
transaction_id
String(32)
UCHANG交易号。
out_trade_no
String(32)
商户系统内部的定单号,32 个字符内、可包含字母
String(128)
商家数据包,原样返回
String(14)
支付完成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。时区为 GMT+8 beijing。该时间取自UChang服务器
trade_state_desc
String(256)
对当前查询订单状态的描述和下一步操作的指引
3.2退款接口
3.2.1业务功能
商户针对某一个已经成功支付的订单发起退款,操作结果在同一会话中同步返回。
同一笔单的部分退款需要设置相同的订单号和不同的 out_refund_no 。一笔退款失败后重新 交,要采用原来 的 out_refund_no。总退款金额不能超过用户实际支付金额(现金券金额不能退款)。
一、退款方式
目前只支持原路返回退款与退款至微信余额账户两种。
说明:退到银行卡则是非实时的,每个银行的处理速度不同,一般发起退款后 1-3 个工作日内到账。
同一笔单的部分退款需要设置相同的订单号和不同的 out_refund_no 。一笔退款失败后重新 交,要采用原来 的 out_refund_no。总退款金额不能超过用户实际支付金额(现金券金额不能退款)
二、退款限制
商户在退款操作时应该注意退款限制,避免发起不会成功的退款请求,下面是主要的退款限制:
在UCHANG系统中,只要退款累计金额不超过交易单支付总额,一笔交易单可以多次退款,退款申请单号
(退款接口中有此参数)唯一确定一次退款,而不是交易单号确定一次退款。退款申请单号由商户生成,所以商户一定要保证退款申请单的唯一性。商家在退款过程中要特别注意,只有在能确定退款失败的情况下,才能重新发起另一笔退款。
目前大多数银行都支持全额退款和部分退款,但是也有少数银行不支持全额退款或部分退款,或者不支持退款。在这种情况下,商户可以与买家协调,退到微信余额账户中。 目前只
供无钥退款接口,需要有钥退款接口的商户,请联系商务说明。
退款时,会检查当天商户的微信交易收益余额是否足够退款,如果充足则可以退款。如果商户今日收益不足,则退款报错,需要等该商户当日收益增加到足够退款后,才能退款成功。
后台系统调用交互模式
请求参数列表
请求url:/wechat/refunds
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&out_trade_no&8231101&/out_trade_no&
&out_refund_no&&/out_refund_no&
&transaction_id&&/transaction_id&
&total_fee&10&/total_fee&
&refund_fee&10&/refund_fee&
&op_user_id&&/op_user_id&
&nonce_str&24df0fdd4&/nonce_str&
&sign&B92FC8CB9A7776&/sign&
String(32)
商户号,由UChang分配
device_info
String(32)
终端设备号
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
transaction_id
String(32)
UChang单号, out_trade_no 和 transaction_id 至少一个必填,同时存在时 transaction_id 优先
out_trade_no
String(32)
商 户 系 统 内 部 的 订 单 号 , out_trade_no 和 transaction_id 至少一个必填,同时存在时 transaction_id 优先
out_refund_no
String(32)
商户退款单号,32 个字符内、可包含字母,确保在商户系统唯一。同个退款单号多次请求,UChang当一个单处理,只会退一次款。如果出现退款不成功,请采用原退款单号重新发起,避免出现重复退款。
订单总金额,单位为分
refund_fee
退款总金额,单位为分,可以做部分退款
refund_fee_type
货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY
op_user_id
String(32)
操作员帐号,默认为商户号
数据按 XML 的格式实时返回
&refund_fee&10&/refund_fee&
&total_fee&10&/total_fee&
&cash_fee&10&/cash_fee&
&coupon_refund_count&0&/coupon_refund_count&
&return_code&SUCCESS&/return_code&
&transaction_id&9&/transaction_id&
&out_trade_no&8231101&/out_trade_no&
&out_refund_no&&/out_refund_no&
&refund_id&1&/refund_id&
&mch_id&100010&/mch_id&
&nonce_str&LciljA23wHgR8HU0&/nonce_str&
&result_code&SUCCESS&/result_code&
&sign&18CF4FCC48F771A5FFA7251CAA6EE3F7&/sign&
&refund_channel&&/refund_channel&
&coupon_refund_fee&0&/coupon_refund_fee&
&cash_refund_fee&10&/cash_refund_fee&
&return_msg&OK&/return_msg&
return_code
String(16)
SUCCESS 表示成功 FAIL 表示失败 此字段是通信标识,非交易 标识,交易是否成功需要查 看 result_code 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
result_code
String(16)
SUCCESS 表示成功非 FAIL 表示失败
String(32)
参考错误码
err_code_des
String(128)
结果信息描述
String(32)
商户号,由UCHANG分配
device_info
String(32)
UCHANG支付分配的终端设备号
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
transaction_id
String(28)
UCHANG 订单号
out_trade_no
String(32)
商户订单号
out_refund_no
String(32)
商户退款单号
String(28)
ULINE退款单号
refund_channel
String(16)
退款渠道, ORIGINAL—原路退款 BALANCE—退回到余额
refund_fee
退款总金额,单位为分,可以做部分退款
订单总金额,单位为分,只能为整数
订单金额货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY
现金支付金额,单位为分,只能为整数
cash_refund_fee
现金退款金额,单位为分,只能为整数
coupon_type_\$n
CASH&充值代金券 NO_CASH&非充值代金券 订单使用代金券时有返回(取值:CASH、NO_CASH)。\$n为下标,从0开始编号,举例coupon_type_0
coupon_refund_fee_\$n
代金券退款金额&=退款金额,退款金额-代金券或立减优惠退款金额为现金
coupon_refund_count_\$n
退款代金券使用数量 ,\$n为下标,从0开始编号
coupon_refund_batch_id_$n_$m
String(20)
退款代金券批次ID ,\$n为下标,\$m为下标,从0开始编号
coupon_refund_id_\$n_\$m
String(20)
退款代金券ID, \$n为下标,\$m为下标,从0开始编号
coupon_refund_fee_\$n_\$m
单个退款代金券支付金额, \$n为下标,\$m为下标,从0开始编号
退款查询接口
交退款申请后, 通过调用该接口查询退款状态。 退款有一定延时, 请在 3 个工作日后重新查询退款状态。
请求参数列表
请求url:/wechat/refunds/query
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&out_trade_no&8231101&/out_trade_no&
&transaction_id&&/transaction_id&
&refund_id&&/refund_id&
&out_refund_no&&/out_refund_no&
&nonce_str&befbbc8e34836ecb1880df&/nonce_str&
&sign&408EDBBBB525EF1F602F85&/sign&
String(32)
商户号,由UCHANG分配
device_info
String(32)
商户自定义的终端设备号,如门店编号、设备的ID等
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
transaction_id
String(32)
UCHANG单号, out_trade_no 和 transaction_id 至少一个必填,同时存在时 transaction_id 优先
out_trade_no
String(32)
商 户 系 统 内 部 的 订 单 号 , out_trade_no 和 transaction_id 至少一个必填,同时存在时 transaction_id 优先
out_refund_no
String(32)
商户退款单号,32 个字符内、可包含字母,确保在商户系统唯一。
String(32)
UChang退款单号 refund_id、out_refund_no、 out_trade_no 、 transaction_id 四个参数必填一个, 如果同事存在优先级为: refund_id&out_refund_no&t ransaction_id&out_trade_no
数据按 XML 的格式实时返回
&refund_id_0&1&/refund_id_0&
&total_fee&10&/total_fee&
&return_code&SUCCESS&/return_code&
&return_msg&OK&/return_msg&
&sign&FF9F35F6FAE91CC905A4AD9&/sign&
&mch_id&100010&/mch_id&
&nonce_str&vlWU4yN65eB1HFRQ&/nonce_str&
&refund_channel_0&ORIGINAL&/refund_channel_0&
&refund_count&1&/refund_count&
&refund_status_0&SUCCESS&/refund_status_0&
&out_trade_no&8231101&/out_trade_no&
&refund_fee&10&/refund_fee&
&refund_recv_accout_0&支付用户的零钱&/refund_recv_accout_0&
&cash_fee&10&/cash_fee&
&out_refund_no_0&&/out_refund_no_0&
&refund_fee_0&10&/refund_fee_0&
&result_code&SUCCESS&/result_code&
&transaction_id&9&/transaction_id&
return_code
String(16)
SUCCESS 表示成功非 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 result_code 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
refund_status_$n 退款状态说明
SUCCESS—退款成功
FAIL—退款失败
PROCESSING—退款处理中
CHANGE—转入代发
退款到银行发现用户的卡作废或者冻结了
导致原路退款银行卡失败,资金回流到商户的现金帐号
需要商户人工干预,通过线下或者财付通转账的方式进行退款。
result_code
String(16)
业务结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
错误代码,参考错误码
err_code_des
String(128)
错误代码描述
String(32)
device_info
String(32)
String(32)
随机字符串
String(32)
transaction_id
String(32)
UCHANG交易号。
out_trade_no
String(32)
商户系统内部的订单号
out_refund_no
String(32)
商户退款单号
String(32)
UCHANG退款单号
refund_channel
String(16)
ORIGINAL—原路退款, BALANCE—退回到余额
refund_fee
退款总金额,单位为分,可以做部分退款
订单总金额,单位为分,只能为整数
订单金额货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY
现金支付金额,单位为分,只能为整数
cash_refund_fee
现金退款金额,单位为分,只能为整数
coupon_refund_fee_\$n
现金券退款金额 &= 退款金额, 退款金额-现金券退款金额为现金额
coupon_refund_count_$n
退款代金券使用数量 ,\$n为下标,从0开始编号
coupon_refund_batch_id_\$n_\$m
String(20)
退款代金券批次ID ,$n为下标,$m为下标,从0开始编号
refund_count
退款记录数
coupon_refund_id_\$n_\$m
String(20)
退款代金券ID, \$n为下标,\$m为下标,从0开始编号
coupon_refund_fee_\$n_\$m
单个退款代金券支付金额, \$n为下标,\$m为下标,从0开始编号
refund_status_\$n
String(32)
ULINE Alipay支付接口文档
文档版本 v1
接口版本 v1
注:测试地址产生的交易也为正式扣款交易,但无结算功能,请商家尽量在当天进行退款
4.1支付宝刷卡支付
刷卡支付是支付宝给到线下传统行业的一种收款方式。商家使用扫码枪等条码识别设备扫描用户支付宝钱包上的条码/二维码,完成收款。用户仅需出示付款码,所有收款操作由商家端完成。
使用步骤:
用户登陆支付宝钱包,点击首页“付款”,进入付款码界面;
收银员在商家收银系统操作生成订单,用户确认支付金额;
用户出示钱包的“付款码”,收银员用扫码设备来扫描用户手机上的条码/二维码后,商家收银系统提交支付;
付款成功后商家收银系统会拿到支付成功或者失败的结果。
4.1.1 业务功能
收银员使用扫码设备读取用户手机支付宝“付款码”/声波获取设备(如麦克风)读取用户手机支付宝的声波信息后,将二维码或条码信息/声波信息通过本接口上送至支付宝发起支付。
4.1.2交互模式
请求:后台请求交互模式
返回结果+通知:后台请求交互模式+后台通知交互模式
支付宝刷卡支付提供异步回调接口,一般线下刷卡支付需要当面确认结果,故商户如需立马确认订单支付结果,请按照以下流程制定您的开发逻辑。
当调用扣款接口返回支付中或失败状态,需要调用查询接口查询订单实际支付状态 。 当遇到用户超过日限额需要输入密码返回“支付中”的状态,建议 10 秒调一次查询,调用 3 次后还未成功作支付超时处理。
发起轮询流程:
等待5秒后调用交易查询接口通过支付时传入的商户订单号(out_trade_no)查询支付结果(返回参数trade_state)
如果仍然返回等待用户付款(WAIT_BUYER_PAY),则再次等待5秒后继续查询,直到返回确切的支付结果(成功TRADE_SUCCESS 或已撤销关闭TRADE_CLOSED),或是超出轮询时间。
在最后一次查询仍然返回等待用户付款的情况下,必须立即调用交易撤销接口将这笔交易撤销,避免用户继续支付。
4.1.3请求参数列表
请求 url:/alipay/orders/micropay
&mch_id&100010&/mch_id&
&nonce_str&8b4a90e9d1ab6381c8cdfd4&/nonce_str&
&sign&98AE2BD7A7EC154C329CE&/sign&
&total_fee&1&/total_fee&
&out_trade_no&&/out_trade_no&
&body&test qrcode pay&/body&
&auth_code&431103&/auth_code&
&scene&bar_code&/scene&
&spbill_create_ip&127.0.0.1&/spbill_create_ip&
&notify_url&http://127.0.0.1:3000/pay_notify/wechat_notify&/notify_url&
POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
notify_url
String(256)
接收ULINE支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
device_info
String(32)
终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传&WEB&
总金额,以分为单位,不允许包含任何字、符号
out_trade_no
String(32)
商户系统内部的订单号 ,32个字符内、 可包含字母,确保在商户系统唯一
String(128)
String(128)
String(128)
商家数据包
timeout_express
该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m
String(128)
扫码支付授权码, 设备读取用户展示的条码或者二维码信息
String(32)
支付场景 条码支付,取值:bar_ 声波支付,取值:wave_code
spbill_create_ip
String(16)
APP和网页支付提交用户端ip,Native支付填调用支付API的机器IP。
String(32)
禁止用户使用的支付渠道,多个渠道时使用&,&分隔。pcredit花呗,pcreditpayInstallment花呗分期,creditCard信用卡,creditCardExpress信用卡快捷,creditCardCartoon信用卡卡通,credit_group信用支付类型(包含信用卡卡通、信用卡快捷、花呗、花呗分期),point积分,voucher营销券,promotion优惠(包含实时优惠+商户优惠)。
payment_code
String(32)
支付通道代码, 详见下文
支付通道代码:
ALI_OFFLINE_MICROPAY
支付宝线下刷卡支付
ALI_ZERO_MICROPAY
支付宝零费率刷卡支付
4.1.4返回结果
&return_code&SUCCESS&/return_code&
&result_code&SUCCESS&/result_code&
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&transaction_id&8&/transaction_id&
&out_transaction_id&5788&/out_transaction_id&
&total_fee&1&/total_fee&
&openid&hao***@126.com&/openid&
&trade_type&MICROPAY&/trade_type&
&time_end&03&/time_end&
&nonce_str&84cea56b3ede5aec61301c&/nonce_str&
&sign&FBC15DA00DD48AAC2C98F26C978A381E&/sign&
等待用户付款返回示例
&return_code&SUCCESS&/return_code&
&result_code&FAIL&/result_code&
&err_code&USERPAYING&/err_code&
&err_message&等待用户付款&/err_message&
&mch_id&100010&/mch_id&
&nonce_str&11aadb68554&/nonce_str&
&sign&D46B4C9EAE30F241C8B2A237D0D0D7C4&/sign&
数据按 XML 的格式实时返回
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
业务返回结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
out_trade_no
String(32)
商户系统内部的订单号
out_transaction_id
String(32)
支付宝交易号
transaction_id
String(32)
UCHANG交易号。
总金额,以分为单位,不允许包含任何字、 符号
String(128)
用户支付宝的账户名
trade_type
String(16)
交易类型,MICROPAY
String(14)
支付完成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。时区为 GMT+8 beijing。该时间取自支付宝服务器
String(128)
商家数据包
4.2支付宝JSAPI支付
4.2.1业务功能
创建订单+JSAPI唤起收银台支付
4.2.2交互模式
请求:后台请求交互模式
返回结果+通知:后台请求交互模式+后台通知交互模式
4.2.3请求参数列表
请求 url:/alipay/orders/create
&mch_id&100010&/mch_id&
&body&test qrcode pay&/body&
&total_fee&1&/total_fee&
&buyer_id&0644&/buyer_id&
&spbill_create_ip&127.0.0.1&/spbill_create_ip&
&notify_url&http://127.0.0.1:3000/pay_notify/wechat_notify&/notify_url&
&out_trade_no&&/out_trade_no&
&nonce_str&ffbd92386bb16&/nonce_str&
&sign&CEC4F2F25AFE65DD92ABA4B56B646E9F&/sign&
POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
notify_url
String(256)
接收ULINE支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
device_info
String(32)
终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传&WEB&
总金额,以分为单位,不允许包含任何字、符号
out_trade_no
String(32)
商户系统内部的订单号 ,32个字符内、 可包含字母,确保在商户系统唯一
String(128)
String(128)
String(128)
商家数据包
timeout_express
该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m
spbill_create_ip
String(16)
APP和网页支付提交用户端ip,Native支付填调用支付API的机器IP。
String(28)
买家的支付宝唯一用户号(2088开头的16位纯数字),和buyer_logon_id不能同时为空
buyer_logon_id
String(100)
买家支付宝账号,和buyer_id不能同时为空
String(32)
禁止用户使用的支付渠道,多个渠道时使用&,&分隔。pcredit花呗,pcreditpayInstallment花呗分期,creditCard信用卡,creditCardExpress信用卡快捷,creditCardCartoon信用卡卡通,credit_group信用支付类型(包含信用卡卡通、信用卡快捷、花呗、花呗分期),point积分,voucher营销券,promotion优惠(包含实时优惠+商户优惠)。
payment_code
String(32)
支付通道代码, 详见下文
支付通道代码:
ALI_OFFLINE_JSAPI
支付宝线下JS支付
ALI_ZERO_JSAPI
支付宝零费率公众号支付
4.2.4返回结果
&return_code&SUCCESS&/return_code&
&result_code&SUCCESS&/result_code&
&mch_id&100010&/mch_id&
&nonce_str&6c4f38bdb28e139e716885&/nonce_str&
&sign&5D553F64CEF6AAFF12BFEC1559DED3C1&/sign&
&js_prepay_info&{"trade_no":"7929"}&/js_prepay_info&
&out_trade_no&&/out_trade_no&
自行唤起支付JS收银台步骤
// 通过传入交易号唤起快捷调用方式(注意tradeNO大小写严格)
// 调用示例,首先监听AlipayJSBridgeReady事件
document.addEventListener('AlipayJSBridgeReady', function () {
$("#payLogButton").click(function () {
AlipayJSBridge.call("tradePay", {
tradeNO: "0752"
}, function (result) {
console.log(JSON.stringify(result));
}, false);
数据按 XML 的格式实时返回
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
业务返回结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
js_prepay_info
String(32)
JSON 字符串,自行唤起支付宝钱包支付
out_trade_no
String (128)
商户订单号
4.3支付宝扫码支付
扫码支付,指用户打开支付宝钱包中的“扫一扫”功能,扫描商家展示在某收银场景下的二维码并进行支付的模式。该模式适用于线下实体店支付、面对面支付等场景。
使用步骤:
用户登陆支付宝钱包,点击首页“付款-扫码付”,进入扫一扫界面;
收银员在商家收银系统操作生成支付宝订单,用户确认支付金额,并生成二维码;
用户使用钱包的“扫码付”,扫收银员提供的二维码,确认支付;
用户付款后商家收银系统会拿到支付成功或者失败的结果。
4.3.1业务功能
收银员通过收银台或商户后台调用支付宝接口,生成二维码后,展示给用户,由用户扫描二维码完成订单支付。
4.3.2交互模式
请求:后台请求交互模式
返回结果+通知:后台请求交互模式+后台通知交互模式
4.3.3请求参数列表
请求 url:/alipay/orders/precreate
&mch_id&100010&/mch_id&
&body&test qrcode pay&/body&
&spbill_create_ip&127.0.0.1&/spbill_create_ip&
&notify_url&http://127.0.0.1:3000/pay_notify/wechat_notify&/notify_url&
&out_trade_no&&/out_trade_no&
&total_fee&1&/total_fee&
&nonce_str&613cc878bfaf795ca4028&/nonce_str&
&sign&23F57BE41ADBA&/sign&
POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
notify_url
String(256)
接收ULINE支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
device_info
String(32)
终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传&WEB&
总金额,以分为单位,不允许包含任何字、符号
out_trade_no
String(32)
商户系统内部的订单号 ,32个字符内、 可包含字母,确保在商户系统唯一
String(128)
String(128)
timeout_express
该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m
spbill_create_ip
String(16)
APP和网页支付提交用户端ip,Native支付填调用支付API的机器IP。
String(32)
禁止用户使用的支付渠道,多个渠道时使用&,&分隔。pcredit花呗,pcreditpayInstallment花呗分期,creditCard信用卡,creditCardExpress信用卡快捷,creditCardCartoon信用卡卡通,credit_group信用支付类型(包含信用卡卡通、信用卡快捷、花呗、花呗分期),point积分,voucher营销券,promotion优惠(包含实时优惠+商户优惠)。
payment_code
String(32)
支付通道代码, 详见下文
支付通道代码:
ALI_OFFLINE_NATIVE
支付宝线下扫码支付
ALI_ZERO_NATIVE
支付宝零费率扫码支付
4.3.4返回结果
&mch_id&100010&/mch_id&
&nonce_str&ace6fde88f8d9df3f115&/nonce_str&
&sign&96A61EDA193A&/sign&
&return_code&SUCCESS&/return_code&
&result_code&SUCCESS&/result_code&
&out_trade_no&&/out_trade_no&
&qr_code&https://qr.alipay.com/bax07373idjoaqyvma3r404c&/qr_code&
数据按 XML 的格式实时返回
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
业务返回结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
String(32)
此参数可直接生成二维码展示出来进行扫码支付
out_trade_no
String (128)
商户订单号
4.4关闭订单
4.4.1业务功能
用于交易创建后,用户在一定时间内未进行支付,可调用该接口直接将未付款的交易进行关闭。
4.4.2交互模式
请求:后台请求交互模式
返回结果:后台请求交互模式
4.4.3请求参数列表
请求 url:/alipay/orders/close
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&nonce_str&67871cabafb70213bc44&/nonce_str&
&sign&EB&/sign&
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
out_trade_no
String(32)
商户系统内部的订单号
4.4.4返回结果
数据按 XML 的格式实时返回
&return_code&SUCCESS&/return_code&
&result_code&SUCCESS&/result_code&
&nonce_str&286c90b1a89ca7e8eedf950b7b10b5ce&/nonce_str&
&sign&47C0EA198A21B4F5C861E&/sign&
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
业务返回结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
out_trade_no
String(32)
商户系统内部的订单号
4.5撤销订单
4.5.1业务功能
支付交易返回失败或支付系统超时,调用该接口撤销交易。
如果此订单用户支付失败,支付宝系统会将此订单关闭;
如果用户支付成功,支付宝系统会将此订单资金退还给用户。
只有发生支付系统超时或者支付结果未知时可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。
提交刷卡支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】。
注意:5 分钟之内的订单才可以撤销,5 分钟之外其他正常支付的单如需实现相同功能请调 用退款接口。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】。
4.5.2交互模式
请求:后台请求交互模式
返回结果:后台请求交互模式
4.5.3请求参数列表
请求 url:/alipay/orders/cancel
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&nonce_str&256a6d75afd237dd23b7c3&/nonce_str&
&sign&576B406D301A6D16B68A&/sign&
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于32位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
out_trade_no
String(32)
商户系统内部的订单号
4.5.4返回结果
数据按 XML 的格式实时返回
&result_code&SUCCESS&/result_code&
&return_code&SUCCESS&/return_code&
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&retry_flag&N&/retry_flag&
&nonce_str&bab4f6dd14feda4fc033&/nonce_str&
&sign&A59C5B210D77A259B84F2EC&/sign&
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
业务返回结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
out_trade_no
String(32)
商户系统内部的订单号
retry_flag
是否需要重试
4.6ULINE支付宝订单通知接口说明
后台通知通过请求中的 notify_url 进行 post
4.6.1 通知结果参数列表
通知 URL 是下单提交的参数 notify_url
支付完成后,ULINE会把相关支付和用户信 息发送到该 URL,商户需要接收处理信息。
对后台通知交互时,如果收到商户的应答不是成功或超时,ULINE认为通知失败
ULINE 会通过一定的策略(通知频率为 15/15/30/180/00/,单位:秒)定期重新发起通知, 尽可能 高通知的成功率,但不保证通知最终能成功。
由于存在重新发送后台通知的情况, 因此同样的通知可能会多次发送给商户系统。 商户系统必须能够正确处理重复的通知。
推荐的做法是, 当收到通知进行处理时, 首先检查对应业务数据的状态, 判断该通 知是否已经处理过, 如果没有处理过再进行处理, 如果处理过直接返回结果成功。 在对业务 数据进行状态检查和处理之前, 要采用数据锁进行并发控制, 以避免函数重入造成的数据混 乱。
特别注意:商户后台接收到通知参数后,要对接收到通知参数里的订单号 out_trade_no 和订单金额 total_fee 和自身业务系统的订单和金额做校验,校验一致后才更新数据库订单状态
ULINE后台通过 notify_url 通知商户,商户做业务处理后,需要以字符串的形式反馈处理结果,内容如下:
&openid&hao***@126.com&/openid&
&result_code&SUCCESS&/result_code&
&total_fee&1&/total_fee&
&time_end&16&/time_end&
&out_trade_no&&/out_trade_no&
&return_code&SUCCESS&/return_code&
&trade_type&MICROPAY&/trade_type&
&mch_id&100010&/mch_id&
&out_transaction_id&9750&/out_transaction_id&
&trade_state&TRADE_SUCCESS&/trade_state&
&transaction_id&3&/transaction_id&
&cash_fee&1&/cash_fee&
&nonce_str&cea0ea11d5bb7fd8fb44fb&/nonce_str&
&sign&416B478AABC0DACE8436D1&/sign&
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
业务返回结果,SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
device_info
String(32)
UCHANG分配的终端设备号
out_trade_no
String(32)
商户系统内部的订单号
out_transaction_id
String(32)
对应支付宝交易记录账单详情中的交易号
transaction_id
String(32)
UCHANG交易号。
总金额,以分为单位,不允许包含任何字、 符号
String(128)
用户支付宝的账户名
String(128)
商家数据包
trade_type
String(16)
交易类型MICROPAY 支付宝刷卡支付 JSAPI 支付宝JS支付
NATIVE 支付宝二维码支付
trade_state
String(16)
WAIT_BUYER_PAY 交易创建,等待买家付款 TRADE_CLOSED 未付款交易超时关闭,或支付完成后全额退款 TRADE_SUCCESS 交易支付成功 TRADE_FINISHED 交易结束,不可退款
String(14)
支付完成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。时区为 GMT+8 beijing。该时间取自支付宝服务器
4.6.2后台通知结果反馈
商户处理后同步返回给ULINE参数:
&return_code&SUCCESS&/return_code&
return_code
String(16)
返回状态码, SUCCESS
SUCCESS/FAIL SUCCESS表示商户接收通知成功并校验成功
return_msg
String(128)
返回信息,如非空,为错误原因: 签名失败 参数格式校验错误
4.7支付宝接口错误码
ACQ.SYSTEM_ERROR
接口返回错误
请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作
ACQ.INVALID_PARAMETER
检查请求参数,修改后重新发起请求
ACQ.ACCESS_FORBIDDEN
无权限使用接口
联系支付宝小二签约
ACQ.EXIST_FORBIDDEN_WORD
订单信息中包含违禁词
修改订单信息后,重新发起请求
ACQ.PARTNER_ERROR
应用APP_ID填写错误
联系支付宝小二,确认APP_ID的状态
ACQ.TOTAL_FEE_EXCEED
订单总金额超过限额
修改订单金额再发起请求
ACQ.CONTEXT_INCONSISTENT
交易信息被篡改
更换商家订单号后,重新发起请求
ACQ.TRADE_HAS_SUCCESS
交易已被支付
确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求
ACQ.TRADE_HAS_CLOSE
交易已经关闭
更换商家订单号后,重新发起请求
ACQ.BUYER_SELLER_EQUAL
买卖家不能相同
更换买家重新付款
ACQ.TRADE_BUYER_NOT_MATCH
交易买家不匹配
更换商家订单号后,重新发起请求
ACQ.BUYER_ENABLE_STATUS_FORBID
买家状态非法
用户联系支付宝小二,确认买家状态为什么非法
ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIMIT_ERROR
买家付款日限额超限
更换买家进行支付
ACQ.BEYOND_PAY_RESTRICTION
商户收款额度超限
联系支付宝小二提高限额
ACQ.BEYOND_PER_RECEIPT_RESTRICTION
商户收款金额超过月限额
联系支付宝小二提高限额
ACQ.BUYER_PAYMENT_AMOUNT_MONTH_LIMIT_ERROR
买家付款月额度超限
让买家更换账号后,重新付款或者更换其它付款方式
ACQ.SELLER_BEEN_BLOCKED
商家账号被冻结
联系支付宝小二,解冻账号
ACQ.ERROR_BUYER_CERTIFY_LEVEL_LIMIT
买家未通过人行认证
让用户联系支付宝小二并更换其它付款方式
ACQ.INVALID_STORE_ID
商户门店编号无效
检查传入的门店编号是否符合规则
ACQ.PAYMENT_AUTH_CODE_INVALID
支付授权码无效
用户刷新条码后,重新扫码发起请求
ACQ.BUYER_BALANCE_NOT_ENOUGH
买家余额不足
买家绑定新的银行卡或者支付宝余额有钱后再发起支付
ACQ.BUYER_BANKCARD_BALANCE_NOT_ENOUGH
用户银行卡余额不足
建议买家更换支付宝进行支付或者更换其它付款方式
ACQ.ERROR_BALANCE_PAYMENT_DISABLE
余额支付功能关闭
用户打开余额支付开关后,再重新进行支付
ACQ.PULL_MOBILE_CASHIER_FAIL
唤起移动收银台失败
用户刷新条码后,重新扫码发起请求
ACQ.MOBILE_PAYMENT_SWITCH_OFF
用户的无线支付开关关闭
用户在PC上打开无线支付开关后,再重新发起支付
ACQ.PAYMENT_FAIL
用户刷新条码后,重新发起请求,如果重试一次后仍未成功,更换其它方式付款
ACQ.PAYMENT_REQUEST_HAS_RISK
支付有风险
更换其它付款方式
ACQ.NO_PAYMENT_INSTRUMENTS_AVAILABLE
没用可用的支付工具
更换其它付款方式
ACQ.USER_FACE_PAYMENT_SWITCH_OFF
用户当面付付款开关关闭
让用户在手机上打开当面付付款开关
ULINE Alipay支付宝查询&退款接口
订单查询接口
根据商户订单号或者UCHANG订单号查询UCHANG的具体订单信息。
后台系统调用交互模式
请求参数列表
请求url:/alipay/orders/query
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&nonce_str&89c7e78fd69&/nonce_str&
&sign&812E5BC45DCE&/sign&
通过 POST XML 内容体进行请求
String(32)
商户号,由UCHANG分配
transaction_id
String(32)
UCHANG交 易 号 ,
out_trade_no
和 transaction_id 至少一个必填,同时存在时 transaction_id 优先。
out_trade_no
String(32)
商户系统内部的订单号, out_trade_no 和 transaction_id 至少一个必填,同时存在时transaction_id 优先
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果
数据按 XML 的格式实时返回
&return_code&SUCCESS&/return_code&
&result_code&SUCCESS&/result_code&
&transaction_id&6&/transaction_id&
&trade_type&MICROPAY&/trade_type&
&out_transaction_id&0217&/out_transaction_id&
&openid&hao***@126.com&/openid&
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&trade_state&TRADE_SUCCESS&/trade_state&
&total_fee&1&/total_fee&
&time_end&54&/time_end&
&nonce_str&339bcb842ddfbfafd3c5e6&/nonce_str&
&sign&D3A6ECFEFAC331F3DE954&/sign&
return_code
String(16)
返回状态码, SUCCESS
表示成功 FAIL 表示失败 此字段是通信标识,非交易标识,交易是否成功需要查看 trade_state 来判断
return_msg
String(128)
返回信息,如非空,为错误原因签名失败参 数格式校验错误
以下字段在 return_code 为 SUCCESS 的时候有返回
String(32)
商户号,由UCHANG分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
result_code
String(16)
SUCCESS 表示成功 FAIL 表示失败
String(32)
参考错误码
err_code_des
String (128)
结果信息描述
以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
trade_type
String(16)
交易类型MICROPAY 支付宝刷卡支付 JSAPI 支付宝JS支付
NATIVE 支付宝二维码支付
trade_state
String(16)
WAIT_BUYER_PAY 交易创建,等待买家付款 TRADE_CLOSED 未付款交易超时关闭,或支付完成后全额退款 TRADE_SUCCESS 交易支付成功 TRADE_FINISHED 交易结束,不可退款
String(128)
用户支付宝的账户名
总金额,以分为单位,不允许包含任何字、 符号
货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
transaction_id
String(32)
UCHANG交易号。
out_trade_no
String(32)
商户系统内部的定单号,32 个字符内、可包含字母
out_transaction_id
String(32)
支付宝交易号
String(128)
商家数据包,原样返回
String(14)
支付完成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。时区为 GMT+8 beijing。该时间取自UChang服务器
5.2退款接口
5.2.1业务功能
同一笔单的部分退款需要设置相同的订单号和不同的 out_refund_no 。一笔退款失败后重新 交,要采用原来的 out_refund_no。总退款金额不能超过用户实际支付金额(现金券金额不能退款)。
当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。
交易超过约定时间(签约时设置的可退款时间)的订单无法进行退款 支付宝退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。
一笔退款失败后重新提交,要采用原来的退款单号。总退款金额不能超过用户实际支付金额
退款时,会检查当天商户的支付宝交易收益余额是否足够退款,如果充足则可以退款。如果商户今日收益不足,则退款报错,需要等该商户当日收益增加到足够退款后,才能退款成功。
后台系统调用交互模式
请求参数列表
请求url:/alipay/refunds
POST XML 内容体进行请求
&mch_id&100010&/mch_id&
&out_trade_no&&/out_trade_no&
&out_refund_no&&/out_refund_no&
&transaction_id&&/transaction_id&
&refund_fee&1&/refund_fee&
&op_user_id&&/op_user_id&
&nonce_str&a2c5a19df4ef4e6bf5c0&/nonce_str&
&sign&BA05A7453CAC7E363A5E&/sign&
String(32)
商户号,由UChang分配
String(32)
随机字符串,不长于 32 位
String(32)
MD5 签名结果,详见“第 4 章 MD5 签名规则”
transaction_id
String(32)
UChang单号, out_trade_no 和 transaction_id 至少一个必填,同时存在时 transaction_id 优先
out_trade_no
String(32)
商 户 系 统 内 部 的 订 单 号 , out_trade_no 和 transaction_id 至少一

我要回帖

更多关于 时间的字符串格式化 的文章

 

随机推荐