在线咨询
电话 联系电话
400-9999-359
QQ QQ客服
微信 官方微信

IOS

1 支付接口

1.1 概述

      用户在商户 App 上对订单确定支付时,商户 App 先构造订单数据并使用 key 进行签名,再按照本支付接口的参数要求构造报文,调用 SDK 支付接口。

 

1.2 调用方式

支付接口如下表所示:

接口名称

接口描述

payOrder

SDK 提供支付的对象接口

payOrder 对象主要为商户提供订单支付功能。

接口所提供的方法,如下表所示:

方法原型

- (void)payOrder:(NSString *)externalInfo
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;

方法功能

提供给商户订单支付功能

方法参数

String externalInfo 支付参数详见 1.3.2
调用支付的 app 注册在 info.plist 中的 scheme(暂时无用)
Key=”value”形式,以&连接

返回值

支付回调 completionBlock,resData 支付返回参数详见 1.4

回调接口:

      在支付过程在支付过程结束后,会通过 completionBlock 同步返回支付结果。返回结果需要通过 resData 以及 code 字段的值来综合判断并确定支付结果。

 

1.3 支付接口请求参数说明

      1.3.1 含义

      请求参数是商户在与Asiabill进行数据交互时,提供Asiabill的请求数据,以便Asiabill根据这些数据进一步处理。

 

      1.3.2 请求参数

参数名

类型

长度

是否必填

描述

merNo

String

5

Yes

【商户号】

gatewayNo

String

8

Yes

【网关接入号】

orderNo

String

50

Yes

【商户订单号】

在该订单号是成功/待处理/待确认的状

态下,不允许再次抛送此订单号。

orderCurrency

String

3

Yes

【交易币种】

详见【附录】交易币种(ISO 4217)

orderAmount

String

10

Yes

【交易金额】

应为小数点后2位小数。

returnUrl

String

500

Yes

【交易返回地址】

Asiabill处理完请求后,当前页面自动跳转到商户网站里指定页面的http路径,用于推送和抛送返回。

signInfo

String

64

Yes

【签名数据】

全为小写,sha256加密方式。

加密方式可参考SDK 加密机制

paymentMethod

String

20

Yes

【支付方式】

银联卡:UnionPay

国外信用卡:Credit Card

海外本地支付:Yandex、Ebanx...

firstName

String

2-100

Yes

【客人的名】

长度必须在2-100之间。否则不能交易。

lastName

String

2-50

Yes

【客人的姓】

长度必须在2-50之间。否则不能交易。

email

String

2-200

Yes

【客人的邮件】

长度必须在2-200之间。否则不能交易。

phone

String

2-50

Yes

【客人的联系电话】

长度必须在2-50之间。否则不能交易。

country

String

100

Yes

【客人的账单国家】

 

请务必使用ISO代码

如美国:US

state

String

100

No

【客人的所在州】

city

String

100

Yes

【客人的账单城市】

address

String

500

Yes

【客人的账单地址】

zip

String

100

Yes

【客人的邮编】

isMobile

Int

1

Yes

【客户端类型】

0:PC端

1:移动端

如需使用移动端支付页面,需联系Asiabill客服联系进行开通绑定。

productName

String

50

No

【商品名称】

customerID

String

200

No

【客户 ID】

deviceInfo

String

50

No

【终端设备信息】

payType

String

2

Yes

【支付类型】

0:网关 wap 支付

1:Asiabill账户wap支付

2:Asiabill账户app支付

      1.3.3 请求样例

"merNo=99999&gatewayNo=99999001&orderCurrency=USD&orderAmount=0.01&returnUrl=http://192.168.1.1:8080/PayResult.jsp
&firstName=zhang&lastName=san&email=1234567890@qq.com&phone=13888888888
&paymentMethod=Credit Card&country=br&city=北京&address=朝阳区&zip=10000
&remark=aa&interfaceInfo=zencart&interfaceVersion=V2.1&isMobile=2
&signInfo=235468e659babe97dc3e9e34e9fb11834d7d78adc9a73c5c56d837df5f8756c8
&orderNo=1402021431330"

      注:海外本地支付传参参照pc 端

 

1.4 Asiabill同步返回参数说明

      1.4.1 含义

            Asiabill同步返回参数是Asiabill对商户的请求数据处理完成后,返回给Asiabill SDK 结果数据。

            商户客户端从 SDK 中获取结果数据后进行验证签名,之后商户根据结果数据进行进一步处理。

 

      1.4.2 参数列表

参数名

类型

长度

是否可空

描述

code

String

 

No

【业务错误码】

详见【附录】 业务错误码表

message

String

 

No

【描述】

详见【附录】 业务错误码表

optional

detailCode

String

 

Yes

【返回代码】

详见【附录】 返回代码表

detailMessage

String

 

Yes

【详细信息】

Asiabill服务器对支付订单信息的详细描述

            注:参数 detailCode 与参数 detailMessage 的值可为空。detailMessage 的值是以 key=value 进行组合,之后用“&”字符连接起来,且 value 可为 null 或""。detailMessage 的值详见 4.4.3 样例,商户可根据自身需求取值。

参数名

类型

长度

是否必填

描述

merNo

String

5

Yes

【商户号】

gatewayNo

String

8

Yes

【网关接入号】

tradeNo

String

 

 

【交易流水订单号】

orderNo

String

 

 

【商户订单号】

orderCurrency

String

 

 

【交易币种】

orderAmount

String

 

 

【交易金额】

cardNo

String

 

 

【支付卡号】

411111***1111

orderStatus

String

 

 

【交易状态】

返回数字:-1/0/1

-1: 待处理0: 失败

1: 成功

orderInfo

String

 

 

【交易结果信息】

Code+具体信息。

orderInfo

String

 

 

【交易结果信息】
Code+具体信息。

authTypeStatus

String

 

 

【是否预授权】
返回数字:0/2
0: 非预授权交易
2: 预授权交易(待处理)

signInfo

String

 

 

【签名数据】

返回数据为大写.各语言加密方式不同,

加密方式可参考SDK 加密机制

明文加密结构:merNo + gatewayNo + tradeNo + orderNo + orderCurrency + orderAmount + orderStatus + orderInfo + signkey

riskInfo

String

 

 

【风控信息】

返回顺序格式(都是MaxMind返回):

|未过风控 |已过风控 |累加总分数 |设置总分数 |MAXMIND返回分数 |发卡行 |发卡行国家 |国家间隔距离 |持卡人IP |持卡人IP所在国家 |

remark

String

 

 

【备注】

发送数据的时候,传输的什么,就返回什么。

EbankBarCode

String

 

 

【Ebank 订单打印码】

Ebank 本地支付方式才用到,此参数。

用于方便客人打印订单页面。

接收这个值之后,可以在页面生成https://www.ebanx.com/pay/ws/boleto/printHTML?hash=XXX ,XXX就是这个EbankBarCode 的值,这样持卡人可根据链接直接打开到打印订单的页面。

      1.4.3 样例

{
	"code": "9900",
	"message": "支付成功",
	"optional ": {
		"detailCode": "00000",
		"detailMessage":"merNo=20201&gatewayNo=20202016&tradeNo=2016022216050758298013&orderCurrency=USD&orderAmount=0.01&cardNo=411111***1111&orderStatus=0&orderInfo=gateway doesn't support sdk.&authTypeStatus=0&signInfo=35FD8EB3FE922255VF5B7486B8BFEB672AAD1708096 ED6A9FC4A595CE99E021"
		}
}

 

2 支付异步通知

2.1 含义

      Asiabill对商户的请求数据处理完成后,会将处理结果以服务器对服务器的方式主动通知通知商户。Asiabill的通知地址为商户在支付交易时上送的 returnurl 参数。

返回数据请参考【支付结果通知】