Это старая версия API. Переходите на API ЮKassa.
Эта инструкция предназначена для магазинов, которые реализуют оплату через мобильное приложение Сбербанка (сценарий подходит только для мобильных приложений). В процессе оплаты необходимо сформировать deeplink, по которому пользователь перейдет в приложение Сбербанка. См. описание сценария
Для получения идентификатора заказа (RQUID) необходимо вызвать метод createInvoice.
Пример запроса
POST /webservice/mws/api/createInvoice HTTP/1.1 Host: someshop.ru Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Content-Length: length clientOrderId=20170714T084637%2B00%3A00&shopId=15203&shopArticleId=106723&sum=11.00&customerNumber=216&description=%D0%9D%D0%BE%D1%81%D0%BE%D1%87%D0%BA%D0%B8&offer_accepted=true&smsPhoneNumber=79151231560&showcase_url=https%3A%2F%2Fdonelly.ru&invoiceType=sberbank&payMethod=online
Пример ответа
XML
<createInvoiceResponse status="1" error="0" processedDT="2017-07-14T11:46:41.103+03:00" orderId="2000734125092" externalPaymentUrl="https://online.sberbank.ru/CSAFront/payOrderPaymentLogin.do?ReqId=625d499cfe51f4e286f4896a989e41e7" externalTransactionNumber="625d499cfe51f4e286f4896a989e41e7" />
sberbankonlineinvoicing://invoice/<merchantName>?ERIBUUID=<order_uuid>&callbackURLScheme=<callbackURLScheme>
Параметр | Описание |
---|---|
merchantName | Название приложения мерчанта |
order_uuid | Идентификатор заказа (RQUID), полученный при отправке запроса createInvoice. |
callbackURLScheme | Ссылка для callback-а |
Успешная оплата
<merchantName>://callback?success=1
Ошибка при оплате
<merchantName>://callback?success=0
Для формирования диплинка следует использовать интенты.
orderUUID
— идентификатор заказа (RQUID), полученный при отправке запроса createInvoice.
Java
public class MainActivity extends AppCompatActivity { private static final String SBERBANK_ONLINE_PACKAGE_NAME = "ru.sberbankmobile"; private static final String SBERBANK_ONLINE_INVOICING_ACTIVITY_NAME = "ru.sberbank.mobile.external.InvoicingActivity"; private static final String ORDER_UUID_KEY = "ru.sberbank.mobile.extra.EXTRA_ORDER_UUID"; private static final String RESULT_KEY = "ru.sberbank.mobile.RESULT_KEY"; private static final String CALLBACK_INTENT_KEY = "ru.sberbank.mobile.CALLBACK_INTENT_KEY"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mBuyButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String orderUUID = mEribUid.getText().toString(); Intent invoicingIntent = new Intent(); invoicingIntent.setComponent(new ComponentName(SBERBANK_ONLINE_PACKAGE_NAME, SBERBANK_ONLINE_INVOICING_ACTIVITY_NAME)); invoicingIntent.putExtra(ORDER_UUID_KEY, orderUUID); startActivityForResult(invoicingIntent, REQUEST_CODE); } }); } /** * В data по ключу RESULT_KEY будет содержаться результат и какая-то дополнительная информация */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // "SUCCESS" or "FAILURE" String result = intent.getStringExtra(RESULT_KEY); } }