国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Ruby on Rails在Ping ++ 平臺實現支付

2019-10-26 19:28:43
字體:
來源:轉載
供稿:網友

本地數據庫創建訂單表。

建議包含以下字段,參考官方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 :支付狀態,默認為falserefunded :退款狀態,默認為falsetime_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.執行支付

現在ping++ 平臺創建一條記錄
1.在order.rb文件中新建一個方法

 def pay_url  #獲取api_key以及app_id  Pingpp.api_key = PingPlusPlus.get_ping_settings["PING_API_KEY"]  app_id = PingPlusPlus.get_ping_settings["PING_APP_ID"]  #不同支付渠道的回調地址  case self.channel    when "alipay"    extra = {   }    when "wx"    extra = {   }    end  #ping++平臺新建一個訂單  begin   charge = Pingpp::Charge.create(     :order_no => self.order_no,     :app  => { :id => app_id },     :channel => self.channel,     :amount => self.amount.round(2) * 100.to_i,     :client_ip => self.client_ip,     :currency => "cny",     :subject => self.subject[0..31],     :body  => self.body[0..127],     :extra  => extra     )      return charge  rescue Pingpp::PingppError => error    logger.error 'ping++平臺創建訂單失敗'    logger.error error.http_body    return false  end end            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥江县| 镇原县| 托里县| 包头市| 泸溪县| 上饶县| 霍山县| 九龙坡区| 宁波市| 黎川县| 博爱县| 应城市| 德钦县| 万全县| 桂东县| 博兴县| 罗平县| 息烽县| 漯河市| 吉木乃县| 白朗县| 上犹县| 黔西| 延津县| 西畴县| 怀宁县| 定南县| 庆云县| 浦县| 宜丰县| 谢通门县| 南宁市| 新邵县| 南京市| 沛县| 泸水县| 平定县| 东兰县| 奉新县| 蓝山县| 江油市|