123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- import EasySDKKernel;
- type @kernel = EasySDKKernel
- init(kernel: EasySDKKernel) {
- @kernel = kernel;
- }
- model TradeFundBill {
- fundChannel: string(name='fund_channel'),
- bankCode: string(name='bank_code'),
- amount: string(name='amount'),
- realAmount: string(name='real_amount')
- }
- model VoucherDetail {
- id: string(name='id'),
- name: string(name='name'),
- type: string(name='type'),
- amount: string(name='amount'),
- merchantContribute: string(name='merchant_contribute'),
- otherContribute: string(name='other_contribute'),
- memo: string(name='memo'),
- templateId: string(name='template_id'),
- purchaseBuyerContribute: string(name='purchase_buyer_contribute'),
- purchaseMerchantContribute: string(name='purchase_merchant_contribute'),
- purchaseAntContribute: string(name='purchase_ant_contribute')
- }
- model AlipayTradePayResponse {
- httpBody: string(name='http_body', description='响应原始字符串'),
- code: string(name='code'),
- msg: string(name='msg'),
- subCode: string(name='sub_code'),
- subMsg: string(name='sub_msg'),
- tradeNo: string(name='trade_no'),
- outTradeNo: string(name='out_trade_no'),
- buyerLogonId: string(name='buyer_logon_id'),
- settleAmount: string(name='settle_amount'),
- payCurrency: string(name='pay_currency'),
- payAmount: string(name='pay_amount'),
- settleTransRate: string(name='settle_trans_rate'),
- transPayRate: string(name='trans_pay_rate'),
- totalAmount: string(name='total_amount'),
- transCurrency: string(name='trans_currency'),
- settleCurrency: string(name='settle_currency'),
- receiptAmount: string(name='receipt_amount'),
- buyerPayAmount: string(name='buyer_pay_amount'),
- pointAmount: string(name='point_amount'),
- invoiceAmount: string(name='invoice_amount'),
- gmtPayment: string(name='gmt_payment'),
- fundBillList: [ TradeFundBill ](name='fund_bill_list'),
- cardBalance: string(name='card_balance'),
- storeName: string(name='store_name'),
- buyerUserId: string(name='buyer_user_id'),
- discountGoodsDetail: string(name='discount_goods_detail'),
- voucherDetailList: [ VoucherDetail ](name='voucher_detail_list'),
- advanceAmount: string(name='advance_amount'),
- authTradePayMode: string(name='auth_trade_pay_mode'),
- chargeAmount: string(name='charge_amount'),
- chargeFlags: string(name='charge_flags'),
- settlementId: string(name='settlement_id'),
- businessParams: string(name='business_params'),
- buyerUserType: string(name='buyer_user_type'),
- mdiscountAmount: string(name='mdiscount_amount'),
- discountAmount: string(name='discount_amount'),
- buyerUserName: string(name='buyer_user_name')
- }
- model AlipayTradePrecreateResponse {
- httpBody: string(name='http_body', description='响应原始字符串'),
- code: string(name='code'),
- msg: string(name='msg'),
- subCode: string(name='sub_code'),
- subMsg: string(name='sub_msg'),
- outTradeNo: string(name='out_trade_no'),
- qrCode: string(name='qr_code'),
- }
- api pay(subject: string, outTradeNo: string, totalAmount: string, authCode: string): AlipayTradePayResponse {
- var systemParams: map[string]string = {
- method = 'alipay.trade.pay',
- app_id = @kernel.getConfig("appId"),
- timestamp = @kernel.getTimestamp(),
- format = 'json',
- version = '1.0',
- alipay_sdk = @kernel.getSdkVersion(),
- charset = 'UTF-8',
- sign_type = @kernel.getConfig("signType"),
- app_cert_sn = @kernel.getMerchantCertSN(),
- alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
- };
- var bizParams: map[string]any = {
- subject = subject,
- out_trade_no = outTradeNo,
- total_amount = totalAmount,
- auth_code = authCode,
- scene = 'bar_code'
- };
- var textParams: map[string]string = {
- };
- __request.protocol = @kernel.getConfig("protocol");
- __request.method = 'POST';
- __request.pathname = '/gateway.do';
- __request.headers = {
- host = @kernel.getConfig("gatewayHost"),
- content-type = 'application/x-www-form-urlencoded;charset=utf-8'
- };
- __request.query = @kernel.sortMap({
- sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
- ... systemParams,
- ... textParams
- });
- __request.body = @kernel.toUrlEncodedRequestBody(bizParams);
- } returns {
- var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.pay");
- if (@kernel.isCertMode()) {
- if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
- return @kernel.toRespModel(respMap);
- }
- } else {
- if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
- return @kernel.toRespModel(respMap);
- }
- }
-
- throw {
- message = '验签失败,请检查支付宝公钥设置是否正确。'
- }
-
- } runtime {
- connectTimeout = 15000,
- readTimeout = 15000,
- retry = {
- maxAttempts = 0
- }
- }
- api preCreate(subject: string, outTradeNo: string, totalAmount: string): AlipayTradePrecreateResponse {
- var systemParams: map[string]string = {
- method = 'alipay.trade.precreate',
- app_id = @kernel.getConfig("appId"),
- timestamp = @kernel.getTimestamp(),
- format = 'json',
- version = '1.0',
- alipay_sdk = @kernel.getSdkVersion(),
- charset = 'UTF-8',
- sign_type = @kernel.getConfig("signType"),
- app_cert_sn = @kernel.getMerchantCertSN(),
- alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
- };
- var bizParams: map[string]any = {
- subject = subject,
- out_trade_no = outTradeNo,
- total_amount = totalAmount
- };
- var textParams: map[string]string = {
- };
- __request.protocol = @kernel.getConfig("protocol");
- __request.method = 'POST';
- __request.pathname = '/gateway.do';
- __request.headers = {
- host = @kernel.getConfig("gatewayHost"),
- content-type = 'application/x-www-form-urlencoded;charset=utf-8'
- };
- __request.query = @kernel.sortMap({
- sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
- ... systemParams,
- ... textParams
- });
- __request.body = @kernel.toUrlEncodedRequestBody(bizParams);
- } returns {
- var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.precreate");
- if (@kernel.isCertMode()) {
- if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
- return @kernel.toRespModel(respMap);
- }
- } else {
- if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
- return @kernel.toRespModel(respMap);
- }
- }
- throw {
- message = '验签失败,请检查支付宝公钥设置是否正确。'
- }
- } runtime {
- connectTimeout = 15000,
- readTimeout = 15000,
- retry = {
- maxAttempts = 0
- }
- }
|