Standing Instructions

You can integrate SI with BizSDK framework in below steps:

Hash Calculation

For SI transaction, hash calculation formula is different from normal type of payment:

Hash Formula:

1
2
siDetail = "{"billingAmount": "150.00","billingCurrency": "INR","billingCycle": "WEEKLY","billingInterval": 1,"paymentStartDate": "2019-09-18","paymentEndDate": "2020-10-20"}"
3
beneficiaryDetail = "{"beneficiaryAccountNumber":"1234567890"}"
4
// Hash calculation for Cards & StoreCards
5
Hash = sha512(key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5||||||siDetail|SALT)
6
// Hash calculation for NB
7
Hash = sha512(key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5||||||siDetail|beneficiaryDetail|SALT)
8
Copied!

Make Payment

For NB, StoreCard and Card:
Create an object of PayUSIParams and pass in the payment param object as below:
Objective-C
Swift
1
PayUSIParams *siParam = [[PayUSIParams alloc] initWithBillingAmount:<#(NSString * _Nonnull)#>
2
paymentStartDate:<#(NSDate * _Nonnull)#>
3
paymentEndDate:<#(NSDate * _Nonnull)#>
4
billingCycle:<#(enum PayUBillingCycle)#>
5
billingInterval:<#(NSNumber * _Nonnull)#>];
6
self.paymentParamForPassing.siParams = siParam;
Copied!
1
let siParam = PayUSIParams(billingAmount: <#T##String#>,
2
paymentStartDate: <#T##Date#>,
3
paymentEndDate: <#T##Date#>,
4
billingCycle: <#T##PayUBillingCycle#>,
5
billingInterval: <#T##NSNumber#>)
6
paymentParamForPassing.siParams = siParam
Copied!
More details about PayUSIParams can be found here.
For NB payment, you have to give beneficiary details as well:
Objective-C
Swift
1
PayUBeneficiaryParams *beneficiaryParams = [[PayUBeneficiaryParams alloc] initWithBeneficiaryName:<#(NSString * _Nonnull)#>
2
beneficiaryAccountNumber:<#(NSString * _Nonnull)#>
3
beneficiaryAccountType:<#(enum BeneficiaryAccountType)#>];
4
self.paymentParamForPassing.beneficiaryParams = beneficiaryParams;
5
Copied!
1
let beneficiaryParams = PayUBeneficiaryParams(beneficiaryName: <#T##String#>,
2
beneficiaryAccountNumber: <#T##String#>,
3
beneficiaryAccountType: <#T##BeneficiaryAccountType#>)
4
paymentParamForPassing.beneficiaryParams = beneficiaryParams
Copied!
More details about PayUBeneficiaryParams can be found here.
After setting the above parameters, create the request object as mentioned here.

Response Handling

It is same as you are handling for other payment option.