本文整理自网络,侵删。
本地数据库创建订单表。
建议包含以下字段,参考官方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.执行支付
相关阅读 >>
ECSHOP去掉版权copyright powered by ECSHOP 去掉商标志logo
fckeditor xml request errorinternal server error (500) 解决方法小结
更多相关阅读请进入《ECSHOP》频道 >>