iOS SDK API

Class: ScanForPayTask

Definition: @interface ScanForPayTask : NSObject

Method: - pay

Call this to create payment

Definition:

    -(void) pay:(NSString *)orderInfo         // request string of order infomartion
      appScheme:(NSString *)scheme.           // url scheme registered by app
       callback:(CallBackBlock)callback;      // callback when wap payment return
orderInfo-Request Body

Build the orderInfo According to Request Format, and put the following fields in the body of the request, and sign on ther server.

Name Parameter Type Required Description
Store ID storeNo String (15) Y Assigned by scanforpay
Partner Order No. partnerOrderNo String (32) Y Generated by merchant
20180802100000001
Wallet wallet String (10) C Wechat: wechat pay
Alipay: Alipay
AlipayHK: AlipayHK
Goods extra amount goodsExtraAmount int N Optional
The unit of the transaction amount is the smallest unit of the currency
If the currency is RMB, the unit is Fen. So if the transaction amount is 1 Yuan, 100 should be passed;if curreny is JPY, the unit is Japanese Yen
Goods amount goodsAmount int N Optional
The unit of the transaction amount is the smallest unit of the currency
If the currency is RMB, the unit is Fen. So if the transaction amount is 1 Yuan, 100 should be passed;if curreny is JPY, the unit is Japanese Yen
Currency currency String (10) Y The transaction currency must be the same as the merchant transaction currency
Trasaction Amount orderAmount int Y The unit of the transaction amount is the smallest unit of the currency
If the currency is RMB, the unit is Fen. So if the transaction amount is 1 Yuan, 100 should be passed;if curreny is JPY, the unit is Japanese Yen
Transaction Description orderTitle String(100) N Description
Operator Id operatorId String(20) N 10001
Notify url notifyUrl String(200) N System will call this url when payment succeed.
If this is empty, system will not notify the result
Request Example
{"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"}

Method:- payH5

It is used to intercept the URL of Alipay payment request when using WebView, and will automatically pull up the Alipay App for payment. It's more simple for users to pay by native Alipay.

For specific usage, see the code in WebviewController.m in the demo.

Definition:

    -(void) payH5:(NSString *)url。        // url to intercept
        appScheme:(NSString *)scheme       // url scheme registered by app
         callback:(CallBackBlock)callback; // payment result callback

Method:- handleOpenURL

The method is used to process the payment result, and needs to be called in the openURL in AppDelegate.m. This method will return payment result and order information. When receive the order information, you give the information to the server to check signature and ensure the authenticity of the data. Server can also query the payment status from the ScanForPay server.

Definition:

    - (BOOL)handleOpenURL:(NSURL *)url callback:(CallBackBlock)callback;

The result passed by the callback is formatted as:

    {
        "code": 1, // 1:success,others: fail
        "msg": '', // error messages
        "data": {
            "status": 1,  // payment status,1:payment sucess,others: unsuccess
            "params": ""  // order information, its body described in the follow table
        }
    }
Response body
Name Parameter Type Required Description
Response code code int(5) Y 1:success,Others: fail
Response message msg varchar (100) Y Response message
Order Number orderNo varchar(32) C Generated by scanforpay
Merchant Order Number partnerOrderNo String (32) Y Generated by merchant
20180802100000001
Transaction amount orderAmount int Y The unit of the transaction amount is the smallest unit of the currency
If the currency is RMB, the unit is Fen. So if the transaction amount is 1 Yuan, 100 should be passed;if curreny is JPY, the unit is Japanese Yen
Wallet wallet String (10) Y Wechat: Wechat Pay
Alipay: Alipay
Transaction Status status int Y 0:To be Paid
1:Success
2:Fail
3:Refunded
Transation Time payTime String(25) N Date time with timezone, see RFC 3339 Section 5.6 for details.
2018-07-25T17:54:00+08:00
Currency currency varchar(5) Y JPY
Buyer account buyer varchar(30) N c*@gmail.com
Buyer ID buyerId varchar(30) N 208xxxxxxxxxx012
Response example
{"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 ""