Ruby on Rails在Ping ++ 平台实现支付


本文整理自网络,侵删。

本地数据库创建订单表。

建议包含以下字段,参考官方API( https://pingxx.com/document/api#api-c-new):

order_no:required

  商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一。
  alipay: 1-64 位,
  wx: 1-32 位,
  bfb: 1-20 位,
  upacp: 8-40 位,
  yeepay_wap:1-50 位,
  jdpay_wap:1-30 位,
  cnp_u:8-20 位,
  cnp_f:8-20 位,
  推荐使用 8-20 位,要求数字或字母,不允许特殊字符

app[id]:required

 支付使用的 app 对象的 id,请登陆管理平台查看。

subject:required

  商品的标题,该参数最长为 32 个 Unicode 字符,
  银联全渠道(upacp/upacp_wap)限制在 32 个字节。

body:required

 商品的描述信息,该参数最长为 128 个 Unicode 字符,
 yeepay_wap 对于该参数长度限制为 100 个 Unicode 字符。

channel:required

 支付使用的第三方支付渠道(更多请参考api)
  alipay:支付宝手机支付
  alipay_wap:支付宝手机网页支付
  alipay_qr:支付宝扫码支付
  alipay_pc_direct:支付宝 PC 网页支付
  apple_pay:Apple Pay
  bfb:百度钱包移动快捷支付
  bfb_wap:百度钱包手机网页支付   
  wx:微信支付
  wx_pub:微信公众账号支付
  wx_pub_qr:微信公众账号扫码支付
  jdpay_wap:京东手机网页支付

amount: required

 订单总金额, 单位为对应币种的最小货币单位,
 例如:人民币为分(如订单总金额为 1 元,此处请填 100)。

client_ip: required

  发起支付请求终端的 IP 地址,格式为 IPV4,如: 127.0.0.1。

      
以上是在ping++ 平台创建订单时需要的参数

以下是在ping++ 平台创建订单成功以及付款成功回调的参数

paid :支付状态,默认为false
refunded :退款状态,默认为false
time_paid :付款时间
time_refunded:退款时间
charge_no:返回的charge编号
transaction_no :交易号

步骤:

1.本地创建一条订单记录

 def create_order

 #获取参数  
 #判断参数合法性 
 
 order = Order.new
 #保存订单信息,注意subject以及body的长度
 #生成订单号并保存
 order_no = (Time.now.to_formatted_s(:number)).to_s
 6.times{ order_no<<rand(10).to_s }
 order.order_no = order_no

 #获取ip并保存
 order.client_ip = request.remote_ip
 
 if order.save
  #返回成功信息
 else
  render_failure(order.errors.messages.first[1][0])
 end
 end

2.执行支付

阅读剩余部分

相关阅读 >>

制作企业网站的一些要点解析

使用php实现快钱支付功能(涉及到接口)

ECSHOP去掉版权copyright powered by ECSHOP 去掉商标志logo

fckeditor xml request errorinternal server error (500) 解决方法小结

javascript 实现键盘上下左右功能的小例子

渗透测试信息收集之常用端口信息

js实现youku的漂亮搜索框效果

php正则表达式笔记与实例详解

ECSHOP 批量上传(加入自定义属性)

读取mysql一个库下面的所有的表table

更多相关阅读请进入《ECSHOP》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...