Cost+Docs

Python

Opinber Python SDK fyrir Cost+ greiðslugáttina

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

Eiginleikar

  • Lágmarks ósjálfstæði — aðeins requests
  • Fullar vísbendingar og frystar skilategundir gagnaflokka
  • HMAC-SHA256 undirskriftargerð og sannprófun á stöðugum tíma
  • Webhook þáttun + API byggt á pöntunarstaðfestingu
  • Prófað í Python 3.10, 3.11 og 3.12

Kröfur

Uppsetning

pip install nopayn-sdk

Fljótleg byrjun

1. Frumstilla viðskiptavininn

from nopayn import NoPaynClient

client = NoPaynClient(
    api_key="your-api-key",
    merchant_id="your-project",
)

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

result = client.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 (flöskudæmi)

@app.route("/webhook", methods=["POST"])
def webhook():
    verified = client.verify_webhook(request.get_data(as_text=True))

    print(verified.order.status)  # 'completed', 'cancelled', etc.
    print(verified.is_final)      # True when the order won't change

    if verified.order.status == "completed":
        # Fulfil the order
        pass

    return "", 200

API Tilvísun

NoPaynClient(api_key, merchant_id, base_url?)

ParameterTegundÁskiliðSjálfgefið
api_keystr
merchant_idstr
base_urlstrNeihttps://api.nopayn.co.uk

client.create_order(**kwargs) -> Order

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

ParameterTegundÁskiliðLýsing
amountintUpphæð í ISO 4217 minnieiningu gjaldmiðilsins (til dæmis sent fyrir EUR)
currencystrISO 4217 kóði (EUR, GBP, USD, NOK, SEK)
merchant_order_idstrNeiInnri pöntunartilvísun þín
descriptionstrNeiLýsing á pöntun
return_urlstrNeiTilvísun eftir vel heppnaða greiðslu
failure_urlstrNeiTilvísun við hætt við/rennur út/villu
webhook_urlstrNeiÓsamstilltur tilkynningar um stöðubreytingar
localestrNeiHPP tungumál (en-GB, de-DE, nl-NL, osfrv.)
payment_methodslist[str]NeiSía HPP aðferðir
expiration_periodstrNeiISO 8601 tímalengd (PT30M)

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

client.get_order(order_id) -> Order

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

client.create_refund(order_id, amount, description?) -> Refund

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

client.generate_payment_url(**kwargs) -> PaymentUrlResult

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

PaymentUrlResult(
    order_id="...",       # NoPayn order UUID
    order_url="...",      # HPP URL
    payment_url="...",    # Direct payment URL (first transaction)
    signature="...",      # HMAC-SHA256 of amount:currency:order_id
    order=Order(...),     # Full order object
)

client.generate_signature(amount, currency, order_id) -> str

Býr til HMAC-SHA256 hex undirskrift.

client.verify_signature(amount, currency, order_id, signature) -> bool

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

client.verify_webhook(raw_body) -> VerifiedWebhook

Þýð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

from nopayn import generate_signature, verify_signature

sig = generate_signature("your-api-key", 1295, "EUR", "order-uuid")
ok = verify_signature("your-api-key", 1295, "EUR", "order-uuid", sig)

Gagnategundir

Öllum API svörum er skilað sem frystum gagnaflokkum:

bekkFields
Orderid, amount, currency, status, created, modified, transactions, description, merchant_order_id, return_url, failure_url, order_url, completed
Transactionid, amount, currency, status, created, modified, payment_method, payment_url, expiration_period
Refundid, amount, status
PaymentUrlResultorder_id, order_url, payment_url, signature, order
VerifiedWebhookorder_id, order, is_final

Villumeðferð

from nopayn import ApiError, NoPaynError, WebhookError

try:
    client.create_order(amount=100, currency="EUR")
except ApiError as exc:
    print(exc.status_code)  # 401, 400, etc.
    print(exc.error_body)   # Raw API error response
except NoPaynError as exc:
    print(exc)              # Network or parsing error

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

Kynningarforrit sem byggir á flösku 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