Cost+Docs

Ruby

Opinber Ruby SDK fyrir Cost+ greiðslugáttina

Opinber Ruby SDK fyrir Cost+ greiðslugáttina. Einfaldar HPP (Hýst greiðslusíða) tilvísunarflæði, HMAC undirritun farms og staðfestingu á vefhook.

Eiginleikar

  • HMAC-SHA256 undirskriftargerð og sannprófun á stöðugum tíma
  • Sjálfvirk kortlagning snákahylkja frá API yfir í Ruby-væna OpenStruct hluti
  • Webhook þáttun + API byggt á pöntunarstaðfestingu
  • Prófað á Ruby 3.1, 3.2 og 3.3
  • Sinatra-undirstaða kynningu söluaðila app innifalið

Kröfur

Uppsetning

Bættu við Gemfile þinn:

gem "nopayn"

Þá keyra:

bundle install

Eða settu upp beint:

gem install nopayn

Fljótleg byrjun

1. Frumstilla viðskiptavininn

require "nopayn"

nopayn = NoPayn::Client.new(
  api_key:     "your-api-key",
  merchant_id: "your-project"
)

2. Búðu til greiðslu og sendu til HPP

result = nopayn.generate_payment_url(
  amount:            1295,           # €12.95 in cents
  currency:          "EUR",
  merchant_order_id: "ORDER-001",
  description:       "Premium Widget",
  return_url:        "https://shop.example.com/success",
  failure_url:       "https://shop.example.com/failure",
  webhook_url:       "https://shop.example.com/webhook",
  locale:            "en-GB",
  expiration_period: "PT30M"
)

# Redirect the customer
# result.order_url   → HPP (customer picks payment method)
# result.payment_url → direct link to the first transaction's payment method
# result.signature   → HMAC-SHA256 for verification
# result.order_id    → NoPayn order UUID

3. Meðhöndlaðu vefkrókinn

post "/webhook" do
  request.body.rewind
  raw_body = request.body.read

  verified = nopayn.verify_webhook(raw_body)

  puts verified.order.status  # "completed", "cancelled", etc.
  puts verified.is_final      # true when the order won't change

  if verified.order.status == "completed"
    # Fulfil the order
  end

  status 200
end

API Tilvísun

NoPayn::Client.new(api_key:, merchant_id:, base_url:)

ParameterTegundÁskiliðSjálfgefið
api_keyString
merchant_idString
base_urlStringNeihttps://api.nopayn.co.uk

client.create_order(params) → OpenStruct

Býr til pöntun í gegnum POST /v1/orders/.

ParameterTegundÁskiliðLýsing
:amountIntegerUpphæð í ISO 4217 minnieiningu gjaldmiðilsins (til dæmis sent fyrir EUR)
:currencyStringISO 4217 kóði (EUR, GBP, USD, NOK, SEK)
:merchant_order_idStringNeiInnri pöntunartilvísun þín
:descriptionStringNeiLýsing á pöntun
:return_urlStringNeiTilvísun eftir vel heppnaða greiðslu
:failure_urlStringNeiTilvísun við hætt við/rennur út/villu
:webhook_urlStringNeiÓsamstilltur tilkynningar um stöðubreytingar
:localeStringNeiHPP tungumál (en-GB, de-DE, nl-NL, osfrv.)
:payment_methodsArray<String>NeiSía HPP aðferðir
:expiration_periodStringNeiISO 8601 tímalengd (PT30M)

Greiðsluaðferðir í boði: credit-card, apple-pay, google-pay, vipps-mobilepay

client.get_order(order_id) → OpenStruct

Sækir pöntunarupplýsingar í gegnum GET /v1/orders/{id}/.

client.create_refund(order_id, amount, description: nil) → OpenStruct

Gefur út fulla eða hluta endurgreiðslu í gegnum POST /v1/orders/{id}/refunds/.

client.generate_payment_url(params) → OpenStruct

Þægindaaðferð sem býr til pöntun og skilar:

result.order_id     # NoPayn order UUID
result.order_url    # HPP URL
result.payment_url  # Direct payment URL (first transaction)
result.signature    # HMAC-SHA256 of amount:currency:order_id
result.order        # Full order OpenStruct

client.generate_signature(amount, currency, order_id) → String

Býr til HMAC-SHA256 hex undirskrift.

client.verify_signature(amount, currency, order_id, signature) → Boolean

Stöðug staðfesting á HMAC-SHA256 undirskrift.

client.verify_webhook(raw_body) → OpenStruct

Þýðir meginmál vefkróksins og hringir síðan í GET /v1/orders/{id}/ til að staðfesta raunverulega stöðu.

Sjálfstæð HMAC tól

require "nopayn"

sig = NoPayn::Signature.generate("your-api-key", 1295, "EUR", "order-uuid")
ok  = NoPayn::Signature.verify("your-api-key", 1295, "EUR", "order-uuid", sig)

Villumeðferð

begin
  nopayn.create_order(amount: 100, currency: "EUR")
rescue NoPayn::ApiError => e
  puts e.status_code  # 401, 400, etc.
  puts e.error_body   # Raw API error response
rescue NoPayn::Error => e
  puts e.message      # Network or parsing error
end
UndantekningForeldriLýsing
NoPayn::ErrorStandardErrorGrunnvilla fyrir allar SDK villur
NoPayn::ApiErrorNoPayn::ErrorHTTP villa frá API
NoPayn::WebhookErrorNoPayn::ErrorÓgilt vefhook farmur

Pöntunarstöður

StaðaÚrslitaleikur?Lýsing
newNeiPöntun búin til
processingNeiGreiðsla í gangi
completedGreiðsla tókst - afhenda vörurnar
cancelledGreiðsla felld niður af viðskiptavinum
expiredGreiðslutengillinn rann út á tíma
errorTæknileg bilun

Bestu starfsvenjur Webhook

  1. Staðfestu alltaf í gegnum API — hleðslutækið inniheldur aðeins pöntunarauðkenni, aldrei stöðuna. verify_webhook á SDK gerir þetta sjálfkrafa.
  2. ** Skilaðu HTTP 200** til að staðfesta móttöku. Allir aðrir kóðar kalla fram allt að 10 endurtilraunir (2 mínútna millibili).
  3. Taka í notkun varakönnun — fyrir pantanir eldri en 10 mínútur sem hafa ekki náð endanlega stöðu skaltu skoða get_order sem öryggisnet.
  4. Vertu sjálfráða — þú gætir fengið sama vefhook margoft.

Prófakort

Notaðu þessi kort í Cost+ prófunarham (sandkassavefsíða):

KortNúmerSkýringar
Visa (árangur)4111 1111 1111 1111Hvaða CVV sem er
Mastercard (árangur)5544 3300 0003 7Hvaða CVV sem er
Visa (hafnað)4111 1111 1111 1105Heiðra ekki
Visa (ófullnægjandi fjármunir)4111 1111 1111 1151Ófullnægjandi fjármunir

Notaðu hvaða fyrningardagsetningu sem er í framtíðinni og hvaða þriggja stafa CVC sem er.

Demo app

Sinatra-undirstaða kynningarforrit er innifalið í GitHub geymslunni til að prófa allt greiðsluflæðið.

Stuðningur

Þarftu aðstoð? Hafðu samband við þjónustudeild okkar á support@costplus.io.

On this page