Thursday, September 23, 2010

支付宝接口实现参考

支付请求
参数 必填 说明
_input_charset N GBK 字符集编码
service Y trade_create_by_buyer
create_digital_goods_trade_p
create_partner_trade_by_buyer
create_direct_pay_by_user
partner Y 商户ID
security_code Y 安全码
notify_url Y 通知URL
return_url N 返回URL
subject Y 商品名称
body N 商品描述
out_trade_no Y 订单号(商户)
price Y 商品单价
total_fee Y 交易金额
show_url N 商品展示 URL
quantity Y 购买数量
payment_type Y 1 支付类型
logistics_type Y POST 物流类型
POST: 平邮
EMS: EMS
EXPRESS: 其它快递
EMS
EXPRESS
logistics_fee Y 物流费用
logistics_payment Y SELLER_PAY 物流支付类型
SELLER_PAY: 由卖家支付物流费用(费用不用计算到总价内)
BUYER_PAY: 买家支付物流费用(费用需要计算到总价内)
BUYER_PAY
receive_name N 收货人姓名
receive_address N 收货人地址
receive_zip N 收货人邮编
receive_phone N 收货人电话
receive_mobile N 收货人邮编
seller_email Y 卖家帐号
seller_id 卖家 ID
buyer_email N 买家帐号
buyer_id  
t_b_pay N 买家逾期不付款,自动关闭交易的期限
t_s_send_1 N 卖家逾期不发货,建议买家退款的期限
t_s_send_2 N 买家逾期不确认收货,自动完成交易(平邮)的期限
sign Y 签名
sign_type Y 签名类型
支付网关返回参数
参数 说明
notify_type   通知类型
notify_id   通知编码
notify_time   通知时间
sign   签名
sign_type   签名类型
trade_no   订单号(支付宝)
out_trade_no   订单号(商户)
subject   商品名称
body   商品描述
price   商品单价
discount   折扣
quantity   购买数量
total_fee   交易金额
payment_type 1 支付类型
use_coupon   是否使用红包
coupon_discount   红包折扣
is_total_fee_adjust   金额是否修改过
trade_status WAIT_BUYER_PAY 等待买家付款
WAIT_SELLER_SEND_GOODS 付款成功,等待卖家发货
WAIT_BUYER_CONFIRM_GOODS 卖家已发货,等待买家收货
TRADE_FINISHED 交易完成
TRADE_CLOSED 交易关闭
modify.tradeBase.totalFee 修改交易价格
refund_status WAIT_SELLER_AGREE 买家申请退款
REFUND_SUCCESS 退款成功
REFUND_CLOSED 退款关闭
logistics_status INITIAL_STATUS 初始状态
WAIT_LOGISTICS_FETCH_GOODS 等待物流取货
WAIT_LOGISTICS_SEND_GOODS 等待物流发货
LOGISTICS_SENDING 物流发货中
WAIT_RECEIVER_CONFIRM_GOODS 等待收货人确认收货
GOODS_RECEIVED 货物收到了
LOGISTICS_FAILURE 物流失败
logistics_type POST 物流类型
EMS
EXPRESS
logistics_fee   物流费用
logistics_payment SELLER_PAY 物流支付类型
BUYER_PAY
receive_name   收货人姓名
receive_address   收货人地址
receive_zip   收货人邮编
receive_phone   收货人电话
receive_mobile   收货人邮编
seller_email   卖家帐号
seller_id   卖家 ID
buyer_id   买家 ID
buyer_email   买家帐号
gmt_create   交易创建时间
gmt_payment   买家付款时间
gmt_send_goods   卖家发货时间
gmt_refund   退款时间
gmt_close   交易结束时间
gmt_logistics_modify   物流状态更新时间
通知查询请求
参数 说明
_input_charset   编码
service    
partner    
notify_id    
输出内容 说明
invalid 传入的参数无效
true 验证通过
false 验证失败
错误代表列表
错误代码(error_code) 说明
ILLEGAL_SIGN 签名验证出错
ILLEGAL_ARGUMENT 参数不正确
HASH_NO_PRIVILEGE 没有权限访问该服务
ILLEGAL_SERVICE Service 参数不正确
ILLEGAL_PARTNER 商户 ID 不正确
HAS_NO_PUBLICKEY 没有上传公钥
USER_NOT_EXIST 会员不存在
OUT_TRADE_NO_EXIST 外部交易号已经存在
TRADE_NOT_EXIST 交易不存在
ILLEGAL_PAYMENT_TYPE 无效支付类型
BUYER_NOT_EXIST 买家不存在
SELLER_NOT_EXIST 卖家不存在
BUYER_SELLER_EQUAL 买家、卖家是同一账户
ILLEGAL_SIGN_TYPE 签名类型不正确
COMMISION_ID_NOT_EXISTS 佣金收取帐户不存在
COMMISION_SELLER_DUPLICATE 收取佣金帐户和卖家是同一帐户
COMMISION_FEE_OUT_OF_RANGE 佣金金额超出范围
ILLEGAL_LOGISTICS_FORMAT 无效物流格式
TOTAL_FEE_LESSEQUAL_ZERO 交易总金额小于等于0
TOTAL_FEE_OUT_OF_RANGE 交易总金额超出范围
ILLEGAL_FEE_PARAM 非法交易金额格式
DONATE_GREATER_THAN_MAX 小额捐赠总金额超出最大值限制
DIRECT_PAY_AMOUNT_OUT_OF_RANGE 快速付款交易总金额超出最大值限制
DIGITAL_FEE_GREATHER_THAN_MAX 虚拟物品交易总金额超出最大值限制
SELF_TIMEOUT_NOT_SUPPORT 不支持自定义超时
COMMISION_NOT_SUPPORT 不支持佣金
VIRTUAL_NOT_SUPPORT 不支持虚拟发货方式
ILLEGAL_CHARSET 字符集不合法
  • 没有值的参数无需传递,也无需包含到签名数据中。
  • 签名时将字符转化成字节流时指定的字符集与 _input_charset 保持一致。
  • 如果传递了 _input_charset 参数,这个参数也应该包含在待签名数据中。
  • 传递参数的值中如果存在特殊字符(如:&、@ 等),那么该值需要做 URL Encoding
未完待续...

4 Comments:

Tear said...

前段时间刚好实现了一个python版的。

Billy said...

呵呵,其实我是准备把目前主流的网银接口都贴上来,后来发现太多了,就准备一篇篇的发。

Paypal 就不用贴了,官方文档很详细而且公开下载的。

杨修德 said...

请问blogger如何集成支付宝集成接口?

Billy said...

Blogger 目前无法集成支付宝接口。