PaymentService

IAPMiniProgram SDK calls the PaymentService SPI to initiate the payment process and handle the payment result.

pay

Method signature

IAPMiniprogram SDK calls the getAuthCode method to initiate the payment process.

copy
func pay(
    with request: IAPWalletPaymentRequest,
    in context: IAPWalletAPIContext? = nil,
    callback: @escaping (IAPWalletPaymentResult) -> Void
)

Request parameters

Field

Data type

Description

Required

request

IAPWalletPaymentRequest

The request object to initiate a payment.

Yes

context

IAPWalletAPIContext

A context object, which carries the mini program runtime metadata.

No

callback

Callback (For details, see the following section)

The callback that is executed when the request processing is complete.

Yes

Callback

Field

Data type

Description

Required

result

IAPWalletPaymentResult

The result of the pay request.

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 initiate the payment process and handle the payment result.

  1. Create a class that implements the PaymentService interface.
  2. 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.

Swift

copy
final class PaymentService: IAPWalletPaymentServiceSignature, UIAlertViewDelegate {
    override func pay(
        with request: IAPWalletPaymentRequest,
        in context: IAPWalletAPIContext? = nil,
        callback: @escaping (IAPWalletPaymentResult) -> Void
    ) {
        // to payment code
        let result = IAPWalletPaymentResult(resultCode: "RESULT_CODE", resultMessage: "RESULT_MSG")
        callback(result)
    }
}