Skip to content

Instantly share code, notes, and snippets.

@bzdk
Created March 7, 2022 06:40
Show Gist options
  • Save bzdk/2c8f7f13c304ca1e3a57cf725f4ead8a to your computer and use it in GitHub Desktop.
Save bzdk/2c8f7f13c304ca1e3a57cf725f4ead8a to your computer and use it in GitHub Desktop.
Alipay Global API Sample Code
from com.alipay.ams.api.model.merchant import Merchant
from com.alipay.ams.api.model.amount import Amount
from com.alipay.ams.api.model.settlement_strategy import SettlementStrategy
from com.alipay.ams.api.model.order import Order
from com.alipay.ams.api.model.product_code_type import ProductCodeType
from com.alipay.ams.api.model.payment_method import PaymentMethod
from com.alipay.ams.api.model.env import Env
from com.alipay.ams.api.model.goods import Goods
from com.alipay.ams.api.model.terminal_type import TerminalType
from com.alipay.ams.api.model.os_type import OsType
from com.alipay.ams.api.model.result_status_type import ResultStatusType
from com.alipay.ams.api.default_alipay_client import DefaultAlipayClient
from com.alipay.ams.api.request.pay.alipay_pay_request import AlipayPayRequest
from com.alipay.ams.api.response.pay.alipay_pay_response import AlipayPayResponse
from com.alipay.ams.api.request.pay.alipay_pay_consult_request import AlipayPayConsultRequest
from com.alipay.ams.api.response.pay.alipay_pay_consult_response import AlipayPayConsultResponse
from com.alipay.ams.api.request.pay.alipay_pay_query_request import AlipayPayQueryRequest
from com.alipay.ams.api.response.pay.alipay_pay_query_response import AlipayPayQueryResponse
from com.alipay.ams.api.request.pay.alipay_pay_cancel_request import AlipayPayCancelRequest
from com.alipay.ams.api.response.pay.alipay_pay_cancel_response import AlipayPayCancelResponse
from com.alipay.ams.api.request.pay.alipay_capture_request import AlipayCaptureRequest
from com.alipay.ams.api.response.pay.alipay_capture_response import AlipayCaptureResponse
from com.alipay.ams.api.request.pay.alipay_refund_request import AlipayRefundRequest
from com.alipay.ams.api.response.pay.alipay_refund_response import AlipayRefundResponse
MERCHANT_PRIVATE_KEY = "MIIEowIBAAKCAQEA1LYHTNgteR9D/nDko43kZmswgdsNJwfIbkWjc2EW5bOBZwdUVhklrLjHZ/rhrKqDgqdZiv0cmtWqqQ5mJMQTfqFKiXWcydCIsVI+Tr4Te+KB1llO2vgWDBJdxgpEMicbKGBPYMZ+SHWYWBbhZ75rbKLcibRMqT1uCmX0s+0amn6RdClL5+NKjAABgC5RCNgmk3gDo4orAixngu7WVaYE6m+9C0oZzK6pnZjW4SbFUoaTtSCJPP6o2ryvPTIo74zEM7bmfZ5eC1Wfwy/ta6XxMQdQmGQSSVy/dOveAjPp9ELk+o8utuuNbvHwC2QKutBc9KqPSAmiHZZ8xGBKQKG75QIDAQABAoIBAQCNP37jgV3Y43EkQdUh4nQ7qowgftRiCaIHz8h1MpCg4a1ZPB29up8w7dbEbm1zWhtQJE6qo99d1eqorj4XxfhoCzTSyL3fqdFLZqCna0LG7idnrhBWCY2iYIPSoTid0SgQjLvJOKXc+fG69R6i5GizUAaAjrClZXxv/TocTKNw2MoayK9EwAm90C3YzvRpHnSyLUs7JlXO9LTkVjNZ3Be1QXOcOGkPX+68nutkix9BsuI4Cq9MxDl8CZja3yIIqOHl56ylogOGOIRVla5+BdcVFEno0jwVz2gDdO00Novu/7g43C2Wg8kMJX5/r4N0hdVIs0xZblSRohtiQC11yp5hAoGBAP8Tzif5B3+s9QD4fvmAcvWj90WzanJZ7K3MjnS2tOuvogi44FvzNS4lS6ODibo+8hugiUJWfaGgdrogqOtuGPmc7XnGqGmwU/QmLfbR8fefLV5+RtHgmL/b8tlSOyaYk3iQrdsR7Hggtp3/zwDAMhblBvdJTNGiZuzksohsQTFNAoGBANV6/j/rW09mEfCEmQjEDmbqWZLtsm5KAikDxBXgqgpnXkp062td1J/6sd+bq7EcWxX8CDf91LSEr68ebinpjiE+xQh4Ks1G2NSzrz/JQtAWPw9TWBm+Tk16A3e09KaAV1B048z1+/xYupERtK4YJAll0egBHzFvw482ejjtN+j5AoGAen0ZP2q/phj5IjkySD/ddIYDZQ4uLLFwDVmwgu2F3bPefI/C9YTJ4dn5A5FT3wMBIjEqGJgOBkJXITQzybJ5/cvU4eh60R3igties+rHZiCjGcBL49cVovRNHvz0+KjGEFxxkESAKIOVDjRcREEHDKV4feFOKVDyWgnMjeRmPfUCgYADe28cQc2KfQK75p3Ma85EVXxCjkgDzoc8fgg7xx9e7hK2qjOQ28X1GhS+rf5d9DV0JVlI+IX4r9VhyOBJJLshxbFXEwa3tHki9w9bvf+t/z7mFBjyyozibKQT1srK0HscH9v7YuPKWPQqG5zT3ibwVE3ZN/N3TfhlpKDXvt7TmQKBgESYMNKcsR4FtMpRAPEI8JYrr5GptB9REE1CvJjJUm5VK7zGMu01KSYqsO6oF+FwYz0sFm0JGw875wvNiArq8fS90uF/Q2MR0FJOp4u2o+/Lzk7w/3vJPYDdk7n8Serz/49M9hNnbjsVl6m4dvLWT0c+MtdAdSOxSST1/+i0epix"
ALIPAY_PUBLICK_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiRNcw6izdMeN1VHCpUQkHarVd3itOBl79qYrnwSk4eHv9gQUk8Xw1v0n9Mh+TMpfK+cfoTNM8qWm83m2xs9MzqjOBjIU6ERVp8mjR4p3TO+zu5uSuWX+9ongRnEoBnXllkUTvbH4orQoR0ukOA7ankX7Ut5BoDtBNmMZLuox16hJT5et9WTSRwYB9HB42OlmBSowZLDoRQfKZ2p99UEJP6D8GpZrJxjyDR0AHjrj/nybLdZW7utf6AmfwlNlZ8UkwVuyIEOGO2SWaGANu0luo2v4oUOX7dVZLgp5NDCoOjyFzA0j1rGwsjHSVW8rJpBNtzyB4kCQwSVoJKLkAkjkVQIDAQAB"
CLIENT_ID = "SANDBOX_5Y5Z222YGVUH00690"
default_alipay_client = DefaultAlipayClient("https://open-na.alipay.com", CLIENT_ID, MERCHANT_PRIVATE_KEY, ALIPAY_PUBLICK_KEY)
alipay_pay_request = AlipayPayRequest()
alipay_pay_request.path = "/ams/sandbox/api/v1/payments/pay"
alipay_pay_request.product_code = "CASHIER_PAYMENT"
alipay_pay_request.payment_notify_url = "https://www.taobao.com"
alipay_pay_request.payment_redirect_url = "https://www.taobao.com?param1=sl"
alipay_pay_request.payment_request_id = "H6B9TgeSQ5cf9ocaUBLOTmTLl6nv6i3NNVt844eNWUaC59SxbX64vvczQPMdA3Iv"
payment_method = PaymentMethod()
payment_method.payment_method_type = "ALIPAY_CN"
alipay_pay_request.payment_method = payment_method
amount = Amount("CNY", "1315")
alipay_pay_request.payment_amount = amount
order = Order()
order.reference_order_id = "ORDER_040646111729490001"
order.order_description = "Mi Band 3 Wrist Strap Metal Screwless Stainless Steel For Xiaomi Mi Band 3"
order.order_amount = amount
order.extend_info = {
"chinaExtraTransInfo": {
"totalQuantity": "2",
"otherBusinessType": "testBusinessType",
"businessType": "4",
"goodsInfo": "goods_a^1|goods_b^1"
}
}
goods_arr = []
good = Goods()
good.reference_goods_id = "216584ce-9de0-11ec-b909-0242ac120002"
good.goods_brand = "goods_brand"
good.goods_name = "goods_name"
goods_arr.append(good)
order.goods = goods_arr
merchant = Merchant()
merchant.merchant_mcc = "merchantMcc"
merchant.reference_merchant_id = "SM_001"
order.merchant = merchant
alipay_pay_request.order = order
settlement_strategy = SettlementStrategy()
settlement_strategy.settlement_currency = "USD"
alipay_pay_request.settlement_strategy = settlement_strategy
env = Env()
env.terminal_type = TerminalType.WEB
alipay_pay_request.env = env
print(alipay_pay_request.to_ams_json())
rsp_body = default_alipay_client.execute(alipay_pay_request)
alipay_pay_response = AlipayPayResponse(rsp_body)
if alipay_pay_response.result.result_status.name != ResultStatusType.F.name:
print(alipay_pay_response.payment_id)
print(alipay_pay_response.payment_create_time)
else:
print(alipay_pay_response.result.result_message)
# {
# "productCode": "CASHIER_PAYMENT",
# "paymentNotifyUrl": "https://www.taobao.com",
# "paymentRequestId": "H6B9TgeSQ5cf9ocaUBLOTmTLl6nv6i3NNVt844eNWUaC59SxbX64vvczQPMdA3Iv",
# "paymentAmount": {
# "currency": "CNY",
# "value": "1315"
# },
# "settlementStrategy": {
# "settlementCurrency": "USD"
# },
# "env": {
# "terminalType": "WEB"
# },
# "paymentRedirectUrl": "https://www.taobao.com?param1=sl",
# "paymentMethod": {
# "paymentMethodType": "ALIPAY_CN"
# },
# "order": {
# "merchant": {
# "referenceMerchantId": "SM_001",
# "merchantMCC": "merchantMcc"
# },
# "goods": [
# {
# "goodsName": "goods_name",
# "referenceGoodsId": "216584ce-9de0-11ec-b909-0242ac120002",
# "goodsBrand": "goods_brand"
# }
# ],
# "orderDescription": "Mi Band 3 Wrist Strap Metal Screwless Stainless Steel For Xiaomi Mi Band 3",
# "extendInfo": {
# "chinaExtraTransInfo": {
# "otherBusinessType": "testBusinessType",
# "businessType": "4",
# "totalQuantity": "2",
# "goodsInfo": "goods_a^1|goods_b^1"
# }
# },
# "referenceOrderId": "ORDER_040646111729490001",
# "orderAmount": {
# "currency": "CNY",
# "value": "1315"
# }
# }
# }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment