Beispiel #1
0
        public override void GetPaymentMethods(IRpcController controller, bnet.protocol.exchange_object_provider.GetPaymentMethodsRequest request, Action <bnet.protocol.exchange_object_provider.GetPaymentMethodsResponse> done)
        {
            Logger.Trace("GetPaymentMethods()");

            var builder = bnet.protocol.exchange_object_provider.GetPaymentMethodsResponse.CreateBuilder();
            var method  = bnet.protocol.exchange_object_provider.PaymentMethod.CreateBuilder();

            switch (request.Currency)
            {
            case "D3_GOLD":
            case "D3_GOLD_HC":
                var goldExtensionData = "{ kind: GAME_ACCOUNT (2)  id: " + this.Client.Account.CurrentGameAccount.PersistentID + " program: 17459 region: 98 }";

                method.SetAccount(bnet.protocol.exchange.BlobFrom.CreateBuilder()
                                  .SetSource((uint)FieldKeyHelper.Program.D3)
                                  .SetData(ByteString.CopyFromUtf8(goldExtensionData)))
                .SetDescription(request.Currency)
                .SetAmount(100000)
                .SetWalletId(0)
                .Build();
                break;

            case "PTR":
                var data = new byte[] { 0x6A, 0x04, 0x65, 0x6E, 0x55, 0x53, 0x7A, 0x0A, 0x42, 0x61, 0x74, 0x74, 0x6C, 0x65, 0x43, 0x6F, 0x69, 0x6E };
                //j\004enUSz\nBattleCoin
                //data is added to the end of extensionData
                var ptrExtensionData = bnet.protocol.exchange.Extension.CreateBuilder()
                                       .SetPartitionId(bnet.protocol.exchange.PartitionId.ParseFrom(this.Client.Account.BnetEntityId.ToByteArray()))
                                       .SetOrderBookId(1)
                                       .SetOrderId(3)
                                       .SetFilledAmount(0)
                                       .SetOrderStatus((int)this.Client.Account.BnetEntityId.Low)
                                       .SetAuthorizedTime(0)
                                       .Build();

                method.SetAccount(bnet.protocol.exchange.BlobFrom.CreateBuilder()
                                  .SetSource((uint)FieldKeyHelper.Program.D3)
                                  .SetData(ByteString.CopyFrom(ptrExtensionData.ToByteArray().Concat(data).ToArray())))
                .SetDescription("BattleCoin")
                .SetAmount(100000)
                .SetCashInOutMask(3)
                .SetBillingAddress(bnet.protocol.exchange.BillingAddress.CreateBuilder()
                                   .SetCountryId(221)
                                   .SetCity("Irvine")
                                   .SetState("CA")
                                   .SetPostalCode("92618"))
                .SetWalletId(123456)
                .SetCapRestriction(1)
                .SetAuthenticatorCap(4294967295)
                .SetSoftCap(4294967295)
                .Build();
                break;
            }

            builder.AddMethods(method);

            done(builder.Build());
        }
Beispiel #2
0
 public override void GetPaymentMethods(Google.ProtocolBuffers.IRpcController controller, bnet.protocol.exchange_object_provider.GetPaymentMethodsRequest request, Action <GetPaymentMethodsResponse> done)
 {
     //var response = GetPaymentMethodsResponse.CreateBuilder();
 }