Android SDK接口说明

类:com.scanforpay.sdk.ScanForPayPayTask
void pay(String request);

发起支付请求。

request的格式为ScanForPay服务器的请求格式。按照请求格式的说明,组装好并签名,以字符串形式传给pay方法即可。

签名务必放在服务器端进行。
请求数据说明
名称 参数名 数据类型 必填 说明
门店编号 storeNo String (15) Y 由scanforpay分配
商户订单号 partnerOrderNo String (32) Y 由商户生成
20180802100000001
钱包 wallet String (10) C Wechat: 微信支付
Alipay: 支付宝
AlipayHK: 支付宝香港
商品金额 goodsExtraAmount int N 选填
交易币种的最小单位
如果商家币种是人民币,则100表示100分=1元;如果商家币种是日元,则100表示日元的 100元
商品附加费 goodsAmount int N 选填
交易币种的最小单位
如果商家币种是人民币,则100表示100分=1元;如果商家币种是日元,则100表示日元的 100元
交易币种 currency String (10) Y 交易币种需与商户交易币种一致
交易金额 orderAmount int Y 交易币种的最小单位
如果商家币种是人民币,则100表示100分=1元;如果商家币种是日元,则100表示日元的 100元
交易说明 orderTitle String(100) N 对交易的说明
操作员 operatorId String(20) N 10001
支付成功通知地址 notifyUrl String(200) N 如果填写,则支付成功后会通知到该地址,商户需处理重复通知的情况。如果不填,则支付成功不会进行通知。
完整请求串示例
{"request":{"header":{"requestTime":"2018-07-25T18:06:05+08:00","partnerNo":"10001","signType":"SHA256","version":"1.0","reqMsgId":"fd03f269-3180-4575-8af0-8f6cf324fb0f"},"body":{"merchantId":"100010000000002","partnerOrderNo":"p20180725180605466813","orderAmount":2100,"orderTitle":"Consume","barcode":"284447106610060508","operatorId":"211918","terminalNo":"123456","notifyUrl":"http://192.168.31.72:8080/ScanForPay/notify"}},"signature":"2d2d5c66a67a24b5e13705cc38f34d93c395a7d9e0e4ff9425c9ce07b806a1cc"}
void setSandBox(Boolean sandBox);

设置是否为沙箱环境。true: 沙箱 false: 生产

void setListener(ScanForPayResultListener listener);

设置Listener,需要在pay之前调用。

接口: com.scanforpay.sdk.ScanForPayResultListener
@Override
void onSuccess(ScanForPayResult result); 
@Override
void onFail(ScanForPayResult result);

实现该接口,并调用setListener来设置Listener。

成功回调:支付成功时,会进入该回调,如果result里的status为SUCCESS_CODE,代表支付状态成功,需要将params里的内容发给服务端进行签名校验

失败调用:失败或者用户取消都会进入该回调,但是将客户端返回的取消等错误码都转为了负数,如果是负数则可以不处理。

类:com.scanforpay.sdk.ScanForPayResult
int getCode();

获取响应码。响应码定义:

    public static final int SUCCESS_CODE = 0; // 成功
    public static final int PARAMS_ERROR = 100; // 请求串不正确

其他响应码参考msg信息。

String getMsg();

获取返回信息。

String getStatus();

支付成功状态:1代表成功,其他代表未成功。

String getParams();

支付回调的订单信息。回调的信息格式和一般的响应格式相同,参考响应格式

回调的业务数据如下:

回调数据说明
名称 参数名 数据类型 必填 说明
响应码 code int(5) Y 1:成功 其他为交易失败
响应信息 msg varchar (100) Y 响应信息
支付订单号 orderNo varchar(32) Y 由scanforpay生成
商户订单号 partnerOrderNo String (32) Y 由商户生成
20180802100000001
交易金额 orderAmount int Y 交易币种的最小单位
如果商家币种是人民币,则100表示100分=1元;如果商家币种是日元,则100表示日元的 100元
支付钱包 wallet String (10) Y Wechat: 微信支付
Alipay: 支付宝
订单状态 status int Y 0:待支付
1:支付成功
2:支付失败
3:已退款
支付时间 payTime String(25) N Date time with timezone, see RFC 3339 Section 5.6 for details.
2018-07-25T17:54:00+08:00
支付币种 currency varchar(5) Y JPY
付款人账号 buyer varchar(30) N c*@gmail.com
付款ID buyerId varchar(30) N 208xxxxxxxxxx012
回调数据示例
{"response":{"header":{"partnerNo":"10001","respTime":"2018-07-25T18:06:12+08:00","signType":"SHA256","version":"1.0","reqMsgId":"213ca19e-c75f-450d-9acf-46e860570bb9"},"body":{"code":1,"msg":"success","orderNo":"2018072518060757","partnerOrderNo":"p20180725180605466813","payTime":"2018-07-25T18:06:12+08:00","orderAmount":2100,"wallet":"Alipay","currency":"JPY","status":1,"buyer":"cd****@qq.com","buyerId":"208xxxxxxxxxx012"}},"signature":"0710b2630b467c14b3d54295def7f89be61097c21472547823b43c58f3466b08"}

results matching ""

    No results matching ""