PaymentService
IAPMiniProgram SDK calls the PaymentService SPI to initiate the payment process and handle the payment result. For details on how the SPI functions, refer to the PaymentService workflow.
This SPI provides the pay
method. The method details are as follows:
pay
The IAPMiniprogram SDK calls the pay
method to initiate the payment process.
Method signature
void pay(PaymentRequest paymentRequest, APIContext apiContext, Callback<PaymentResult> callback)
Request parameters
Field | Data type | Description | Required |
paymentRequest | An object that specifies the payment information. | Yes | |
apiContext | APIContext | A context object, which carries the mini program runtime metadata. | Yes |
callback | Callback | The callback that is executed when the request processing is complete. For details, see the following section. | Yes |
callback
Field | Data type | Description | Required |
result | The result of the | Yes |
Response parameters
N/A
Error codes
Error code | Error message | |
1000 | ERROR_CODE_UNKNOWN_ERROR | Unknown error |
1001 | ERROR_CODE_USER_CANCEL | The user cancels the operation. |
1002 | ERROR_CODE_APP_SERVICE_ERROR | The app service is wrong. |
1003 | ERROR_CODE_TIMEOUT | Timeout |
1005 | ERROR_CODE_SYSTEM_ERROR | System error |
2001 | ERROR_CODE_AUTH_PENDING_AGREEMENT | Authorization is not finished or is pending. |
Samples
The following samples show how to call the PaymentService SPI to enable payment processing capabilities:
- Create a class that implements the PaymentService interface.
- Within this class, implement the
pay
method to initiate the payment process and request for payment with the type of order, and handle the payment result.
Java
public class PaymentServiceImpl implements PaymentService {
@Override
public void pay(PaymentRequest paymentRequest, APIContext apiContext, Callback<PaymentResult> callback) {
// to payment code
callback.result(new PaymentResult(resultCode, resultMessage));
}
}
Kotlin
class PaymentServiceImpl : PaymentService {
override fun pay(paymentRequest: PaymentRequest?, apiContext: APIContext?, callback: Callback<PaymentResult>?) {
// to payment code
callback?.result(PaymentResult(resultCode,resultMessage))
}
}